As someone who has struggled and is currently struggling from depression, posts like this scare me because I think they are spreading a misunderstanding of what depression is.
The article explains some ideas about why programmers as a whole are under-appreciated.
But having your work be under-appreciated has very very very little to do with being depressed.
I am an engineer, and almost my entire social circle is technical as well. I've found that it's hard for friends to understand just how utterly irrational depression is. Being sad because something bad happened isn't depression. Being tired because you haven't been sleeping well isn't depression. And being un-motivated because you are under-appreciated isn't depression.
Yes, bad things happening, poor sleep, and under-appreciation can trigger or contribute to depression. And I don't doubt that the author is hurting and struggling and needs and deserves our help.
I'm just scared when we oversimplify depression, and try to explain it away. Depression is as nuanced as it is awful.
For me, depression/mania is like a volume dial on life. Normal is groovin' to the music, bippin' and boppin' along to the ups and downs. Mania is the music cranked up to 11, the frenetic beat driving you, compelling you, controlling you. Depression is the world put on mute, nothing to connect with; you're drowning in silence. At the risk of belaboring this metaphor, depression is not listening to the blues; depression is a bubble of dead air, where you see other people enjoying music you can't hear and you don't know why.*
That's why I think the phrase "feeling depressed" is almost oxymoronic. You can feel unhappy or tired or something. When you're depressed, you're not feeling much of anything. You're just trying to exist in this apathetic, foggy cloud of pain and vague guilt.*
What's weird about depression is that the causes and symptoms are all mixed up a big feedback loop – unlike brain cancer (mentioned elsewhere in this thread). In the throes of depression, most people 1) do not exercise 2) have really erratic sleep schedules 3) do not eat healthy. If you could somehow reverse each of those symptoms, the underlying cause usually improves too. The problem, of course, is that no depressed person has the will or energy to do any of those things – even if they do them when they're not in the midst of a down cycle.
And obviously, chemical or physical (ECT) intervention is absolutely required for some people. But kind of like code duplication, treating the symptoms treats the disease too, for many cases. It comes back to something Alan Watts said. Humans like to try to separate ourselves from reality, differentiate between the experiencer and the experience, but of course, experiencing the experience is just part of the experience! Thus, if you change the experience (treat the symptoms), you also change the experiencer (affect/improve the disease).
* Depression is different for each person. These are just metaphors/ideas I've used in the past that people have identified with.
People's general understanding of mental illness is still stuck in the dark ages.
Imagine if this article was about brain cancer, but all the rest was the same. The overwhelming reaction would be, this is stupid, brain cancer happens due to genetic factors, exposure to carcinogens, radiation, etc., and obviously has nothing to do with people appreciating your work. Only the fruitiest of the alternative medicine fruit would even write such an article in the first place.
But make it depression instead of brain cancer, and then not only does the article get written, but gets a lot of "hmm, maybe he's on to something" responses.
It's wrong, it's dangerous, and it's terrifyingly common.
I don't agree. I was clinically depressed in my early twenties.
There is a temptation to reduce the world to simple bite sized physical causes. With something like brain cancer this may be appropriate - but perhaps not, it may be that stress levels induced by a working environment may influence the chances of developing the disease.
The point is there is a complex network of interactions which include emotional reactions to your environment, which can drive a person into a depressed state.
It may be that for some proportion of those that suffer from depression that the cause is purely chemical imbalance driven by phenotypic makeup. But I suspect this is rare, we are a complex system of interacting components and these components include our own internal way of viewing the world.
There is something tempting about reducing complex issues which have implications about the way we live our lives (like ADHD, Depression, etc) to simple physical reductionist causation. It is not a correct way of viewing the world and should be resisted.
Thank you for this comment. Very true. Depression should be though of as a serious, dangerous and dreadful condition that has claimed so many lives. That being said I don't dare to judge if the author of the article is depressed or not.
I have yet to meet a person not employed in one of the fields mentioned below who says
"Yeah, so like I was...
• taking my medication the other day and I noticed it was working so I looked up the formula and the background research
• eating out of this microwaveable and biodegradeable bowl that is made out of soy the other day and I was amazed that it held together so well so I looked into the manufacturing process
• watching this guy get out of a car with a prosthetic arm and leg and it was really neat the way the joints moved so I looked into the background kinematics/kinesiology
• watching the painters next door and I realized that the red was very vibrant and that it only took one coat for full coverage so I looked into the interaction between the binders and the pigments
...whoever did it came up with this super cool approach."
I think a little less introspection and a little more extrospection might be in order.
This reminds me, I once took a course on magnetic storage technology because I was curious. I am now regularly amazed that my computer starts up at all.
I had to re-read the OP because I originally read it as having never met an unemployed person that is curious about the world around them and makes a real attempt to learn how things work. I find very few adults still have that child-like curiosity about the world but the ones that do are generally very well employed.
I am confused about the unemployed comment. The employed/not-employed distinction was merely pointing out that lay people do not (and often are unable to) look under the hood of things they do not understand. The implicit thesis was that I disagreed with the author's concept that programmers are special and that there is something unique about outsider's appreciation of programming. (There is an air of elitism to "grocery clerk" example that I was not comfortable with replicating.)
I am an adult with a child-like curiosity about the world and I am hardly very well employed. To be honest I think an interest-in/knowledge-of a wide range of fields complicates career choices.
Just yesterday there was a fascinating thread on reddit* among countless others that many enjoyed reading, myself included, that went into the neurobiology of LSD.
You might want to find some friends more interested in how the world around them works.
Actually, there is a woman I see now and then who parks on our street, then gets into a wheelchair. I am very impressed with the thought that went into that wheelchair, which has detachable wheels; she can snap off and on the wheels easily, stow and take out all the parts by herself. The chair would not do for everybody, for it takes arm strength to operate, and someone with no leg strength at all might not be able to get in and and out of the car. But for its purpose, it is beautifully made.
Have I looked into the technology? No. It seems to me an elegant application of technologies I have some notion of.
I got a friend of mine who is a very good guitar player, with classical musical education and very sophisticated musical taste. He used to complain that although it is easy to impress general public with your guitar skills, but they will be equally impressed by something much simpler. Like a guy playing a 3-chord pop song. If you have no musical education, if you don't really understand the structure of music and how it's composed it'll be hard for you to fully appreciate it. And those who do understand, professional musicians, will often criticize it just like, you say, programmers on a github will criticize your code. It happens in any professional area and absolutely normal.
I think the problem is that you are looking primarily for extrinsic motivators. Of course it's an important part and it's hard to exclude them at all, but you gotta have something more then that. There should be an interest in doing things just because you like doing them and you _interested_ in them even if you couldn't share it with anyone else.
And that's putting the article in perspective by referring to someone with talent and experience in music, a universally enjoyed skill that also happens to combine very well with typical feel-good scenario's where people are more inclined to appreciate your work anyway.
Like someone before me, I can think of hundreds of jobs that require skills with exactly the same opaqueness as programming: high finance, fundamental science, designing and fixing machinery, wiring electronics/floorplanning piping, genetics, law making, the list goes on and on...
There may very well be reasons why programming increases your chances on depression, but the fact that its hard to explain, hard to appreciate by outsiders, and doesn't get you laid, really aren't the root causes. If that were true, almost everyone would be suffering from depression.
One side note I have about the guitarist analogy is that looking at the music industry, it seems to me that incidence of depression, addiction, suicidal behaviour, etc is much higher among pop stars than it appears to be among high-profile technical people, which also invalidates the premise that 'recognition of skills' is such an important factor for depression.
> There may very well be reasons why programming increases your chances on depression, but the fact that its hard to explain, hard to appreciate by outsiders, and doesn't get you laid, really aren't the root causes. If that were true, almost everyone would be suffering from depression.
I would add that it's not only a piece of technology or a set of skills that goes unnoticed or unappreciated by the general public, but nowadays most services are taken for granted without really thinking how difficult it was to put it all together.
I worked as a debt collector for some time. It's the kind of profession you would not think as something really benefitting the society, but I've always liked to think about it in a very possitive way: a company that reclaims its money is able to invest in the product development, rising employment, lowering the impact the production has on the environment etc.
For me, a problem eats at me when I can't solve it immediately. Or say it's not that I haven't solved the problem but I have to write all the gold plating code to polish everything up and I don't have time. Or I have to demo a feature with known bugs. It's an incredibly stressful feeling. I think it boils down to what I want to finish and the time I have allotted. This can be defeating and depressing. For me I have way more ideas than time. I love designing Apis and architecting projects but hate the last 10% that takes 90% of the time to get right. This sort of thing is what depresses me regarding programming.
I don't need accolades or recognition. The reward is the resulting awesome code for me. Knowing I built something useful is really all I need.
Couple that with a situation where you do have a solution, and you manage to implement it, and then later on somebody takes over your codebase, rips the solution out because they can't be bothered to integrate their new idea into your architecture, and all the bugs that you thought you'd solved "once and for all" come right back.
I remember a period when I was transitioning from my development role to a hitherto unknown role within the company. Granted my development role involved basically 50% business analyst work + 50% development (which mainly consisted of a Shell/Perl/SQL etc). During that period all could do basically surf news sites until someone needed help in some large volume data processing. Just the opportunity to write some scripts again was such an uplifting feeling - at the end of the day, I felt that I got something done (and that was independent of the resulting appreciation).
I think Rob fails to see the guy playing the guitar has the mindset to take it upon himself to go and find his own audience that will appreciate his work. The guitarist could be a session artist, locked away in a studio providing minor contribution to someone else's masterpiece; putting him on par with Rob and his lack of vocal appreciation he receives as a programmer.
Rob could find the same fulfilment and admiration if he was to go and create his own work to display his talents to an audience. For example releasing an app to one of the mobile markets could draw a decent parallel to the attention the guitarist receives. The first piece of feedback about your work feels as good as the thousandth. It may take a little more to get the cute girl home but having your own project that's openly admired by X amount of folk is a few steps up the ladder.
The problem is that it's a lot easier for a musician to find an audience than a programmer to find an audience. Music is nearly universal but programming is quite obscure for people who don't know how. Everybody has seen a guitar or even plucked the string but not many people have seen a source code or written a few lines. Just because one can find an audience in theory doesn't mean it is easy. People are more likely to complain about his app's functionality than show appreciation. Now, if he really solves an annoying problem for the users, there will be genuine appreciation but those problem as rarer and harder.
You must love what you do, that's the only real satisfaction you will get from any task in life.
If you are suffering from depression you'll probably won't be able to focus on your job or you can get obsessed with it which is also bad.
Programming is building things, you can in a way create something from nothing, you can get rich, you can create art, help others create things, if you are stuck building some godforsaken Linux library then get a guitar, you are not all day programming right?
Good analogy, but I think it might have something to do with sitting at a computer all day and not getting enough exercise and having a shitty diet. Myself included, sometimes.
I agree, emphasis needs to be put on 'sitting at the computer'. I cycle 300km a week, am married to a dietician, and take medication but I still suffer severe depression.
I don't suffer (and never have) from depression so I can't know what you are going through (I do know people though who have so I do have many years exposure in that way fwiw.)
Programming is definitely one of those things that are harder to get reinforcement from the general public on. If that is what someone needs they will have a hard time. Not like in music (as you say) not even like in art, not like getting good grades and/or getting into a good school. Not like making wads of money.
That said early on I realized that many of the things that I did nobody cared about. Rc Helis? Did that in the 80's (gas powered) nobody cared back then (they barely do now) it was super niche. Photography? Really the same "he takes pictures". "He's a photographer" (almost with a laugh). Many would get annoyed actually. (I didn't care).
Likewise when I do negotiations and deals now (for clients) they have no clue of the effort that goes in. I once sent someone a picture of an each (an inch in height) of emails that I had printed out. To make the point (you have to toot your own horn as uncomfortable as that is). Otherwise the only thing they care about is the result. But you have to show why you charge what you do. Otherwise they think it's really easy.
But it's something that I have always dealt with with things that "I do" so I've just learned to accept it. But I've definitely recognized it and yeah it would be nice if people acknowledged what you did for sure. Luckily my wife will listen to my war stories on things. But if I show her a script that I wrote to automate things she glazes over "he does computer things" (like the guy who does woodworking I guess).
In a sense this is why some people need the trappings of success (nice house, nice car) because that way it's a marker that "they must be doing well if they could afford the expensive Porsche" and yes you do get treated differently.
> In a sense this is why some people need the trappings of success (nice house, nice car)...
I'd never considered that, but that sounds right. It might not even be to show it off to other people so much as to remind yourself of your own success.
Unfortunately, even in programming, there are fields where programmers can't even share their work with many other programmers they know. Responses like: "Oh that's low-level x86 assembly, I don't touch that stuff." "Ugh I hate GUI programming, give me something real." or "Web programming? I only know about databases, sorry." Programming is such a varied field that discussing your work might require online discussion of the handful of people spread across the world that actually care about the problem you solved.
For this comment I'll try to stick to one specific thing. I'll focus on the mechanic analogy, but I do think the premise of the article is flawed. I have some thoughts about burnout in programmers etc. but they aren't well enough formed for a 1am UK time post...
I actually think the analogy of car mechanic is really appropriate. Many people (myself included) could not fix even the most trivial of problems. I have fixed some very very trivial problems by poking around / research, but as a general rule the car has just gone into the garage, and someone else has fixed it for me.
I've also once had a car in the garage for over a week. I briefly mentioned the problem, over the phone, to my non-mechanical grandmother, only to have her diagnose exactly the issue at hand. Simply: She has had the same thing happen to one of her cars. Those mechanics hadn't seen it. So she was correct. But that anecdote doesn't really mean anything. It was just one of those things. Experts can't know everything and those car mechanics will always know more than my gran about cars!
'So at the end of several days' worth of programming, and problem-solving, and forward-thinking, all a programmer might get is a "thanks, now here's the next thing I need you to do."' - yes! That's exactly how mechanics (amongst others) are treated! Who pays a mechanic and says "amazing job" when they don't understand the original problem? It's meaningless faint praise to say good job for something you don't have an inkling of the difficulty of.
The whole article sounds like the author wants programming to be treated as art. I tend to agree that it takes great skill and dedicated learning to become a good programmer. But I don't think that is what defines art. It takes skill and dedication to become a good carpenter, a good brick-layer, a good joiner... But no one gives these guys a round of applause when they do something subtly brilliant. It's only others in their craft that go "hey, that's really pretty nice, well done".
* Sorry. Building references just came to mind. People don't notice when they do a good job, but oh boy do they notice when a not-quite-good-enough job is done!
I'm actually not really convinced of the programming-as-artform treatment that's popular in a lot of programming circles.
The main difference I was trying to illustrate between mechanics and programmers is that people occasionally get exposed to at least a little bit of the complexity that mechanics have to deal with. That might not make them treat their mechanics as well as they should, of course.
But, in programming, we want to hide as much of the complexity from people as possible. Error messages have to be meaningful to the layperson, interfaces need to be intuitive, and so on.
I haven't been able to think of another discipline quite like that. If anybody else can, I'd love to hear about it!
How about (staying with the building analogies because I'm in a building right now and looking around trying to think of analogies...) the electrician who has wired your flat? You don't think anything of the lights coming on when you flick a switch. Live in a place that's got slightly mediocre wiring, you don't really notice generally, But once in a while it bugs you that the light just blows sometimes. For no reason.
Of course, there's no error messages for a light failing. It doesn't tell us why it failed.
In truth I think our discipline is a unique discipline. Just like everyone else thinks theirs is (tell a plumber they're basically equivalent to a gas engineer or vice versa - but we 'normals' treat them that way). But we tend to concentrate on our new, unique-ish-ness. Our field is young, it has a long way to go. But essentially I don't see why programming needs to be, or should ever be, elevated to a particularly special status.
Point I didn't bother making explicit in my first post: Great music and art both have an effect on people who are not versed in music and art. Great programming only has an effect on fellow programmers.
EDIT
I think my basic point is that we should see our jobs as those where we get our work done. And we do the best job that we possibly can.
That's it. Not over-burdening ourselves for 'just one more push' (I'm currently failing somewhat with this in my current contract - do what I say; not what I do..). We as a group need to realise that like other people, we need to go home sometimes and relax too... That's the most beneficial thing. Not believing that our job is somehow exempt from the work/play balance
When I find that my standard coding is not giving me the happiness and appreciation that I need, then I take a break from whatever I'm working on and do something else.
For example, I might build a new tool that better automates a part of our deployment process. Or I'll automate document generation and updates for our company wiki. I find that these tasks typically don't require a ton of work, but receive a lot of appreciation from the dev teams working with me.
Personally I think it has more to do with the conditions of work. For example, working autonomously and not interacting much with others. Validation comes from shared experiences, but it doesn't have to be limited to programming. Just having the odd conversation with people about anything mildly intellectually stimulating helps so much.
I think "Programming" is just a word to decribe the representation of the consequence.
The real value of a programmer is in understanding things fully (in order to formally articulate them in a program).
The suits I work with don't understand things fully, they just understand it to some (I'd say superficial) degree. Then they decide something but they don't know what constraints apply to what element in the process and their estimates / decisions / ... are regularly completely off.
So I am not only a programmer, but I am the "understander" of the domain (and thereby of the production part of our business). This creates a lot of frustration because the suits decide, yet they don't know that they don't know.
Hence also the tendency for good programmers to become independent or depressive.
He must be seriously depressed by his daily routine to miss the point of programming by that much - it's a creative discipline that allows you to bring something to life - no cheers needed.
If you want cheers though, present your salary or income numbers to people in other professions. Only being a stock broker allows you to earn more money, you can even freely decide the price most of the times (and within reaonsable limits and your competition), since your clients are unlikely to be able to estimate the technical efforts behind.
To be perfectly fair, I don't think that there is a single universal point of programming. Doing it for recognition seems equally valid to me, and if nothing else, recognition generally encourages people to do things.
I remember that it was said in some research article: "That people who have realistic world view, will be depressed sooner or later." So I guess programmers are quite pragmatic and smart people, which inevitably leads to seeing how wrong things are.
I have often thought, that it would be much easier to be dumb enough, just to be happy and thinking that everything is and will be alright. I don't need to worry, care, and what will happen will happen and I can't personally affect it in any way.
Hey man, I feel ya. Some jobs are fucking thankless. I'm in one myself and I think it comes from being lead by people who don't respect and acknowledge how positively you are impacting your company. My guess is that you don't respect your company leaders either. But look around. I think you'll see that a lot of your coworkers are in the same place. I blame bad management.
My advice, either demand respect or go find people who you respect and who respect what you do. Then find a way to work with them.
I don't think it's a recognition; at least I don't see that big of a difference to other professions/life styles, etc). There may be an element of solitude, based on how many like minded people are in your life, but I think that goes for alot of other professions as well (e.g. medicine)
My own theory (at least about myself) is that being a programmer, I spent at least half of my day looking at complex systems trying to figure out what is wrong.
Don't get me wrong Programming can be an incredibly rewarding experience...literally creating using primarily pure thought is about as close to "creative" as you can get.
But regardless how how rewarding it can be at times (when you get to marvel at the solution / result), the actual process and significant amounts of time revolve around solving problems. Essentially we spend most of our day focusing on negative facts, trying to figure out whats wrong.
When walking around the real world focusing largely on what is wrong, these thought patterns however are not nearly as effective as when dealing with, albeit complex, well defined logical structures. So not only does focusing on negative things itself introduce depressing thoughts and emotions, but the inability to find "real solution" to problems in the real world the way you do when programming can also be frustrating.
The author seems to be frustrated about the lack of rock-star style recognition for his efforts. I have a few thoughts on this.
If you make something truly useful, and market yourself well, you're going to make a lot of cash. That's a key form of recognition for your work. It's up to you how you manifest that into social proof or other rewards. Get yourself a nice car or two, eat at the restaurants you like, get a decent watch. Give it away. Date models. Whatever makes you happy.
Or don't. That's one of the best things about the type of work that we do. Apart from the absolute upper echelon or startup founders, VCs, etc. we're able to go about our lives unnoticed and unperturbed. If you're Apple employee #17, or founder of a $100k/mo SaaS startup, chances are you can go about your life largely undisturbed.
Anyhow, looking for recognition from others is a pretty empty thing. Having the resources to live the life you want... That's much more compelling to me. I'll pass on the cheering, free drinks, and groupies. Being able to jump a flight anywhere in the world tomorrow, huck an M5 around the Nordschleife, or lay around Punta del Este for weeks. I'll take freedom and lifestyle over attention and recognition.
This is a brilliant article. however, I dont think programming can get you just a "Thank you".it can get you exponential growth in your bank account, it can buy you first class flights around the world, luxury cars and an elegant life style. we are at a stage of human history where it easier than ever to convert knowledge into profit.
Most programmers don't get that except a few who win the startup lottery. Most developers work for a slightly above median wage in a cubicle in some insurance company somewhere.
Write code for the fun of it: coding is really really really a fun activity, since you create something out of nothing. You don't need to show others that you are capable of coding. What you learned is part of you and even when you talk with your friends about other arguments, your background is part of what you say.
Most people will want to stay with you and have fun with you since you'll be able to: relax, make some joke, cook some great food, propose some activity to do. Focus on having fun with other people, it is your time to avoid thinking about code and programming.
I hate when people talk about programming to dinners or at the Pub. I took the habit of saying "Hey... I work all the day, no work talking now my friend ;-)".
That seems disingenuous for some people: programming can be a bobby, too.
I'm guessing that you have a completely different reaction to someone who is telling their friends about their latest rock climbing exploits. (Scaled this massive chimney, had to use this super awkward crack for a peton; super challenging climb! Etc, etc).
Why is programming treated differently from other activities your friends do?
Because it is mostly at a level of details that without specific understanding of the topic it is impossible to understand and boring. But, if we would work as alpine guides, I would not be happy with my friends talking about climbing. The problem is basically: it's what we do all day + it excludes people outside of our circle.
> But if you are a programmer, you can't [demonstrate your skills to laymen].
I don't think it is exactly fair to say so. What a programmer can't do is show off whenever he wants (like “hey, look, I just refactored this whole project and now is does the exact same thing as it used to do”). This is more a problem of context: sometimes, people will be faced with problem, or won't be able to understand something; at this moment, you can demonstrate what you can have a computer do for you or how well you understand it.
But the point is that some people have less opportunities to show off, I have to agree with the fact that programmers are some of them. However, there are not alone (think mathematicians or accountant for instance).
w/r to the idea of being the guitar player, it's called "the flashy demo." If you really want to appeal to a crowd, there are some ways to do it with code. A large cross-section of "indie games" is based around bits and pieces of exactly this dream - make something very eye-catching that gets attention, money rolls in, and then later you get up on stage to take your award, so on and so forth...
But even if it came true for everyone, it just isn't the real reward, even for the virtuoso guitarists who actually get that kind of attention hundreds of times a year. If it's not intrinsically rewarding it's going to be another gig and mean shit-all in terms of how you feel.
I think a more important message is being buried here. Yes, the work itself should be rewarding, but there are so many programmers out there who bleed their heart into code, but as a profession they only work on soulless projects. There's no "canary in the mine" in regards to positive feedback: you got what you wanted, a job as a programmer, so enjoy it or suck it up. Even if it sucks.
Personally I consider taking up my hobby, programming/development/web, as my all-or-nothing full-time career to be one of my biggest mistakes.
Well, programming in itself doesn't really have much entertainment value at least not for non-programmers. Heck even I as a programmer have looked into the code of only a minority of the myriad libraries and applications I use or my applications depend on.
But, if you create something that's appealing to a lot of people you have a good change of getting recognition for it, sometimes even more than you've bargained for. Just look at Dong Nguyen.
My friend depression has walked with me for decades. We finally came to an understanding. I take care of myself every day and depression fades into the background allowing me to enjoy using the engineering bits of my brain in balance. Getting enough sleep, eating well, drinking enough water, being grateful for what I have, exercise, and a community of friends have been key. Nature walks, yoga, and Argentine Tango work for me.
I think "burning out" and "depression" (or "depressive episode" etc.) are essentially the same thing. "Burning out" sounds a lot better and has less negative connotations, but the symptoms and effects, in my experience, are no different.
I think if you do web or mobile stuff, you can easily amaze people as well if you have some interesting projects, considering how everyone has a smartphone nowadays - you can just be like "hey check out this side project I've been working on lately"
I think the issue is how long it takes to get in "the zone" or have the problem in working memory. If you go to sleep you know you'll have to go through that process again tomorrow before you can start being as productive again.
Is depression really that much more prevalent among programmers than those of other professions? I am quite curious about this given how often you find depression-themed posts on this site.
If there have been any studies on this, links would be appreciated.
There's a bit of skew in the number of articles here. Some high profile cases and a desire to de-stigmatise mental health problems means that people are keen to discuss good articles about mental health problems and treatment.
I suspect that there is some correlation between 'programmers' and 'people who have depression' because 'programmers' includes many 'people with Aspergers' and there is known links between Aspergers and depression.
Although I to would love to see good quality research.
(This is perhaps a nice website idea: "Here's a research paper. What are the problems with it? Is "$Thing@ supported by this evidence? How do I find more research?"
This would be an attempt to educate the public about scientific literacy.)
> What you can do is share your code with other programmers. I think that's the real value of things like Github. But, programmers are a notoriously savage bunch, and Github attracts top talent from all corners of the world. You are just as likely to hear a comment breaking down why your approach was wrong, or why you're using the incorrect syntax here or there, or why there's already some library by some other Joe Schmuck that does the same thing, only better.
I won't lie and say that programming is the most uplifting job in the world...its very physical implementation -- involving the long lonely staring at a plain text screen -- is a depression-breeding environment. What has helped me not be depressed about programming is to come up with much more intrinsic values for why I program. So I'm not programming to write better or faster code than the many geniuses out there, I write code to satisfy my own needs and goal.
So to the author's point above, I love the debates and criticism that Github fosters. Submitting a pull request and then repeatedly checking my email to see if the maintainer has made a comment is even more addicting to me than checking Hacker News. I don't mind a "thank you", but I really love a "Thanks, but this is feature creep" or "Why did you use this approach when our convention is [this]?" or even a "Please clean up your code, it fails [whatever code quality tool they've grafted on to the test suite]." Usually the maintainer is right, and I'll have learned a little more about best practices, and sometimes even if I disagree but am in a decent mood, I'll do as they say just because sometimes the physical act of writing code helps me understand it.
But the key is this: I almost never contribute code that doesn't immediately help me...this includes everything from a feature-creepy feature to a bug-fix that affects my particularly wonky setup. That way, even if the pull request is rejected, I still have something that I can use and be happy with.
There's nothing wrong with selfish goals in coding, and I believe that programmers often aren't selfish enough...or at least in the right ways (I suppose wanting to program just because you think it'll earn you money is a selfish mindset, but it's not immediate enough, IMO).
One of my favorite Woz stories is not just how he built the Apple ][ Floppy Disk -- regarded as an early Apple Inc. lifesaver and a technical marvel -- without any previous floppy drive experience and in about 20 days, but the fact that he did it (according to various Apple writers) almost solely because Mike Markkula had tempted him with a free trip to the Las Vegas tech expo, and Woz had never been to Las Vegas before. Can't get much more "selfish" than that :)
You know, a girl asked me what I've done. We were at a hackerspace.
All I could think is that I've built corporate sites and worked on great teams. I mean, I have a github repo with stuff and junk, but those are just ideas. -- "Hey babe, well, check out this 2KB grid system I can build."
Still: so?
Is that the problem? That socialism gives you no speed dating swag? Really?
The analogy between a guitar-player and a software engineer is a pretty poor one. You wouldn't go up and say "Hey guitar player, you should do it like this and that" because there's no absolute "correct" way of playing guitar. It's an art-form.
Engineering on the other hand has problems to solve, and so each solution (in code) gets judged on how well it solves the problem. I don't like the idea of saying "Hey nice try! Let's just go ahead and use it!" if the code actually sucks. That's the real world -- things can suck.
Look, end of the day, it's not about other people's opinions. When other people are cheering you on, it influences you to feel good about yourself, but you can do that yourself. If you're not OK with that, maybe you should be a guitar player. As for me, I'm pretty happy with the luxuries being a programmer affords me.
Wrong on both counts. Guitarists are douchebags who frequently grab guitars out of the hands of other people and proceed to show them how it should be done while they blast out blazing idiotic riffs. People who don't play guitar also frequently have an opinion on how you play, how to play it "right".
When it comes to software development there is a huge amount of opinion based decision making on what's good vs. bad code despite whether it actually solves a problem or not. Frequently programmers will pick languages and solutions or write code that is awful but then promote it like it's the best thing ever. Even supposedly "perfect" systems for software development end up being horribly unusable and based on basically the equivalent of mathematical fantasy and marketing.
So no, you are pretty wrong on both assertions, and I found that the article had a significant insight I hadn't considered before.
Very true. But also there is another aspect to it - there is a lot of admiration for programmers and engineers and what generally hackers can do, be it Steve Wozniak, Bill Gates, Ted Hoff, Kevin Mytnick, Elon Musk, Kim Dotnet or Edward Snowden - each one of them is a pop superstar in his own respect, no less than Madonna or Britney. Most people see only the final effect of years of dedicated effort, and cannot appreciate Sting's solfeggios that underline his performences. But people do see and appreciate the big bucks of Zuckerberg and Jobs, their impact on culture and social interaction.
On the other hand people don't see the simple coder behing an app just as much as people don't recognise the tuck driver who delivers the groceries.
Writing is an art form. You did to this guy's writing exactly what he said you'd do. And here I am, doing the same to you. And of course it's best to be happy without other peoples' approval, but it's harder, so it's less frequently accomplished. Hence the link with depression.
I don't entirely disagree with you. If software doesn't solve the problem it's supposed to solve, if it's unstable or has some other issues, then it needs work. Or, sometimes, needs to be thrown out and started over. I don't need a pat on the head for that kind of work, and I don't think many people beyond the most junior of programmers does, either.
The main gist though is that software development is work which gets very little recognition outside of its own small social circles, and within those social circles, the recognition is as likely to be negative as positive.
There is never one way to solve an engineering problem. Different people will use their own ideas, experiences and understanding to apply unique and creative solutions. Just like a musician.
The article explains some ideas about why programmers as a whole are under-appreciated.
But having your work be under-appreciated has very very very little to do with being depressed.
I am an engineer, and almost my entire social circle is technical as well. I've found that it's hard for friends to understand just how utterly irrational depression is. Being sad because something bad happened isn't depression. Being tired because you haven't been sleeping well isn't depression. And being un-motivated because you are under-appreciated isn't depression.
Yes, bad things happening, poor sleep, and under-appreciation can trigger or contribute to depression. And I don't doubt that the author is hurting and struggling and needs and deserves our help.
I'm just scared when we oversimplify depression, and try to explain it away. Depression is as nuanced as it is awful.