Programming: Love It or Leave It

December 29, 2008

In a recent Joel on Software forum post Thinking of Leaving the Industry, one programmer wonders if software development is the right career choice in the face of broad economic uncertainty:

After reading the disgruntled posts here from long time programmers and hearing so much about ageism and outsourcing, I'm thinking of leaving the industry. What is a good industry to get into where your programming skills would put you at an advantage?

Joel Spolsky responded:

Although the tech industry is not immune, programming jobs are not really being impacted. Yes, there are fewer openings, but there are still openings (see my job board for evidence). I still haven't met a great programmer who doesn't have a job. I still can't fill all the openings at my company.

Our pay is great. There's no other career except Wall Street that regularly pays kids $75,000 right out of school, and where so many people make six figures salaries for long careers with just a bachelors degree. There's no other career where you come to work every day and get to invent, design, and engineer the way the future will work.

Despite the occasional idiot bosses and workplaces that forbid you from putting up Dilbert cartoons on your cubicle walls, there's no other industry where workers are treated so well. Jesus you're spoiled, people. Do you know how many people in America go to jobs where you need permission to go to the bathroom?

Stop the whining, already. Programming is a fantastic career. Most programmers would love to do it even if they didn't get paid. How many people get to do what they love and get paid for it? 2%? 5%?

I tend to agree with Joel's brand of tough love. What he seems to be saying -- after taking my usual poetic license -- is this:

Programming: love it or leave it.

America: Love It or Leave It

Unless you're fortunate enough to work for a top tier software development company, like Google, Microsoft, or Apple, you've probably experienced first hand the huge skill disparities in your fellow programmers. I'm betting you've also wondered more than once why some of your coworkers can't, well, program. Even if that's what their job description says.

Over the last twenty years, I've worked with far too many programmers who honestly had no business being paid to be a programmer. Now, I'm not talking about your average programmer here. We're all human, and we all make mistakes. I'm talking about the Daily WTF crew. People that actively give programming a bad name, and you, as their coworker, a constant headache.

Like Joel, I'm not ready to call the current conditions a new dot com bubble yet, because business is still quite good. But one of the (very) few bright spots of the previous bubble was that it weeded out all the people who didn't truly love software development. Once the incentive to become an overnight dot-com genius programmer millionaire was gone, computer science enrollment suddenly dropped precipitously at colleges across the country. The only people left applying for programming jobs were the true freaks and geeks who, y'know, loved this stuff. The kind of people I had originally enjoyed working with so much. At least until a bunch of careerist gold diggers suddenly showed up and started polluting our workplace.

As much as the dot com bubble sucked, I was intensely glad to see these people go. Now I'm wondering if the current economic conditions are an opportunity to clean house again.

I mean this in the nicest possible way, but not everyone should be a programmer. How often have you wished that a certain coworker of yours would suddenly have an epiphany one day and decide that this whole software engineering thing just isn't working out for them? How do you tell someone that the quality of their work is terrible and they'll never be good at their job -- so much so that they should literally quit and pursue a new career? I've wanted to many times, but I never had the guts.

Joel implied that good programmers love programming so much they'd do it for no pay at all. I won't go quite that far, but I will note that the best programmers I've known have all had a lifelong passion for what they do. There's no way a minor economic blip would ever convince them they should do anything else. No way. No how.

So if a programmer ever hints, even in passing, that they might possibly want to exit the field -- they probably should. I'm not saying you should be a jerk about it, obviously. But if someone has any doubt at all about programming as a career choice, they should be encouraged to explore alternatives -- and make room for another programmer who unashamedly loves to code.

Then again, maybe I'm not the best person to ask. I spent Christmas Eve setting up servers. I'm on holiday right now, sitting in a hotel room in Santa Barbara, and you know what I spent the last two nights doing until the wee hours of the morning? Writing code to improve Stack Overflow. Oh yeah, and this blog post.

So I might be a little biased.

Posted by Jeff Atwood
203 Comments


My hope is that the cheerleading, blindfolded, fanboys like you and Joel, leave the industry. When's the last time either of you debugged a race condition? You manage programmers and therefore have a vested interest in keeping the illusion alive. Programming is a JOB. It is often HARD. It is very STRESSFUL.

You obviously have no clue.

Mike on December 29, 2008 11:15 AM

Here are some relevant True Stories:

True Story #1:
After getting hired at a software company, I went out to get fitted for some new suits. I mentioned to the salesman that I was getting these suits for a software consulting job on Wall Street. Salesman says to me oh yeah, I used to be a mainframe developer on Wall Street. I asked if he was working in clothing retail because he made his fortune and wanted to do what he loved. Oh, no - they started using visual stuff for everything - drag-and-drop. No *real* coding in assembler like I did - just drag-and-drop. So I gave up and now I'm doing this.

True Story #2:
Real Estate Agent who sold me my current apt mentioned that he used to be a C++ developer but gave up and moved into real estate because he got laid off and didn't have time to take classes to learn Visual Basic.


Now, to be fair, it's easy to forget that the Internet didn't exist 15 years ago in the form we now know it - with its bountiful tutorials and online books. But these two encounters were enough to plant the seeds of doubt in my mind regarding my career choice.

Noah Z on December 29, 2008 11:22 AM

@DMB
Even Microsoft will pay more than that to qualified candidates.
Hang on, *even* Microsoft? Microsoft rewards its programmers above average for the marketplace, at least in terms of pay.

Tom on December 29, 2008 11:26 AM

Echostorm wrote:
If a doctor screws up, at worst, one person dies

...but if Jeff Goldblum screws up, the aliens think to install anti-virus software and the whole earth is destroyed.

T.E.D. on December 29, 2008 11:28 AM

Nice article

Kamran Shahid on December 29, 2008 11:28 AM

I suspect that many of us love parts of our job(s) but there are lots of things that are frustrating or irksome. At first I was surprised by Joel's response(s), but, it's not like we really know him anyway.

Apparently he is becoming frustrated with the lack of talent he can recruit. My observation and advice to him is that either he has to relent on the co-location thing in order to get good people in the (virtual) door, or he has to sacrifice on the quality of the people he hires. I know which one I would do and I have seen that model work. (hint - it is not the one about lowering standards of people)

Joel is competing with (what has been) some of the bigger and highest paying employers around - the financial industry. Perhaps now he is not, but I suspect most of the people in that world (or who recently belonged to it) are not interested in writing a defect tracking system or a remote control help app or some other webby type application. The people want to work on harder and more interesting problems - and in an industry where millions of dollars flow in matters of minutes or seconds.

Personally, I'd like to work at fog creek, but I have no interest in either moving to NYC or commuting the 90 minutes each way from my little slice of suburbia.

I recently began to wonder why Joel is so interested in people who have learned C, C++, Scheme (all the stuff I cut my teeth on) but his company uses technologies like VB in daily activities. The people he wants to hire (at least from my experience) have an aversion to that sort of stuff. They WANT to work on hard problems and from what I see of Joel's stuff it is not that technically interesting.

So perhaps we can forgive Joel his seeming cruelty and advice to suck it up.

I sometimes love my job (not my day job tough - just the two side/freelance/startups I am working one) and many times I can't stand some of the work I do and the people I work with and the ridiculous policies and bosses. Again, I suspect I am not alone in that. How else can yo explain the near universal acceptance, appeal, rejoicing and identification with Dilbert, office space and the office?

