The Moderately Enthusiastic Programmer

I feel like I’m practically the poster child for the “passionate programmer”. I code for fun, always have. I’m like the stereotype of the guy who’d be programming even if it didn’t pay. I play with new programming languages for the sheer hell of it. I write and speak about the joy of coding, and try my best to pass that joy along to others as best I can.

And yet… I find myself increasingly uncomfortable with the rhetoric of passion in programming.

Searching for “passionate” on the 37signals job board currently returns 11 out of 46 total listings for programmers. “Passionate about technology”. “Passionate about product development”. “Passionate developer”. “Passionate team”.

Looking up “passion” in the dictionary, the first definition I see is:

strong and barely controllable emotion.

And a large segment of the population associates the term “passion” with a man going to his death for the sake of something he believed in.

I love code. I dream of code. I enjoy code. I find writing high quality code deeply satisfying. I feel the same way about helping others write code they can feel proud of.

But do I feel “strong and barely controllable emotion” about code? Honestly? No.

I feel that way about my kids, certainly. I feel it about many of the tragedies and grave injustices that happen in the world, too. But code? I can’t truthfully compare the way I feel about software to the way I feel about my 1 year old daughter. They aren’t even in the same category.

I think some of the people writing these job ads are well-meaning. Maybe most of them. I think when they write “passionate” they mean “motivated”. No slackers. No one who is a drag on the team.

But sometimes I worry that it’s code for we want to exploit your lack of boundaries. Maybe it’s fanciful on my part, but there’s a faintly Orwellian whiff to the language of these job ads: excuse me comrade, I couldn’t help noticing that man over there is not writing his joining-the-team blog post with sincere revolutionary conviction.

In some ways this is just a microcosm of the job market as a whole. We’ve all read the advice for job seekers. A custom cover letter for every application! “I feel I would be perfect for the job of ________, despite having never heard of such a thing until this moment…

But still, I feel like there is a peculiar emphasis on passion when it comes to software jobs.

I have the great fortune of not needing a job right now. But when I look at job adverts demanding “passion” I get a little involuntary shiver. I remember needing a job. These are the kinds of job ads I’d be looking at, if I needed one again. And that makes me feel threatened, because they are looking for something I’m not sure I can give them. And if I were looking for a job right now, I’d feel pressured to fake it. Either I’d feel like an impostor, or I’d feel resentment for trying to boost my emotional commitment to a coding project to an unrealistic fever-pitch.

“Sounds like you’re just getting old, Avdi!” Except I don’t think I’ve ever felt that way about code. There’s programming—my vocation, my hobby, my ongoing obsession. And then there are the really important things in life. I’ve always felt that way.

Can I honestly call myself a “passionate programmer”? I don’t think so. “Enthusiast” seems more appropriate.

Am I just quibbling over words? Maybe. But programmers know that what we call things matters.

I worry about what the expectations these demands of “passion” are setting up. If I don’t treat the code like a lover, if I fail to put it ahead of friends and family, if I don’t hurl myself into the task like a soldier charging a machine-gun nest, am I failing to give the team my “100%”? Am I letting them down?

Even more problematic to me is the idea of being passionate about a product. I care about doing good work, certainly. I take great personal and professional pride in it. But am I really expected to be passionate about something I’ve been hired to help build? Do we fire members of construction crews if they don’t show a strong enough emotional attachment to the office complex they are building? Do we even fire architects for that offense?

I’m tremendously lucky to get to share the joy of writing code for a living. But nothing lasts forever. Maybe the programming screencast market will dry up someday. Maybe I’ll just get tired of it after a few thousand more episodes.

There is a part of me that is genuinely fearful of the effect on my future hire-ability, when I admit the following: no, I will not be passionate about your product. I will be professional about it. I may even be excited about it, if it happens to be something that I think is neat-o cool. I may have a ton of fun building it. But that doesn’t really matter. You’re not hiring a Juliet to your project’s Romeo. In the final analysis, you’re exchanging goods for services.

I’m an enthusiastic and conscientious programmer. I really hope that’s enough.

(P.S. to head off the inevitable question: no, this is not a swipe at Chad Fowler’s book The Passionate Programmer. If anything, Chad is a vocal proponent of a balanced approach to software projects)

UPDATE: This video sums it up pretty well:

UPDATE 2: I’ve posted a lengthy followup, addressing some common objections and examining the root causes of the passion focus.