Ten traits to look for when hiring a programmer
Published: 14 Mar 2008 17:06 GMT
Programmers come with a wide range of skill sets, hail from many countries and cultures and can have differing backgrounds and experiences. Nevertheless, certain qualities can mean the difference between a great programmer and someone who's not so great. Here are 10 things to look for when hiring a programmer.
1. Curiosity
Great programmers never accept things "as is"; they need to poke deep inside something, even when it appears to be working fine, to learn more. This is how many problems are solved before they are problems, and it's usually the quickest way to fix acute issues. A programmer without this mentality will usually end up lacking the knowledge underlying why they are doing what they are doing, which means they're working with blinkers on. Unless candidates are very shy, their curiosity, if they have it, will show strongly during interviews.
2. Clear thinking skills
It may sound obvious, but programming is an exercise in logic. People who can add two and two to get four are common, but people who can take "2 + x = 4" and figure out that "x" is equal to 2 are much less common.
This is why I have always preferred programmers with strong maths or science backgrounds. It makes them a bit better at programming but, more importantly, it generally indicates good logic skills. When I discuss the job, I sometimes leave blanks in what I'm saying to see if the candidate can fill them in. In addition, if your hiring process includes formal testing, that's a good time to test logic skills.
3. Top-flight reading speed and comprehension
Another "duh" when it comes to programmer productivity is that most of their work is not the typing of the code. A significant portion of a programmer's day is spent reading, whether it be other people's code, websites with examples, documentation or project specs.
Programmers who read slowly or, worse, don't understand what they're reading, will be inefficient at best and dangerous at worst. You probably don't want someone on your staff who misreads the spec and spends three weeks doing the wrong thing; that's just embarrassing when you need to explain the delay to the project sponsors. It's really hard to gauge reading skills during the hiring process unless you use a formal testing process.
Read this
Feature: Ten reasons to rethink your career as a developer
Software development is an attractive career proposition for many — but not everyone is cut out for the job
4. Attention to detail
Attention to detail is a close cousin to curiosity. A programmer who pays attention to detail will tend to be significantly more productive than one who doesn't. It is, unfortunately, extremely difficult to measure this quality during the hiring process. Still, sometimes things happen during the hiring process that show that a candidate has this trait. Maybe it's a casual remark or just a minor incident that occurs during the interview.
For example, I once had an interviewee casually compliment me on my shirt and mention that he was a fan of that designer; that spoke volumes about his attention to detail. Of course, a severe lack of attention to detail can sometimes be obvious too; the candidate who walks in with trousers unbuttoned or toilet paper stuck to a shoe is clearly not paying attention to detail!
5. Quick learner outside programming
Unless your company develops programming tools, such as compilers and IDEs, your programmers are working with projects outside the realm of programming. Just as journalists need to understand a little bit about the subjects of their stories and good teachers need a working knowledge of the field they're teaching, good programmers are able to learn about the environment their software will work within. Of course, you don't need a CPA with a computer-science degree to work on your accounting software, but a programmer who can't understand the basics of the maths and business rules involved is going to be a liability.
I take candidates I'm seriously considering on a tour of the facility and provide a brief, simple, jargon-free overview of the company and how it works. Candidates who ask pointed questions that show they understand what I'm talking about, or who otherwise show comprehension, get extra credit in the overall hiring decision.
6. Self-learning skills
It's rare for a programming shop to have the budget and time to provide training to its programmers. This is unfortunate, but it's a business reality. The result is that most programmers self-teach their skill sets (ideally with a mentor handy) once their formal schooling is over. Programmers who are good at self-learning are going to be better at programming.
During the interview process, I like to ask questions such as: "How did you learn to do that?", when the candidate talks about something difficult; or: "How do you get new skills?"; and: "Do you read any programming-related books, magazines, websites, blogs, etc?". Candidates who aren't just capable but who are eager to teach themselves new programming skills...
Full Talkback thread
2 comments