Life would be great if we all were as smart, talented and productive as Linus or Edsgar or Anders, but we're not and that's ok. At times we aspire to do great things and sometimes we actually do them. Other times we just want to get through the day.

I'm just hoping I don't waste so much time on stack overflow tomorrow so I can get some work done on my business plan.

Tim on December 29, 2008 11:29 AM

Well, I took the extended christmas holiday opportunity to... set up Eclipse and Scala on my new computer. God, I'm a geek! Thanks! :-)

Daniel on December 29, 2008 11:34 AM

When's the last time either of you debugged a race condition?

Sounds quite interesting, actually -- would love to see a blog post on the specific work you did!

Programming is a JOB. It is often HARD. It is very STRESSFUL.

All of this is true, but it is also AWESOME. And, seriously, you should blog about your work! There is a community of people like us who are interested and engaged, and it can only help you professionally.

Jeff Atwood on December 29, 2008 11:48 AM

Second post in a row based on something on JoS.

Getting ready to jump that shark, Jeff?

Adam Philips on December 29, 2008 11:49 AM

@echostorm: you're a little off here; most code doesn't mean much in the bigger picture. some manager or offshore outfit or paradigm shift will make it obsolete.

I need my oil change done right, I need my car brakes done right -- these things can save my life.

Joel wrote a bug tracking software and was lucky enough to have some Summer interns write his next successful product.

Jeff is a great blogger not so much anymore because of his knowledge, but because he figured out how to LEVERAGE his blog, linking to himself and Amazon, and most importantly, get people (including me) to read and comment (hmmm, a New Year's resolution is coming...) and STIR the pot of silly emotion.

Steve on December 29, 2008 11:50 AM

@Veteran: Absolutely. There is a problem with doing what you love as a job. If you really love it, of course, you'll do it for nothing, and when someone takes advantage of that it's called exploitation.

When I refuse to work extra (or even HARD), it's not because I don't love programming (I positively do). It's because there are other things I care about more. Like my health (primarily mental health, but also physical), my own programming projects, and a life outside of work! So fsck the attitude that says a good programmer is one who will do anything for the benefit of the project, at the expense of everything else.

I would even go so far as to say that if you are one of those programmers who does anything and everything for the sake of shipping a great product, STOP! Think about what you're doing. It's not fair to your co-workers to be held to such a (horrific) standard. Just because you're ok with being exploited doesn't mean everyone is. Start a project of your own or something. Chill out! (something most good programmers seem to be unable to do) Attempt to uncover (and heal from) the mental wounds that you've suffered from for so long, the wounds that allow you to be put in a position where you're ok with being exploited.

Dylan Nissley on December 29, 2008 11:53 AM

Mecki: you can't be a truly good programmer until you can read other people's code. You may think the other people can't program: sometimes their idioms will just be different from your own, and they are great in their own way. The worst programmers I've ever met were very, very proud of their own work and couldn't stand anyone else's. They tend to be the ones who can't learn new tricks. Are you sure you are not one of them?

Personally I don't think we should teach writing code before we teach reading code. If I had a programming class to teach, my final exam would be Here is a 100,000 line program. There are 14 known bugs. Here are the bug descriptions. Fix them.


Gil on December 29, 2008 12:00 PM

@EchoStorm

I agree with you on there for the most part.

In the end, I like programming and think it's fun -- unfortunately now that I HAVE to do it every day (and mainly to build things for other people) it just ... isn't as fun anymore.

In terms of stress and the 'having to take work home' aspect ... as I've got some physical problems, being a 9-5 programmer is sometimes all I can physically stand.

The way things move so fast nowadays, it seems that unless you are spending your Christmas holidays fooling around with servers you aren't dedicated enough to eventually fall into obsolescence.

Mal on December 29, 2008 12:00 PM

@steve I'm off because you say so? You might be writing ho hum business apps but a lot of the guys I know are in a little deeper.

One friend writes an app that keeps track of pharmacy orders for nursing homes. Another works on stock trading software. I write software for a major home security company. My old boss maintains an app used in hospitals to keep track of patient records. Another at CMU's work is used by NASA. One uncle does mainframe work for an energy company. Another uncle codes things for the DOD that he can't even talk about. An old classmate handles the online billing for one of the major telcos. I could go on.

While I do have coder friends in game companies and less critical companies the majority do have rather heavy burdens.

I'll agree that I'd prefer that my mechanic is competent if it came down to one bad oil change or the children's ward getting the wrong meds I think its a no-brainer.

Echostorm on December 29, 2008 12:06 PM

Personally I don't think we should teach writing code before we teach reading code. If I had a programming class to teach, my final exam would be Here is a 100,000 line program. There are 14 known bugs. Here are the bug descriptions. Fix them.


Gil on December 29, 2008 12:00 PM

Ha Gil that sounds good but you would weed out MOST of the students in the class! A 10,000 line program with the same number of errors would be better for the little tykes who are in college and haven't ever worked professionally. As for your comment about Mecki I'll leave that between you two.

o.s. on December 29, 2008 12:20 PM

So if a programmer ever hints, even in passing, that they might possibly want to exit the field -- they probably should.

That is an extreme over simplification. As Veteran described, there ARE other reasons to leave software development than incompetence although I acknowledge that there is a disgusting amount of incompetence in our industry.

I love to code, design software, develop products, market solutions, and plan business strategies, and I happen to be pretty damn good at them all, but that does not mean I have never reevaluated my career and the pros and cons it has on my life.

RB on December 29, 2008 12:21 PM

Yep I agree love it or leave it. But post-assembly most abstract languages have lowered the barrier to program, which means a whole lot of people can do it without loving it. my 2 cents to add to a great post and even better comments.

Dipankar Sarkar on December 29, 2008 12:27 PM

It can depend on *what* your programming, I found when I started doing jobs that were too far away from the bits of programming that interested me (doing server side stuff with j2ee, with a really horrible codebase) for a while, I started to question whether I wanted to give it up - turned out that I just needed to be coding the stuff that interested me to have an interest + put the effort in.

Stu on December 29, 2008 12:40 PM

I totally agree, but with one small exception. The thought of leaving the field is sometimes garnered by the inept and the exhausted.. sometimes a bad work environment can really twist your perception of what a field is supposed to be.

Hutch on December 29, 2008 12:42 PM

I was going to write a long rant, but forget it. No hard feelings Jeff, but you admitted it yourself: you're too biased to make this call, SO DON'T MAKE IT. You're simply too disconnected from real programmers and the working world for this post to mean anything. You lack... perspective.

Dylan Nissley on December 29, 2008 12:42 PM

One more thing: why are you doing this? What do you hope to achieve? Do you think people will actually quit their jobs because you told them to love it or leave it? Why is it unfair for bad programmers to hold down jobs that good programmers have? Wouldn't most good programmers have the mental faculties to understand the sacrifices one must make in order to do what one loves for money? Wouldn't most good programmers choose against those sacrifices for the good of their craft?

Dylan Nissley on December 29, 2008 12:50 PM

1) I have been developing code for over 15 years now. Before that I worked for 7 years in S/W QA. I am passionate about my work, but not obsessed with it. Yeah, I used to work 70 to 80 hours a week when only 40 to 50 was required. Now I don't for a number of reasons: I don't need to (I am more productive now), I have other interests that occupy my off time, I need the downtime to recharge/reboot/flush the cache. I try to work smart instead of long hours. So don't measure whether someone is good or passionate by the amount of time they put into an endeavor. A well rounded person is usually a better worker in the long run.

