If you haven’t yet read this thread on Joel’s Software Discussion Group and Jeff Atwood’s response to it, then please go do so. I’ll wait…

You done? Okay, well for those who didn’t read them (and that is probably most of you), I’ll quickly summarize… a guy posted Joel’s board asking about what career he could switch to from being a developer. He is clearly dismayed by the current state of affairs in the development industry and is looking for an out. While I agree with Joel that now is not the time to go switching jobs (never a good idea during a recession), I don’t agree with a lot of what Joel says. Every time I read something Joel writes I have to remind myself that he lives in the land of milk and honey. Joel is obviously a talented guy, so why does he think that programmers are spoiled?

But before I start in on Joel’s comment, let me first comment on Jeff’s post… why is it that developers who are very passionate about their jobs get so pissed off when others aren’t as passionate? This is the same mind-set that pisses me off when it comes to religion, politics, operating systems, etc… Okay, so you love your job and you just wanna hug it and kiss it and take long walks on the beach with it, well that is freaking great. Not everyone in this world is passionate about their jobs people! Do you think that every dentist out there just looooooooooves drilling teeth? Sure, there are probably a certain portion of dentists that love helping people, attend conferences about new tools and techniques, and just love everything there is about the mouth drilling arts. But reality is that most dentists go to work, drill some teeth, get a paycheck, and then go sip martinis while they stare out over their 300 acres of lush pasture. Being a dentist affords them to be passionate about something else in their life, wether it be their families, cars, art, pets, or martini sipping. But you don’t hear dentists all over the internet complaining about how they can’t believe that other dentists don’t care as much as they do about what brand their particular water pick is. How could they possibly be using Oral-B’s water pick when Colgate’s is so superior!!!?? Freakin’ idiots.

Get over yourselves. In most careers (and I say careers and not jobs on purpose) there is always going to be a small percentage of people who are going to be very passionate about what they do. And guess what, they are going to have an advantage above everyone else. If every single person in your career was as passionate as you are, then you might just be mopping the floor right now. We can’t have development shops full of alpha geeks, nothing would ever get done because no one would ever be able to decide how to do anything. Most alpha geeks have very strong opinions on everything, and they can’t freaking stand it when someone else doesn’t have an opinion…unless it is different than theirs. In their conscious mind they want other people to be just as passionate as they are, but as soon as someone disagrees, stand back cause sparks are going to fly.

But back to my point… not everyone is passionate about their job. And honestly, we shouldn’t expect everyone to be. There just aren’t enough people in the world to find a passionate person to perform every single task. And I’m not saying that grossly incompetent people shouldn’t leave the software industry, but I have known plenty of good developers who want to leave work and not think about programming until the next day. Jeff also says that the silver lining on the dot-com bust and the current economic downturn is that it weeds those people out who don’t truly love software development. Well, I think that it might weed out those people that are bad at programming, but I’m not sure that it will weed out those who don’t love it. It is possible that these two sets overlap to a good degree, but again, I’ve known plenty of good developers who don’t do a thing involving computers in their free time. And before you say that they can’t possibly be good if they don’t program in their free time, then try and remember that if you are spending 45 hours a week writing software at work, how much free time each week are you going to have to devote to writing software? 5 hours? 10 hours? No matter how much time you put it, it is likely dwarfed by the amount of time that you spend perfecting your craft while being paid for it.

So to say that people who don’t love programming need to find new careers, well, that is just silly. At the same time though, to say that you should continue to be a programmer if you don’t like it is all about whether or not you can make money doing the other things that you are passionate about. And if you aren’t passionate about anything, then god help you because you are in for a long and boring ride.

But just because someone doesn’t love programming, does that make them spoiled? Well, to say that they are spoiled is to assert that they have been given something that they don’t deserve. When someone has a child and they work hard to get paid an allowance and then they go out and buy something nice for themselves, do we call them spoiled? No, of course not, they earned that. The spoiled kids are the ones that mommy and daddy buy everything for, and yet they have no appreciation or respect for any of it.

And yep, we make good salaries, but do we really get treated better than people in other jobs? Well, I might get treated better than someone in a coal mine, but I’ve never worked in an office where developers are treated any differently from any other office worker. The only people that I have ever seen treated better than others are really passionate about their work, and they quite frankly worked hard to get where they are. In most companies I wouldn’t say that developers are pampered any more than any other profession. But what about the salaries? Well, I make less than a surgeon, but do I think that surgeons are spoiled? No, they made their career choice. When I was in high school I was well aware that doctors and lawyers made tons of money, but I was interested in software. We all made those choices.

So is programming a fantastic career? That all depends, can you sit in front of a computer typing on a keyboard for 7+ hours per day? Sometimes a lot longer? Some people I know would think that is hell on earth for any amount of pay, free snacks, or foosball tables (and I, for one, have never worked for a company that had foosball tables). Personally though, I absolutely love it and wouldn’t want to do anything else. I cringe at the though of one day being promoted into management. I love writing code and digging into complex problems. Sometimes I am up late at night programming away on something that I will toss aside a week later for some other piece of shiny code. And I love it. But do I expect all of my coworkers to do the same thing? Nope.

And yes, I get paid well, and I get treated well, and I probably have it better than 99% of people out there. Am I thankful for that? I absolutely am every single day. I realize how awesome it is to love what I do, but I didn’t just fall into it. I wasn’t just handed it. And every single day isn’t gumdrops. I think I worked pretty hard to get where I am. Am I spoiled? I wouldn’t say so. Okay, maybe a tiny bit. But when it really comes down to it, do I know any developers who are very successful and don’t pour their heart and soul into their work?

Absolutely not.