It’s an important question for team leaders and recruiters alike. How can we tell if a programmer is good? Is the number of years on his resume enough? Are his Open Source projects an indicator?
Different people will have different parameters of judging who’s good and who’s not. I came across this beautiful passage in the book Coders at Work, which is an excerpt from the interview of Joe Armstrong, creator of the super-powerful Erlang language:
Seibel: What makes a good programmer? If you are hiring programmers — what do you look for?
Armstrong: Choice of problem, I think. Are you driven by the problems or by the solutions? I tend to favor the people who say, “I’ve got this really interesting problem.” Then you ask, “What was the most fun project you ever wrote; show me the code for this stuff. How would you solve this problem?” I’m not so hung up on what they know about language X or Y. From what I’ve seen of programmers, they’re either good at all languages or good at none. The guy who’s a good C programmer will be good at Erlang — it’s an incredibly good predictor. I have seen exceptions to that but the mental skills necessary to be good at one language seem to convert to other languages.
A good programmer will be good in all languages; a bad one will be good at none. I think there’s no better way to express it!