2) Judging other people's work by how you would solve a problem is not always valid. There are many different ways to write logic to solve a coding problem - many are as equally valid, elegant, concise and readable as the one you would choose.

3) Would I leave programming? Not until I retire. I like what I do. Often I love it. Once in a while I hate it - but I get over that. I got into s/w dev by mistake (I have a EE degree), and before I went to college I worked just about every crap job you could imagine to make ends meet - many of *those* jobs I hated, so I know the difference.

But if I won the lottery today, I would retire and probably not write another line of code. I have plenty of other things I would do instead - like laying on a beach in Tahiti, or touring Europe on my Ducati, or taking an occasional philosophy/science/math class - of which none would earn me money, but none of which I would ever get bored with either.

Meanwhile, until I retire - I like what I do, but it is a job and I wouldn't do it if I didn't get paid or if I didn't need to get paid.

I am not a 'rockstar' (most of the coders I have met who think they are a 'rockstar' aren't either) - a totally overused term. I take pride in what I write - but I am often held back by deadlines, by supervisors who feel we aren't going to need what I want to do then six months later decide we do indeed need what I wanted to do at the beginning (much more often than not).

4) I do agree that most projects/companies/startups seem to fail mostly due to managerial decisions/mistakes - some significant portion of which were scheduling problems (impossible deadlines/milestones, etc.). Sometimes it was also the market/economy taking a left turn or downturn that was unanticipated or that could not be planned for. Sometimes the technology was at fault (the code, the platform, the hardware, the architecture, the time estimates which most devs are terrible at - including myself). But yes, more managerial problems than dev problems - and yet it is usually the management staff that stayed employed and the dev staff that was let go.

Certainly, if you don't enjoy writing code, think about finding a profession that you do enjoy. Life is too short to work in a job that you hate while there is something you could work at where you look forward to going to work everyday. BTDT.

LCB on December 29, 2008 12:53 PM

LCB said: Certainly, if you don't enjoy writing code, think about finding a profession that you do enjoy. Life is too short to work in a job that you hate while there is something you could work at where you look forward to going to work everyday.

This is the problem. Life is too short to be working a job in the first place! let alone a career where you have to go to school for 4 years! and then work at least 8 hour days 5 days a week! OF COURSE life is too short to be doing that! Life is too short to be doing anything you don't want to do longer than you have to. So take my advice: work as little as possible. I swear to god you will be happier.

Dylan Nissley on December 29, 2008 12:59 PM

The problem isn't that programming sucks, it's the programming *jobs* out there.

Snacky on December 30, 2008 1:00 AM

Gil: The worst programmers I've ever met were very, very proud of their own work and couldn't stand anyone else's. They tend to be the ones who can't learn new tricks. Are you sure you are not one of them?

Don't confuse attitude and productivity. Is Steve jobs the biggest asshole in the Silicon Valley? Yes. Is his company currently the most successful in the Silicon Valley? Yes.

So is Steve Jobs a bad CEO or a good CEO?

There are a couple words I would use to describe somebody who is proud of their top notch code. Bad isn't one of them.

W on December 30, 2008 1:43 AM

Looking at the amount of responses and the pure length of some of them, I would say the topic hits the nail :)

Juergen on December 30, 2008 1:50 AM

I must be grossly underpaid. If I made /half/ the money your posts which gave dollar amounts said ($70k? Average $90k?!), I'd be rich (for my area anyway (a small city in New York state)).

Your blog makes me want to ask for a raise.

anonymous on December 30, 2008 2:07 AM

This is a most righteous debate...

I'm not in the industry... But I try to follow it through others' blogs... Good coder, bad coder... It doesn't matter... At least you're being paid to do what I love to do in my spare time... What I've loved to do since the age of 6... At 34 years of age it is past my time to go back and finish that B.Sc.CS degree and do what you guys do, what with life's responsibilities and all...

Anonymous on December 30, 2008 2:48 AM

I didn't get my programming degree until I was 30. Maybe that's I appreciate it more than my peers. It's not something I picked blindly out of the college book, went into because a friend or family member did it or chose because I wanted to make big money. I chose it because I enjoyed working with computers and wanted to learn more. Until that point I worked in just about every aspect of manufacturing from assembly line worker to clerk. When I downsized at a job it took me 5 months to find a new job because I had no education. I may not make $70K but I make a lot more then $8 an hour.

I love being a programmer. I write programs as a hobby. I love learning new languages and keeping up my skills on languages I don't get to use. That's why I hate hearing some of my coworkers talk about how they need to get out of this business. How they hate to write code all day. Well you know what - do it! Stop raining on those of us who actually enjoy what we do.

Mogura on December 30, 2008 3:52 AM

You need to shut the fuck up, you pretentious little turd.

WTF on December 30, 2008 4:06 AM

What happens to surgeons with shaky hands, or surveyors who can't see through a transit? They become managers. The same thing happens with programmers who can't code or EE's who can't ground their circuits. They still need to eat, feed their families, etc. They can't all sell real estate or build custom furniture. Be happy they're no longer inserting rubbish code in your libraries, and are only asking for absurd schedule and budget requirements. They won't be around very long. They'll be replaced by some failed manager from some other failed project.

Lepto Spirosis on December 30, 2008 4:11 AM

I'm a programmer (and I've loved playing with computers for 28 of my 37 years), but I do something else for a living.

The mistake is to throw in your lot with the people who think that computers are (a) useful and (b) lucrative.

Malcolm on December 30, 2008 4:22 AM

I concur. Getting paid to do something you love is a privilege. Indeed in some ways I think one could legitimately talk about a moral duty in ones approach to programming. For example I think it's pretty close to a 'moral duty' for developers to grok at least the basics of parallel programming in order to enable the next leap in computing that the move to many core offers us now that that the 'free lunch' of fast enough clock-speed increases is over. By accepting that we're all going to have to be a little humble and maybe learn some new stuff then we can help give back to society by ensuring that we continue to be able to deliver engines that keep abreast of ever increasing data volumes. Science, healthcare, manufacturing, education, entertainment – these are just some of the industries we as developers can empower. It frankly rocks to be a developer (even during those 2am debugging sessions).

Tom Kirby-Green on December 30, 2008 4:23 AM

I'm a damn good programmer, the go-to-guy for all kind of problems, the person who is always ahead of the curve and comes up with inventive solutions, but somehow I lost the love for this stuff. Anymore the computer is a tool, any dev job I happen to work on is just a job.
I stick with it because the money is good, that's pretty much the truth.
Partially it's because I got tired of seeing my best efforts turn to nothing due to things out of my control (budget cuts, politics, power-plays, management changes, no management, too much management, hype, etc), but that can't be all.
I truly don't know why, but I can't have any more discussions about algorithms, practices, patterns, and stuff like that. I skip company parties because people always end up talking shop, and I get a sick feeling in my stomach. Often I just want to throw the monitor out of the window.
Been feeling like this for over three years.
Maybe I'm just burnt out.

GVdP on December 30, 2008 5:48 AM

