Nick Mudge Ignition Software Consulting & Development

It seems like I've read a lot about the question "How do you know if someone is a good programmer or not?" And I've been surprised by the answers. I've read good programmers saying that they can't really tell if other potential programming candidates are good or not. I've read about the puzzle and algorithm type questions Google or Microsoft might give.

Maybe I am naive, I've never had to hire a programmer, but it sounds kind of easy to me. If you know programming and know good programmers, can't you tell if someone else knows programming and is anything like a good programmer?

If I were looking at hiring someone I would get the candidate talking about programming. I don't think it matters that much what the candidate talks about, just get him talking about it and his experiences. In discussing programming does the candidate talk about specific things and examples that demonstrate understanding of practical programming techniques or ideas? Or does he just use buzz words without relation to actual programming? Does it seem like the other programmers in the company will get along with this person? Are his interests in programming a good match for what you want to hire him for? I would also ask the candidate to send me some code he wrote that he is proud of and look it over.

I was prompted to write this post from what Bendan Eich had to say about hiring and recognizing programming talent in the book Coders at Work. I really liked what Bendan had to say about the subject. He's the kind of guy I'd want interviewing me for a job.

Comments

Antoine Latter
2 November 2009

You selection criteria is heavily biased towards candidates which are skilled at interviewing for programming positions. The best-case outcome is that you reject people who are good at development, but lack the soft-skills to convince you of that.

The worse-case outcome is that there's no correlation between interviewing skill and development skill. I'm fond of saying "You get what you measure."
Nick Mudge
2 November 2009

I did mention having the candidate show some of the code he/she is proud of.

I think my criteria is biased towards candidates that are good at communicating in general and have an interest in programming.

I think a trait of being a good programmer is being able to communicate well. After all, programming is nothing but written communication to the computer and other programmers.

And I think being able to communicate to other programmers through code or otherwise is harder and more important than just getting code to execute.
Andy
3 November 2009

> I would also ask the candidate to send me some code
> he wrote that he is proud of and look it over.

I'd rather ask him for some his bad, but tolerable production code and explain the compromises in it. Code a programmer is proud of is rarely production code written in tight schedule. Excuses for imperfections in code are important source of knowledge. Also, better programmers tend to write better programs when in a hurry. For example, a guy with deep knowledge of folds and similar operations in Haskell would hardly use recursion everywhere instead of ready-made library primitives, even when in a hurry.
Ilya Launitz
7 January 2010

Andy needs to work on his English skills. It is hard to comprehend what he is saying.
Name: (required)
Email: (required)
Website:
What has four legs, rhymes with bat and says, "Meow?" (One word answer.)
Spam Filter: