ZDNet UK


Skip to Main Content

ZDNet.co.uk - Winner of Best Business Website 2007
  1. Home
  2. News
  3. Blogs
  4. Reviews
  5. Prices
  6. Resources
  7. Community
  8. My ZDNet

 

ZDNet UK RSS Feeds


IT Jobs

Application development Toolkit

Ten traits to look for when hiring a programmer

Justin James

Published: 14 Mar 2008 17:06 GMT

  • Email
  • Trackback
  • Clip Link
  • Print friendly
  • Post Comment
Ten traits to look for when hiring a programmer

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
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

Read more +

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...

Next

Previous

1 2


  • Email
  • Trackback
  • Clip Link
  • Print friendly Print with HP

Did you find this article useful?
94 out of 98 people found this useful


Company/Topic Alerts

Create a new alert from the list below:





Discussions

Moley Moley

Wet ....

Tuesday 13 May 2008, 9:10 PM

1 comment
chrishocking chrishocking

Windows Driver Updates

Tuesday 13 May 2008, 3:58 PM

1 comment

Featured Talkback

The fact is: Software developers today are really designers and not coders. The reason that business anlaysts exist today to model solutions is because they understand the value of designing software before writing it. All too often developers create code that has little value because they do not understand that business classes interact with other classes within the confines of a working model or pattern.

By: 1000165269

Read full story:
Making sense of agile modelling