We’ve all seen the ads: “Must be passionate about coding.” “We’re passionate about our craft.” “Why are you passionate about applying to this job?”
What does it mean to be passionate about programming? And is it really desirable?
I picture a wild-eyed young man, untamed hair falling over his eyes, sweat-drops flying as he flails at the keyboard, face bearing a look of grim concentration like an overdramatic pianist. In a split second he reacts. “What do you MEAN undefined reference?!” he shouts, spittle dotting the screen. “It’s defined right there! It’s defined. Right. There!”
I also picture some of the more dogmatic, argumentative types I’ve worked with; those who will spend an hour reformatting someone else’s code to use the “right” type of indentation.
To give the advertisers the benefit of the doubt, those are probably not the types of passion they mean. A quick scan of the dictionary reveals 12 separate definitions, so it’s understandable that there would be some difference of opinion of what a passionate programmer looks like. We can safely eliminate all of the sexual meanings, because that would be just weird. And we can remove those meanings that refer to suffering or dying on a cross, unless you work for Amazon.
And I don’t think they mean “violent anger.”
That leaves us with “a strong or extravagant fondness, enthusiasm, or desire for anything.” Okay, sure, we want someone who is fond of programming, someone who is enthusiastic. I’ll buy that. That’s true in most professions; we don’t want Eeyore showing up to work. I would cross out the word “extravagant” though. That’s a bit much. It takes away from the methodical, diligent nature of a good worker. An extravagant programmer hacks away on a problem over the weekend rather than taking the time to plan a sound architecture.
But to give even more benefit of the doubt, let’s forget the dictionary, as we know computer people like to overload terminology. Let’s consult Stack Overflow. What do our question-answering friends say passion looks like?
The first answer centers around enthusiasm. We’re on the right track!
All you have to do is ask him to tell you about one of the projects he’s worked on that he most enjoyed. You’ll find out more about his enthusiasm in the following 60 seconds than you ever could showing him photographs of deceased notables.
Not much else there though. Let’s continue down the page.
There are several answers centered around programming outside of work hours. That’s a topic best saved for a whole other post, but in my opinion whether someone spends his or her free time programming is irrelevant to whether they will be a good member of a team. Hobby programming requires much less discipline, organization, and communication. It can even lead to bad habits of “cowboy coding.” Besides, many people have outside commitments and interests that preclude extracurricular development.
So much for Stack Overflow.
So where does that leave us? Does passion make a better programmer?
If we interpret it as “enthusiasm,” then the answer is yes, of course. However, there are other equally important personality traits I would look for:
- A strong work ethic
- Ability to communicate well
Steve McConnell says in Code Complete: “By all means, get excited about programming. But excitement is no substitute for competency. Remember which is more important.”
Trendy buzzwords come and go. But in the end the qualities of a good worker are fairly steady through the years and industries. As part of a complete package passion can fit in nicely, but only if carefully defined.