Good article. From my experience, before I continue, I am from India, and I am a programmer, I got into programming because I am interested in programming, not because someone forced me into it and certainly not because it is some hot trend, and certainly not because I want to get a fat pay cheque. I choose to be a programmer. Programming is profession and an art, and a very creative process, and requires thinking. I usually do things my own way, I enjoy writing programs with my own hands, rather than copying and pasting from Google, and also I can't get a good night if I can't solve something. I changed jobs not for pay, but because the work got boring, or because there was no work, or I did not get along with my higher ups, or because the work was not challenging enough or because of too worst office politics. Truly if you are really interested in programming and as long as the pay is enough to pay is descent enough to pay your bills and run your family without any financial problems, by that I mean enough to have a descent life without having to borrow money at the end of month, enough to give you some descent sleep everyday. I am really not convinced with companies paying so much salary and bonuses that people actually amass wealth for their next 3-4 generations. I can take the liberty of quoting few examples I suppose, these highly paid programmers buy 3-4 houses in the name of their children, invest in few places 2-3 cars, or buy a flat that on EMIS and spend the rest of their paying EMIS, I am talking about people who want to display their lavishness, I am not against them enjoying what they earn, but with a little future thought had they been careful it would have helped them now, because the current economic situation is bad, people are losing their jobs, companies are paying half salaries, these high paid programmers who got used to spending money lavishly are suffering because either they have been kicked out of the job, or getting paid half of what they used to earn, ok how does it relate to this topic, because most of these programmers have joined because of the pay and some of the have jumped jobs like rabbits for few dollars more, not because they like programming. I ranted too much, one last thing to say before I close my ranting, lot of people sorry to quote about software testing here, but lot of people I know have become test engineers without having a good foundation in programming, and really have no idea what the hell they are testing and why, they can’t write a descent test case, but they jumped into the bandwagon because the pay is high. I blame the companies for paying so much and hiring people without proper interview process “Hire people because we have a huge project”, I guess the good old concept of “Hire the right person for the right job” doesn’t fit any more. I ranted too much.

Anand.V.V.N on December 30, 2008 5:51 AM

But if someone has any doubt at all about programming as a career choice, they should be encouraged to explore alternatives -- and make room for another programmer who unashamedly loves to code.
You *seem* to imply (but I may be misunderstanding) that if you need to explore something else, your love for code is questionable and you should move over. I think you'd be wrong on that one: there is an age where you'd be an idiot not to consider alternatives. Case in point: I started programming at 10, published my first professional video game at 12. My carrier was clear, right? When 17, I decided there might be more to life, and started seriously studying math (I was still a geek, that was my way of exploring the wide world :) ). Then, I tried to understand that beautiful universe and got myself a PhD in physics. And then I decided that programming was still lots of fun and offered better carrier opportunities than physics, so here I am, working for Microsoft. But I really don't know what I'm going to be doing in 5 years, maybe I'll be a writer, maybe I'll do something completely different. What I'm trying to say is that the viewpoint you expose here might be just a little bit narrow-minded. I'd tend to think reversely that a good engineer, given enough time, should be able to be successful and have fun in any field. And maybe they should. Isn't it a little sad to do the same thing for 50 years? Or are you trying to say that you just want idiots out. I'm sorry to announce that this will never happen in any field...

Bertrand Le Roy on December 30, 2008 5:54 AM

So if a programmer ever hints, even in passing, that they might possibly want to exit the field -- they probably should

Like Nick said yesterday, I totally agree with everything, but the above statement.

To add to what Nick said; I've felt this way once, and it just turned out to be that my job sucked, and I'd been stuck in a rut for so long, that I'd forgotten why I loved it. Once I started learning something new, my fire was reignited.

John on December 30, 2008 6:08 AM

I feel about the same as GVdP.

Mark on December 30, 2008 7:04 AM

I agree completely, people that complain like this really don't have a passion for writing software; maybe they did at one point and lost it or maybe they never did.

When you have a passion for programming you will write code at home just for the fun of it, you are always looking at new ways of doing things, and you stretch your abilities by 'tinkering' with things you don't know anything about, like machine learning or signal processing.

I feel very lucky to have found programming late in the game. I started when I was 22 and I have been at it for 11 years (8 professionally). I do not have a degree and I make over six figures. There aren't many industries where that would be possible.

I've also been lucky to work at places where cutting edge technology is a core focus. I can understand someone hating their job but, if you're worth your salt, you will be able to find a good, fun job with a little effort.

Todd on December 30, 2008 7:12 AM

David W. writes:
But, damnit, I simply can't keep throwing out everything I
learned every other year just to remain current in this
industry.

You won't throw anything out. I am 42, and am keeping up just fine.

The trick is to discover that the more everything changes, the more everything stays the same.

I am getting the opposite impression from you in fact, and am dismayed how the majority of fresh grads seem to know nothing.

rblaa on December 30, 2008 7:29 AM

I love being a programmer. I write programs as a hobby. I love learning new languages and keeping up my skills on languages I don't get to use. That's why I hate hearing some of my coworkers talk about how they need to get out of this business. How they hate to write code all day. Well you know what - do it! Stop raining on those of us who actually enjoy what we do.

Don't you have any other hobbies or interests besides sitting in front of a screen 24/7? You do realize that you're wasting your time when you keep up skills on languages that you don't use, right?

dude on December 30, 2008 8:17 AM

Hmm... Your views are true on the other side of the globe as well. I believe programming is more about passion rather than a just a JOB. Well, fortunately enough I joined an open source project and soon going to be a Committer with Apache Software Foundation.

Ashish on December 30, 2008 8:46 AM

153 comments, and I'm surprised nobody's pointed this out. Jeff, you're misusing the dot-com bubble metaphor. The bubble was when things grew out of control, and everybody thought they could become a millionaire and many of them were right. What happened in 2000 was that the bubble *burst*, as bubbles (literal and metaphorical alike) are wont to do, and suddenly there wasn't a bubble any more.

So, no, the present situation is certainly not another dot-com bubble. Nor is it the burst of another dot-com bubble, because there wasn't really a bubble to burst. (What it is, however, is in part a burst of some sort of bubble on Wall Street.)

Signed,
your friendly local language pedant. :)

Brooks Moses on December 30, 2008 8:47 AM

The second point I would like to make is that anyone saying they are programmers because they love writing code - that is very immature, I'm talking World of Warcraft / Dungeons and Dragons immature. Programming is a job, and not a hobby.

Hey buddy, what's wrong with Dungeons and Dragons?!

Level 20 Paladin on December 30, 2008 9:02 AM

Consider yourself lucky gentlemen... I've applied... And never, ever once had an interview...

Anonymous on December 30, 2008 9:17 AM

My hope is that the cheerleading, blindfolded, fanboys like you and Joel, leave the industry. When's the last time either of you debugged a race condition? You manage programmers and therefore have a vested interest in keeping the illusion alive. Programming is a JOB. It is often HARD. It is very STRESSFUL.


@Mike:
I can relate. But success is such a destination that comes from something. These guys apparantly reached it! So..

Saj on December 30, 2008 9:33 AM

My observation about the trouble with working as a developer is due to people above, so called Managers. Most of the time anyone who can't be very techie starts thinking of getting into management and then suddenly we have people making technical decisions, who in first place left it for not able to cope with complexity and competition. Same people then make life difficult for everyone around them and people start thinking to quit or do something else.

jais on December 30, 2008 10:04 AM

Get a life, will you people?

It's... it's just a TV show!

William Shatner on December 30, 2008 10:05 AM

Couldn't agree more with this post. Being a good programmer requires an enoromous amount of practice and patience for the rest of your career. If you don't love it, you'll either 1) fail or 2) waste a lot of time doing something you hate.

JaredPar on December 30, 2008 10:47 AM

Excellent post. I agree that programming / software engineering is a field which works for those love it.

