I'm thinking about this, since I'm one of these people who roll their eyes when employers seek "passionate programmers."

What got me into programming must've been passion, but perhaps not passion for programming. Passion for learning new things. Passion for learning to solve problems (quite different from "solving" the same boring nonproblems over and over again!). Passion for the liberating feeling of being able to help oneself, build things for oneself, to create for oneself. Passion to be good at it, whatever it is that one does. Passion to figure out how to build that garden shed, then a motorcycle, then a F1 car, a nuclear reactor... There's probably more.

So there is a lot of passion in me. But it isn't passion for programming per se. That is to say, it would be very difficult for me to pretend to be passionate about assembling garden sheds or cars for somebody else all day long, every day. I could do it, and no doubt I could be very good at it. But, no passion for it.

Just like cooking. Yeah, I love to learn new recipes and try new stuff -- you could even say I'm passionate about it. And just like in programming, the reward is there at the end: something for oneself. But that doesn't mean I have a passion for flipping burgers every day, just as I probably don't have any passion for the average software company's crud product. (I have nothing against burgers, by the way.)

This is an anecdote, but it looks like a lot of the so-called passion w.r.t. software or programming is just, well, being excited about something new and exciting. For something to be new for you, you have to be inexperienced with it. That is to say, being passionate about some software (that you didn't make and aren't a part of) is a sign of inexperience. A bit like buying into some hype, or fad, and thinking it's the coolest thing ever, well, at least until you get bored of it, or the novelty just wears off.

As a concrete example, yesterday I saw the blog of someone I've been chatting with. On the blog, he tells a bit about himself: he's passionate about Linux. He's not a Linux kernel developer or anything like that, so I asked what he meant by that. Response? "Oh, that was two years ago. I didn't know about any other open source OS back then."

You could replace Linux with some programming language or framework or whatever, and you see a lot of comparatively inexperienced developers who seem to be passionate about it. But once you've seen a few dozen programming languages and about as many frameworks over the coures of 20 years, there probably isn't so much new and exciting in them. So have these more experienced devs simply lost their passion? No, it just really wasn't passion for the language/framework/whatever to begin with.

(And yes I'm aware this isn't always the case; I know there are people who have real, lasting passion for some concrete thing. For example, if the blogger I mentioned above were a long time Linux kernel developer, I wouldn't question his passion for Linux at all.)

What all this means is that if you'd asked me when I was 17, I probably would've said yes, I'm passionate about programming. Because I was inexperienced and there was so much new and exciting to discover.

But now, I can't claim to be passionate about programming. And a lot of people would seem to think that makes me a bad programmer, or "mediocre" at best. I wonder if I were a better coder at 17?

The other thing that bothers me is people who think you won't do your job well unless you're passionate about it. That's just bullshit. I would say a large proportion of people take pride in doing their best, even if they hate what they do.