Looking For Another Ninja – What Makes a Good Programmer?
What Makes a Good Programmer?
This is a very important question for any new company looking for potential new recruits in today’s competitive job market. I’ve been quite vocal in the past about what I consider to be a good programmer and my core checklist hasn’t changed much since joining this l33t group of ninjas.
How to recognize a good programmer, posted by Daniel on inter-sections.net offers some interesting positive and negative indicators for recognizing a good programmer. While we don’t agree with everything on this list (some of us didn’t discover programming until later in our careers as an example), we do believe in the spirit of this article: good developers are passionate people who are engaged, love what they do, have a desire to learn and are dedicated to this field.
I find that it’s often the non technical questions that reveal more about a potential recruit than anything else. That’s not to say that expertise is not important, but it’s ONE of the many things to consider.
Daniel summarizes it really well:
Positive indicators:
- Passionate about technology
- Will talk your ear off on a technical subject if encouraged
- Learns new technologies on his/her own
- Opinionated about which technologies are better for various usages
- Very uncomfortable about the idea of working with a technology he doesn’t believe to be right
- Knowledge of a large variety of unrelated technologies (may not be on CV)
Negative indicators:
- Programming is a day job
- Happy to work with whatever technology you’ve picked, all technologies are good
- All programming experience is on the CV
If you’re a developer yourself, or are someone trying to find the right balance between technical questions and business related questions, this is where I would start. We are a very close knit group of people and are actively looking for someone to join our team, if you’re interested in talking to one of us, we’d love to hear from you.
Feedback is always welcome, whether you agree with this list or not.
Apr 03, 2009
100% agree on the list of positive and negative indicators. When I had an opportunity to interview potential engineers, the one question I got the most out of was “If you had enough money that you didn’t have to work, what would you do with your days?”
It should go without saying that a great developer would honestly answer that they’d be programming. I know I would – every day.
This is one of those questions which is easy to fake if you know what the interviewer wants to hear, but the followup question must be, “Oh really, you’d be programming. What would you work on?” And this gets to the point of the Icebergs and personal projects listed above.
I actually heard candidates respond that they’d really like to move into project management and direct others. This is a huge red-flag that they’re not into it and you’re going to end up having to replace them.
– Jim R. Wilson (jimbojw)
Apr 03, 2009
If I had enough money that I didn’t have to work:
- I will build a handful of VMs with different versions of SQL Server, and crash all of them, and then do DR. That will be a high.
- I will buy tons of SQL Server tools and give them away for free!
- I will be watching lots of anime and Japanese shows
- I will fly to Japan to get fresh Japanese green tea.
Apr 03, 2009
Most of it is spot-on, although the “clearly smart” criterion is too nonspecific for my tastes. There’s also a caution about the “starting programming in university”, as I know of a few people (good programmers all) that got interested in programming at univ or even after.
I really agree with the “large variety of unrelated technologies” – even if it is not really programming (maybe VMs, maybe databases, etc), as you know they are passionate about the tech field.
Apr 03, 2009
@Plainswalker – I totally agree with your “starting programming in university” caution; there are several passionate and capable developers out there who discovered development later in life. We use most of this as a guide, and there will definitely be exceptions here and there, but for the most part, we find it to be a pretty good measure.
@Jim – You’re bang on Jim, that terrifies us also. Anyone who tells me that they eventually want to get into management makes me go ‘huh’?
Apr 03, 2009
If I had enough money that I didn’t have to work:
- I’ll learn Smalltalk and LISPto program every day;
- I’ll go to Japan to live
@belle: our dreams are related ^_^
Apr 03, 2009
[...] anyone is interested, Black Ninja posted a relevant article on what we consider to be a good developer. The article in reference is actually written by Daniel [...]
Apr 07, 2009
I think the list above is a great list for a company that normally takes advantages of its employees. I feel as if I’ve already met you just from reading your list. Would you like sugar with that coffee sir? I believe any person dedicated and passionate about whatever they want to achieve, can be a success. The two most fundamental questions to ask any potential employee are. 1. Do you listen? 2. Are you willing to be taught? I’m glad you posted your list of questions so that young potentially creative programmers will come my way. Thanks
Apr 08, 2009
@gibby – I think you’ve completely missed the point of this post. Being a good listener and a willingness to be taught are both great questions, and don’t necessarily have to clash with the list above.
We are a passionate, dedicated group of people that love coming to work everyday. We look for those same qualities when interviewing any potential candidates because it makes us more successful as a team. It’s a loose guide and is only meant to articulate that we want people who are engaged, love what they to, have a desire to learn, and want to better themselves each and every day. We’re not looking for clock punchers.
I’ve updated the list above to reflect the qualities that are most important to us.