Meraj Khattak on December 30, 2008 11:30 AM

The greatest thing about programming is a solo performance. Programming is an art. The job-thing Spolsky is talking about with his ridiculous $75K claim (you can't buy a new Mac with that money every year), is the teamwork-cubicle job that became industry standard when herding people into VB started in early 90s. At some point, somebody realized that VBfication of programming is actually a piece of junk and GoF threw out a book of songs many already knew, but many didn't, so it became a bestseller. For reference, the GoF stuff was known to programming community in mid 80s. The GoF book appeared a decade later. A true innovation.

Solo performances are indicative of most art performances. I don't know about salary, I never had one. I do what I love for those who have the do-re-mi.

BugFree on December 30, 2008 11:37 AM

Garbage collection is a field which works for those who love it.

Sheep herding is a field which works for those who love it.

Plumbing is a field which works for those who love it.

Debt collection is a field which works for those who love it.

Human resources is a field which works for those who love it.

Toll Booth collecting is a field which works for those who love it.

Prostitution is a field which works for those who love it.

Prison guard is field which works for those who love it.

Drug muleing is a field which works for those who love it.

Narcissistic blog writing is a field which works for those who love themselves.

Jake H on December 31, 2008 1:43 AM

@Jake H

Many Americans have explained here that one of the reasons they love their job is that it pays so well in America (I didn't know that). It is not all narcissism, it is not denied that money is also an issue.

Have the posts of Jeff Atwood become more or less self referential over time? I don't know, I guess I could find out by doing some statistics but frankly I don't really care.

Almost everyone wants or needs some optimism and self esteem (what ever that may be?), this includes acquiring self esteem by your job life. Those few developers who don't want or need self esteem can read Houellebecq's Extension du domaine de la lutte. Luckily there is choice on this planet.

Theo on December 31, 2008 2:39 AM

LOvE iT !!

Jesse on December 31, 2008 3:57 AM

After reading the disgruntled posts here from long time programmers and hearing so much about ageism and outsourcing, I'm thinking of leaving the industry. What is a good industry to get into where your programming skills would put you at an advantage?

A. Web design. Live where you want, work when you want :)

Dude.

I've been in the business for 25 years. I've been screwed over for more than 4 Million in unpaid royalties. I've worked for the biggest games companies in the world.

All that happens is they work you to death and then you get screwed over.

If they can't roll you for a LOT of money they don't give you the job. It's as simple as that. It's not how good at programming you are (I was among the best in the early days) It's will you hit their selfish, greedy and impossible deadlines and how easy is it to rip you off.


I have half a dozen number one selling titles under my belt and am friends with the biggest names in the industry (the older ones).

Games companies want anonymous youngsters, who will remain unknown, work on a sallary, no royalty payments, work 24 hours a day and cope with visionless Producers who are on the same money as them if not more.

A simple test:

Name a musician... any one you like.
Name a book author.
Name an Actor again any one you like...

Now. Name a video games programmer.

Obviously this test only works for prople who arn't IN the games industry. But considering the video games market makes more money than Hollywood and the music industry combined, I think its shocking that no member of the public could name a single games programmer.

Not one.

Instead of promoting programmers (the talant) they promote the business exec.

Now we interview Terry from accounts...
Tell me Terry, how did you manage to develop that fantastic game
...well er.. I sorted out the finance, got some people who think they know what they're doing (called producers) had them sit on an infinite number of monkeys and hey presto...

Sci-Fi Si on December 31, 2008 7:04 AM

I briefly considered a different career, mostly due to idiotic management that had me stuck in development hell. It had nothing to do with economic circumstances, but more with being fed up with incompetent bosses.

My actual thinking was that I enjoyed programming more when it was a hobby than when I started doing it as a career, so maybe I should turn it into a hobby once again.

Thankfully, rather than pursuing a different career, I found a better job with competent management and am quite happy. So your career might not be the problem, it might just be your current job.

Evan on December 31, 2008 7:17 AM

In France, software engineering seems to annoy the managers a lot.

We have an elite culture that basically explain that your manager knows as much as you do, and even more. He/She is always right, including when wrong (Dilbert would feel at home). And software engineering explodes this simplistic (simpleton-minded) model.

So the software engineer is expected to continue his/her career as a manager, even manager in other fields.

So, growing experienced as a software engineer is just seen like being unable to evolve, even if you prove the contrary (to avoid becoming obsolete, the engineer must always learn new technologies). So, don't expect increase of salary beyond some limit, because beyond, it is a manager salary.

And managers are always better than everyone else, aren't they ?

Daniel Glazman ( http://www.glazman.org/weblog/ ) wrote a whole blog about that:
http://disruptive-innovations.com/inFoRmatique/
(in french, sorry... the title can be translated as All the [BAD] shapes of french computing industry)

paercebal on December 31, 2008 9:48 AM

(continue...)

This explains that, even as I like computing, even as I do program at home, just for the fun of it, I wonder, sometimes, if I should either move away to other countries, or move away from an interesting career just to avoid being seen like the old geek wanabe from cubicle 13.

paercebal on December 31, 2008 9:50 AM

I spent Christmas Eve setting up servers.

Haha!! Me too!!!

Dayo on December 31, 2008 10:32 AM

Oh Yes, I Love programming and yes I was ready to do programming even I was not being paid and I did this many times. I am programming when I was just 9 year old. But now I have family and I need money. So I am really happy to be paid for my passion of programming.

Sometimes, I think, if I was not a programmer then what else can I do? Oh man, you won't believe me, I am really zero in everything else. I can't do anything else to earn good money.

BUT I LOVE PROGRAMMING. And thanks to my Boss for paying me for my passion :-)

rahzamkhan@yahoo.com on December 31, 2008 10:39 AM

If having outside interests and concerns equates to being a bad programmer, I suppose I am a bad programmer, and I would guess most other female programmers also falls into this category. I completed degrees in computer science in college because for me it was always easy and enjoyable similar to doing logic puzzles or playing scrabble. I sometimes read coding-related books and blogs, but am more interested in process and new concepts than in memorizing technical details. As a team lead, my favorite days at work are still those including an animated design debate, or pairing with a teammember to help them through a tough problem.

Yet I'm ultimately more interested in technology for the sake of human freedom and happiness than technology to fool around and create yet-another-imperfect-thingamabob, and I am potentially interested in other careers if I find one that lets me more effectively help those in extreme poverty than earning a good salary and living simply to give the rest to charity. I don't go home at night and program (well only sometimes, and only because it has practical application for my family's small business), and I don't believe coding is the only possible career for me. Instead I spend time with family and friends, I draw, I play soccer and hike, I volunteer, and I read across a variety of subjects/genres- biology, physics, math, economics, linguistics, multicultural literature and poetry, religious studies.

I don't expect to be a rock-star technologist when I don't spend every waking hour coding, but then, in my current consulting job I am already more technical than most, and it doesn't take rock-star-skills to write good-enough code for most business applications.

Also while we're on the subject, am I the only person here who knows my own code is imperfect and sometimes IS the ugly code I will refactor and improve over time as I find ways to extend and reuse it? Am I the only person who sometimes enjoys the challenge of wrapping tests around ugly legacy code and pushing/pulling it into a prettier shape? Where do you all work? because I have yet to meet a fellow-coder that can create unimpeachable code without several times collaboratively reworking it.

Ami on December 31, 2008 11:20 AM

Interesting post and comments

I would be programming even if I didn't get paid for it. We are pretty spoiled in our line of work. My friends are always envious that I enjoy my job. A lot of people go to work every day and just count the hours till they can go home. If you are a programmer and you feel this way, you shouldn't be a coder. Either that, or you just need to find a new company to work for. If you are a good coder, I don't think there is anything to fear in this economy (yet). There are still a good amount of job postings out there. Employers are just more particular having learned their lesson during the dot com.

For people complaining about the bureaucracy and the politics, that's just the way it is dude. I'm sure some places suck more than others, but there is always going to be a certain level of red tape and politics in every company. I notice a lot of genius coders often lack the people skills to deal with common work place situations. Building up your people skills can do just as much good for you as good coding skills.

@Jason - I agree with you. I am a web developer and I will admit that my programming pales in comparison to a software developer that programs at the C level. Languages for the web are often much more forgiving of bad code. As a matter of fact, you can probably blame the web for spawning so many bad coders.

redblind on December 31, 2008 12:11 PM

I don't trust programmers who haven't done some open source programming.

If you don't want to do programming for free, you have no place on my team. But we pay well anyway.

Max Howell on January 1, 2009 4:25 AM

At 9pm on December 31st I was still on my computer reading articles on error handling in stored procedures and skimming through Code Complete. My wife forced me go to the store and buy some beer and chips to celebrate new year's eve.

I don't just love to code, I think I was built for it.

Joe on January 1, 2009 5:11 AM

Great post.

I completely agree. i've worked with some terrible programmers.

These days where I work we won't employ anybody until they go through a minimum 3 hour practical test (we give them a PC, a compiler, a problem, and they have to come up with an executing solution). And the code has to be reviewed by the peers. If anybody objects or says that guys is an idiot or I can't work with him then, no hire. (I've learned something from Joel, here).

Seeing as I'm the manager, I deliberately keep out of the practical test process and evaluation.

And I've just spent my Christmas break writing a program that will soon go up as a free download for people with NAS drives who want backup. Because I bought a NAS drive and the software that came with it is utter crap.

I'll write software for free.

ashleigh on January 1, 2009 5:21 AM

I don't trust programmers who haven't done some open source programming.

Get a life nerd.

ben on January 1, 2009 9:20 AM

These days where I work we won't employ anybody until they go through a minimum 3 hour practical test (we give them a PC, a compiler, a problem, and they have to come up with an executing solution). And the code has to be reviewed by the peers. If anybody objects or says that guys is an idiot or I can't work with him then, no hire. (I've learned something from Joel, here).

LOL what a bunch of nerds.

ben on January 1, 2009 9:22 AM

From my observations, a disproportionately and noticeably high number of successful programmers have weak family/community relationships, poor health (usually in the form of obesity), and narrow social circles

Why do some people think you have to waste all of your time working extremely long hours at a job or have family/community relationships? Haven't you heard of hobbies? It is possible for a single to pursue happiness without working himself to death.

. on January 1, 2009 9:25 AM

I agree with the above poster. Just because you don't have a family or kids doesn't mean you should be expected to work extremely long hours. What rubbish.

Lance on January 1, 2009 9:28 AM

Programming is fun. Programming is satisfying. However, programming, like law or medicine, is one of those professions where you are tacitly compelled to work long hours (50+ per week) for salaried positions. If you don't then you are relegated to the sidelines, which take the form of boring projects, unprestigious organizations, lower hourly wages, censure, and (in economic times like these) unemployment.

There is no shortage of work for those willing to put in 50+ hours of work week in and week out in programming, law, or medicine. There is a shortage of work for those only willing to work regular hours because they have other preferences and obligations for their time. Few programming shops run like Fog Creek or 37 Signals in with respect to working hours.

From my observations, a disproportionately and noticeably high number of successful programmers have weak family/community relationships, poor health (usually in the form of obesity), and narrow social circles. This is bad news for those that value these things. (I am not saying that all programmers have all of these, but the number is noticeably high, and I am one of the fat ones). Putting in 12-20 hours of work a week on top of full-time hours means that you are not spending that time developing family and community relationships and your health. Furthermore, few programmers make the kind of money that would attract a mate in spite of the long hours (unlike medicine, law, or Wall Street). This does not make such programmers bad people or losers, any more than is a programmer who works regular hours (until he is laid off in a downturn) but who develops family and community relationships and keeps his health.

It comes down to personal values and choice. If you value family and community relationships and your personal health, then programming in salaried jobs is a tough and undesirable career. However, if it is your sole passion and you don't value these other things, then by all means there will never be a shortage of work.

I know doctors, lawyers and programmers who have taken a hit in their careers because they won't work more than regular full time hours, and they have consciously chosen to pursue family and community relationships and their health. They're all capable, but they are also healthy and obviously participate in family and community.

As a programmer you probably enjoy your job. As long as you are able to choose a job that balances that with your aspirations of family/community relationships and health, you will want to stay with it. However, if you are forced to choose between one or the other even though you value both, you should probably get out, or find something that would make you happier. Or you could choose the career and sacrifice the health and relationships.

For Joel, I would bet that $75k is a low wage for Manhattan given the cost of living. Also, most software folks don't invent, design, and engineer the future. They actually fix what others have invented, designed, and engineered. Still fun, but not as exciting as the former.

Jay Godse on January 1, 2009 11:56 AM

I love programming, been doing it since childhood, and took programming jobs as it made sense to get paid for it. I generally outstrip the abilities of my coworkers wherever I work, but I have for a while now wondered if choosing it as a career is what I really want.

Twelve step on January 2, 2009 4:44 AM

As someone who's loved programming since I was very young, may I ask what's wrong with a careerist gold digger? This isn't a competition for some intellectual snob award. There's stuff that needs to get done, and the theory goes that a free market will pay people more to do that work, which will encourage more people to do it. But that doesn't seem to be the way it happens. So things don't end up getting done, but you get to maintain your ego. Ironically, it's partly that misplaced pride that stops other people from getting into the field, particularly in the case of women.

If a field in high demand can't motivate a reasonably bright person to take a well-paying position right out of school, then the problem is the field, not the person.

David on January 2, 2009 5:57 AM

I dunno, I like programming because it's easy once you know where to find which piece of code. Most things you want have allready been written before you and are just waiting to be picked up.

When I work on something new, I always use the same structures I used on previous programs. Sometimes I even just copy-paste, since it's all that needs to be done.

The quote, above, from a poster is what a former boss stated as being a coder not a programmer. A coder will just toss bits and pieces of code together to make something work, and not always very well. Also, as mentioned, they tend to use the same structure for everything they do. A programmer will write the code appropriate to the job and make sure it is clean and easily readable by others.

There's nothing wrong with reusing some code but just tossing bits of code together and kind of making it work. But,a real programmer will take pride in what they do and how well it works and looks.

Greg on January 3, 2009 1:34 AM

[offtopic]

Hurgh. Nice article, but why add this patriotic picture of America? Unlike a profession - which you should love or leave - you can change a country. From within. Like ... becoming independent, abolishing slavery, shutting down certain prisons ...

[/offtopic]

Krischan on January 4, 2009 8:20 AM

Well, I am not a programmer, and I love my job. I get paid well too. I work at a National Lab :)

Kris on January 4, 2009 9:50 AM

I still look at programming as a job. I have many other interest other than programming, I love computers but programming is how I earn my living.

I would never do it for free, unless you count college :) i listen to the joker on this one... if you're good at something, never do it for free.

i know i'm not a great programmer, I'd never be able to work for apple or microsoft or google. I don't want to. I do my .NET business apps, and get paid well and i'm good to go on that.


ManiacPsycho on January 5, 2009 8:06 AM

Great article.

Aouse on January 5, 2009 12:04 PM

I like programming because it involves creativity, logic and rational thinking. It is like art.

amir on January 6, 2009 12:47 PM

I always have this welcome chat with every new programmer that joins the team I belong to, and one of the thing I tell them is this:

The ones that endure in this craft are the ones that once exhausted of coding, replenish their stamina building some more code

We always complain about tight schedules and the omnipresent asshole driven development... but to be honest I firmly believe that those bad things are precisely the spice of this business, its our version of extreme spots.

I'm not claiming that this is the best way to do things and that we should keep things the way they are, hell no! My point is that being a programmer is also being a helpless perfectionist. We are never happy with the current state of things.

Just try this exercise... try to remember how things were on your first or second job, specifically try to remember the kind of decisions you boss used to make and the face he used when he let you know that you should threw away your weekend plans because he had just promised something unreachable to someone really important. Now picture the same scene in you current job (for a lot of us that means a 15 to 20 year leap)... do you get my point know?

The current asshole is a joke when compered with the asshole when you started. This is not because asshole-ness tends to disappear in time (on the contrary), its because YOU have changed and you have altered your environment with that, the same asshole doesn't appears the same to a pimpled-mayonnaise made-trainee than to a old fanged wolf-carved in stone-hell forged-developer. And we have new toys that make things easier and on top of that, we have managed to create a really strong global front (there is always someone on Bangalore, Mexico or New Zeland willing to help you with that tricky maneuver at 3:00 am your time).

Personally I feel really lucky to be in the front line trench of the keyboard war, this is may passion.

So throw us some more blind decision making assholes, we can chew them for breakfast.

(sorry for the broken english, Im not from around)

Chepech on January 7, 2009 9:02 AM

From my observations, a disproportionately and noticeably high number of successful programmers have weak family/community relationships, poor health (usually in the form of obesity), and narrow social circles...

I suggest you to quit what you are doing (you'll probably call it a job, I call it cubicle slavery). If your job doesnt gives you the time to have a life outside the 8am-5pm period you are not living, you are merely surviving.

I run a team of 6 programmers which is part of a company that employs 5k programmers of all ages, flavors and colors. I haven't seen a overweight hermit loser in years, I know only two guys that wave weight related problems and those are caused by a glandular disieasse.

Here is my list of hobbies:

- Digital Painting.
- Basketball.
- Gym.
- Active Member of the Foundation for Reason and Science.
- Makeup bed time stories for my children (I have 2).
- I go at least 2 times a week to the movies with my wife followed by a long dinner to discuss the picture we just saw.
- World of Warcraft (I have a lvl 70 tier 5 Enhancement Orc Shaman) and I run a rapidly growing guild The Order of the Lidless Eye =) .

Did I mention I live in a 3 world country which happens to be the 2nd most obese of the world? (Mexico).

I don't think that your current state is caused by your problem or as you call it programming job.

The bottom line is... you don't need to sacrifice the really important things in life to make a solid programing career, you just need love (to endure asshole-ness) and a bit of discipline (to grow).

Chepech on January 7, 2009 10:21 AM

Well, I love coding. Love it to bits.

But I suspect that the code I write is horrible code. I don't love the *coding* so much as I love *making things with code*.

It is a big distinction to make. I love my job, (web programming) and my particular work environment means I have so much freedom (too much I bet) I can basically do implementations however I want. Which leads me into implementing very similar things in a plethora of the methods in which it can be implemented in the coding environment I use (not all methods are 'good'). In short, what I make is all over the place unreadable crap (I am being brutally honest with myself here give me a break! :).

If I were working in a team (and did the work I am doing now - I doubt I would be as unstructured if I were in a team), and my team members loved *coding*, I think *I* would be the person they would claim has no business coding, but it's not for lack of love for programming. So it isn't so much lack of love of the job/coding, but perhaps lack of *respect* for the code that I spit out in my attempt to come up with a solution for my problems.

PeterA on January 8, 2009 4:53 AM

Isn't this just about being good at your job, regardless of industry? How attentive you are, thorough and generally interested in the task you do? Most programmers out there aren't having to solve Google/Microsoft/John Carmack type problems. Of course you can be thorough and attentive but still not have the formal training or experience to know what you're doing, or to do it properly which is again not related to a particular industry.

Chris on January 9, 2009 3:41 AM

I read almost every comment so far and the impression I get is that everyone would be better of if people were capable of self-regulating and not willing to do overtime and take other BS from people.

I saved this comment from another site that seems fitting here with regards to getting respect for you and the people in the industry:

If you work slavishly then people think you are powerless and do it out of desperation, in the manner of begging. For example, if you work 12 hours it is because you believe your 8 hours is not good enough, so you have to compensate for your shit skills by working more along the lines of well I am not that productive per hour, so let me work more hours in desperate hopes that my employer will notice me and at least refrain from firing me, or at least put me in the back of the line when firing. It's a fear-based, victim, loser mentality. And funny enough, if you stop doing it, people value you more. If you kill yourself for the company, you get fired with the rest of the workaholic office flotsam.

It's the exact same dynamic that exists between men and women. Men who are desperate for women and who bend over backward to please women are despised by women. Women hate the nice guy. And the corps hate the nice employee too for the same reason.

I know this from experience. When I was nice, I got zero respect and my only reward was an ever-increasing workload and responsibility with the ever decreasing decision making power. So if something ever went wrong it was my fault, even though I had no decision making power to do it better or even just plain differently. I was a nervous wreck on hastening to take my place 6ft under with no other motivation besides fear. When I realized how pathetic that was, for me and for others around me (even for the corp itself), I changed and never looked back. I'd rather die free than be a slave

dick on January 10, 2009 5:14 AM

i do not have the patience right now to read all the comments so i apologize if it's been said by someone else.

i find myself on the other side of that same coin. i would like to be a programmer. i am a programmer. i love to program. i just can not find a decent job.
i apologize to joel tho, i will not work for no pay. i will not work under crappy conditions where i have a 19 monitor that's been in the company longer than me and the person i actually filled in for.

regardless, the situation in germany is quite different from the one in america. i don't have any formal education and therefore it's almost impossible for me to get a job as a programmer even if i could outperform their average hire by a factor of 2.

Alexander Knopf on January 11, 2009 6:56 AM

I do not agree sooo much: I started Linux for fun, but my plans were to dominate the world some day.... buaaaahhhh ah ah ah ah.

So now I am becoming a millionaire, but it was all planned from the beginning!!

Linus T.

Linus Torvalds on January 16, 2009 12:38 PM

And another thing...
I wonder how many are self-proclamed WONDERFUL programmers here, reading the answers in the blog...

everyone think to be much better than the colleagues in their company...

Linus T

Linus Torvalds on January 16, 2009 12:41 PM


I will note that the best programmers I've known have all had a
lifelong passion for what they do

Some of the worst programmers I've known have had that same passion. Some of the best I've known barely look at a computer out of working hours. Passion is neither necessary nor sufficient to become an expert programmer. It might make you a **happy** programmer, but that's not at all the same thing.

So I might be a little biased.

Indubitably.

The reasoning here sounds suspiciously like:

I have attribute A. I'm a good programmer, therefore all good programmers must have attribute A.

There are 2 major problems with that - one a flaw in logic, one a possibly dubious assumption :-)

Jim Cooper on January 19, 2009 9:55 AM

I started my programming since 1996 when I joined Kathmandu University in Nepal and my friends who were already perfect in programming taught me a lot. Currently, i am a blogger, research analyst, code reviewer, and Quality Assurance Expert.
Still I use Netbeans to keep up the programming spirits high and regularizing unit testing.

Lava Kafle on January 20, 2009 6:40 AM

I agree with you. However if you were in another Country, you might think different. You can live your life well as a developer in US, UK or in some developed country but it could be different in others.

I think we are working for 2 things: Money and Passion. In my country (Vietnam), It's quite hard to satisfy both of them if you do coding the rest of your life. Everyone wants to reach the higher position to have better salary although they could leave his/her passionate job. For instance, salary of a Project Manager often 2 times higher than a Developer's salary so who doesn't want to be a PM? :D.

Anyway, it's interesting article.

Nguyen Thoai on January 22, 2009 8:51 AM

hey --

dont behave so scholarly about the work you do.I am a programmer too and thats fine- far too many people are interested in this industry.Its the same in other industries too.Not every gets to do what he/she likes to do.Sometimes the circumstances ( the money) drag people into this profession.I am not talking about USA but there are third world countries such as China and India with some outstanding talents while others have entered through circumstances(the need to uplift for money)

I mean ,you are a great programmer.fine.Stay humble.Learn to appreciate these people.If programming is a great profession,it will evolve by itself( like the dotcom bubble).Things that go up,come down.US has had to face recession.why? why did this thing happened? but it will improve itself..so programmers are brainy.fine.but be considerate to others too.Above all,its more important to be HUMAN and not programming robots.Thats all.

John cenn on February 28, 2009 3:47 AM

If I did not program for a career I would do it as a hobby.

I believe that might be what Joel meant when he said they would do it for free.

Practicality on March 6, 2009 2:07 AM

I love programming and solving puzzles because doing so gives me the possibility of making life better for everyone alive, and especially my family and everyone I love in this world, and on top of that for giving tools to the next generation to expand upon my knowledge to do the same to greater extent, with less effort, and more time to spend not working and with family, caring for each other and doing works of charity and making sure we look after our neighbors. Yes, I love programming, but only so much as it is a means to the end described above. Besides this, it is of no purpose or enjoyment.

Martin M. Musatov on March 12, 2009 1:04 PM

Wow, gotta love the 180 from your own column here: http://www.codinghorror.com/blog/archives/000586.html

So are you your job or aren't you? Maybe you're not but everyone else is supposed to be. Buddy, when the whole world stinks, smell your upper lip.

ES on March 26, 2009 5:48 AM

Hi guys. The best of us must sometimes eat our words.
I am from Bahamas and also now am reading in English, give please true I wrote the following sentence: Airline tickets wholesaler specializing in unsold airline seats at bargain rates and last minute special fares offered by airlines.

Thank you so much for your future answers :(. Vanessa.

Vanessa on April 6, 2009 4:46 AM

But, most people in the world simply can't handle the deep dark
reaches of the computer-machine. I mean, come on, let's face it.

So, for the people reading this, start designing stuff that people
want to buy. And that stuff better be useful. Because the public
demands good software.

This comment got my attention. At the risk of sound like a know-it-all -- don't you see these 2 paragraphs contradict one another?

Not that I suggest those in the know start selling crap because customers can't tell the difference...

But do you really think the business-minded or 90% of people in general care about how the code looks? Or how beautiful it is? Or even what it really does (as opposed to what it looks like it does, or the GUI looks like) ?

Perhaps I should thank them for not caring, since it opens a niche for those who do.

But Because the public demands good software. are you kidding???
Good as opposed to great, complete, honest, efficient, consistent, clear, moral maybe...


Seems to me more like:

Moral, adj. Conforming to a local and mutable standard of right. Having the quality of general expediency.

Immoral, adj. Inexpedient. Whatever in the long run and with regard to the greater number of instances men find to be generally inexpedient comes to be considered wrong, wicked, immoral.


Someone please tell me why I'm wrong, I'd love to hear it.

I understand if there's no market for what you are coding, there is no incentive (but you can do something else to fund your hobby).

But just because there is a market for something does not make the code better. In fact, I'd argue it tends to make it worse.

At the risk of anyone following my advice ending up homeless because they followed their dreams/hobby instead of what was popular --

dear god, please don't think the code you see at work is all there is!

SJ on April 13, 2009 4:51 AM

No economic boom or downturn is going to stop 'handicapped' programmers from getting into the field. The state of the industry is that you can higher a construction worker to do programming as long as they have a couple of years of experience. So, you have flocks of people with all kinds of certificates and no formal education getting jobs that they have no business doing.

The worst thing of all is that after such despicable nonsense, we have companies that have the courage to call their programmers 'software engineers' when they ought to be sued for even attempting to use the term 'engineer'.

The industry will not change and you will still have the majority of the projects being behind schedule or never completed because you have idiots working on them. And the only way to change that is to strengthen the curriculum for computer science and finally turn programming into a certifiable engineering profession. Unfortunately we're as far away from that as we are from reaching another galaxy in the universe.

Serge Duval on July 26, 2009 10:09 AM

I fear I have become troll-feeder.

@Cook-a-doodle: the 13 colonies were united by a common ideology. America is different from many countries in that until recently a huge portion of its inhabitants were immigrants. Even now I think most inhabitants aren't much more than first or second generation. Those immigrants usually had a choice about entering the USA in the first place. They chose to go to a place where there is a certain constitution. That constitution is supposed to enshrine freedom, and one of those freedoms is that if you don't like the country you can go somewhere else. Not every country allows that for its citizens.

Getting back to the topic, the job market is reasonably free. You can do other things if you don't want to be a programmer. There is a huge range of jobs available directly related to computing.

Getting onto a theological bent though, I think it's OK to have doubts. Try other things if you want, see what life is like without programming. Maybe you will love something else more. Programming is just a life-choice and does not affect your eternity. Though as a community, coders should be welcoming and should love the prodigal.

I have to say that I don't love coding. I like it. I love my family, I love my Saviour, I love music. But I do like coding and solving puzzles. I enjoy making computers do what I tell them. I know I can do things with computers that others can't. I don't know what else I would do for a living though. On the other hand, I do want to be a better programmer. I do want to learn more about design patterns and the best way to use C#'s features. I have the design patterns book and I look it up when I need to. I have Code Complete and I am getting through it slowly. I just don't have the same drive and passion as the coding superstars.

John Ferguson on February 6, 2010 11:13 PM

I've been programming since I bought my VIC-20 in 1983.

I think that this would be a great career if you were working for yourself, doing what you love...

But if you work for a PHB at a big corp, the job can be frustrating.

Steve Sheldon on February 6, 2010 11:13 PM

To be a great software developer is to be a sharp sword -- a tool for the manipulative, deceitful courtiers. You love the sharpness of your intellect and the power of your design. But the day you differ with your master is the day she'll put you away they'll put you away to rot.

John Garrison on February 6, 2010 11:13 PM

Have you been a programmer before the Internet days? Because I'm under the impression that the majority of web programmers are lacking skills when compared to desktop ones. Probably cause they're used so much to filling their application with free code from the web, code they don't bother studying.

jason on February 6, 2010 11:13 PM

«Back | More comments»

The comments to this entry are closed.