Done?
OK, so now you have lots of ideas about how to hire programmers. Phone screens, certifications, education, code tests, estimating skills, riddles, blah blah blah. I'm going to focus on one element in particular that I think is the best predictor of a new hire's success: attitude. Not to be confused with aptitude. Yes, aptitude does matter too. You need a decent feel for the candidate's skill set relative to the role you are hiring for. But I submit to you, dear reader, that aptitude will ultimately count for less than attitude in determining your new hire's success or ultimate failure at your firm.
I've seen this more than once: brilliant guys or gals that can't play nice with others or don't "fit" with the team. That's one type of attitude issue that will sabotage your new hire and potentially cripple your team's productivity. Certainly those with poor communication and / or people skills will have a hard time of it and may ultimately wash out. However, what I'm talking about is a different kind of attitude.
Here's what I look for when I interview programmers. I want people that want the job. I want people that want to learn and grow. I want people with a thirst for continuing growth and knowledge. I want the kind of programmer that noodles around with code for fun on their own time (and can prove it - show me a program or portfolio). I want programmers that truly like to program.
Comparing a good attitude to a good aptitude: I can teach you programming. I can teach you skills and languages and systems and processes. I can teach you the difference between an INNER join and an OUTER join. I can get you training for skills that you are lacking. What I can't teach you is a good attitude. Everything else being equal, I'll take a gal with good attitude and a thirst for knowledge and growth over a more skilled but less enthusiastic counterpart any day of the week.
So how can you interview for the attitude you want? Ask a lot of questions. Have a conversation about the candidates favorite or most recent project that they did for fun. It can be tough to try to figure out what makes a person tick in a brief thirty or sixty minute interview. Now that you know what to be on the lookout for, you're tuned in. Knowing is half the battle. I don't have a silver bullet for this, you'll have to figure out what works for you.
Follow this advice and you will build successful teams of motivated people that get things done. Because, in the end, that's what we all want: to get things done. Motivated people with good attitudes will get more done than unmotivated people every day, all day.
I'm a fan of Jeff Atwood's Coding Horror blog. I think he's probably written the definitive article on hiring programmers (although I might say that following all 6 steps might make for an arduous process). I especially like the idea of asking potential hires a FizzBuzz question. But take my advice on the attitude piece and add it to Jeff's thoughts about hiring for cultural fit.
Thanks for reading.
Shameless plug:
I have spent the past thirteen years writing code and managing teams of software engineers in the financial services industry. To learn more, look me up on LinkedIn.


Terrific post - couldn't agree more about the importance of prioritizing attitude over aptitude for programming roles.
ReplyDeleteOne dimension of attitude that may be worth examining: the programmer's sense of ownership (or lack thereof) for code that's been completed and deployed to production. Does the programmer retain a sense of ownership for their product once they've moved on to other projects, by providing high-level support or expertise to the operators and/or users? Or do they completely wash their hands and disengage once the code moves on? Depending on the size, culture and processes of your Firm or environment, this aspect of attitude could be critical...