Hiring good people is an enormously difficult task. The task is further complicated when interviewing technical talent, as you may not be knowledgeable of all the factors that go into writing good code. On top of that, there are so many factors that go into assessing an individual that go far beyond recognizing skills, experience and education. What makes someone a good fit for a role is seldom seen in a resume; the intangibles are what truly set candidates apart.
“Finding good programmers is hard because good programming is dependent on much more than just knowledge of programming language syntax,” writes President of Artima, Inc., Bill Venners, in his article How to Interview a Programmer. “You need someone who is creative enough to find innovative solutions to problems, yet anal retentive enough to always line up their curly braces. You need someone who is humble enough to be open to suggestions for improvement, but arrogant enough to stand firm and provide leadership when they are the best person to provide it.”
How is it possible to ascertain so much about a person you’ve just met? What questions could you possibly ask to get a sense not only of their technical knowledge, but of their professionalism and passion as well? Well, there’s no definitive answer. Interviewing is more an art than a science. Thankfully, there is useful wisdom to be gleaned from experienced interviewers and developers.
Follow these 6 tips for interviewing programmers to make the task of hiring talented people a little less daunting:
1. Get them talking
Before you dive in, you’ll want to get to know the interviewee’s background. Getting a sense of the way they work and how they interact with others is just as important as gauging their technical prowess.
Try asking questions like:
- Can you tell me a little bit about yourself?
- What interests you about this position?
- Why do you like programming?
- What hours do you prefer to work?
- What kind of culture are you looking to join?
- What are your ultimate career goals?
- How do you engage with a team? Do you prefer to work in large teams or small ones?
2. Ask them about something they are passionate about
If someone is truly passionate about something, it stands to reason that they know a whole lot about it. Ask them what technologies or programming languages they are passionate about. Don’t attempt to guess -- ask them directly. If you are interviewing them for a mobile developer role, for example, they may be passionate about hybrid mobile apps. Let them talk at length about what they’re currently reading about them, how they implement them and ways hybrid mobile app development could be improved. It doesn’t really matter if they meander -- you simply need to see just how passionate they are.
3. Don’t ask obscure questions to try to stump them, especially on the first call
This is a common mistake in technical interviews. Sure, it’s fine to screen candidates with some softball questions, but don’t try to pull a fast one on them right out of the gate. Remember that you are trying to attract top talent, and asking unanswerable questions may leave a bad taste in their mouth. Challenging questions are best left for later down the line, when the interviewee has a better understanding of the role, and you have a better sense of the interviewee’s personality.
4. Offer them to critique something
Instead of committing to a stiff and unnatural round of Q&A, try offering the candidate the opportunity to critique a technology or even a piece of code. This will give you a better sense of his or her personality. It encourages a natural dialogue between you as well, even if you don’t completely understand the minute technical details.
5. Request to see their completed projects
After getting to know the candidate a bit, request to see some of their projects. They may direct you to their Github profile or a published application they’ve built. Either way, you’ll be able to see how dedicated they are to crafting quality code. Their portfolio will clearly showcase their technical talent, or lack thereof, even if you yourself can’t read a line of code.
6. Administer a technical test in person
If you’re still unsure about your candidate’s technical abilities, administer a technical test, but be sure to do it in person. Doing a test over the phone is awkward, and may not give you the most accurate picture of the candidate’s skills. If you’re feeling overwhelmed, invite a technical expert to help administer and assess the test.
Hiring programmers is a tough job, but not an impossible one. Follow the 6 tips listed above, talk to talented programmers you know to gain more insight and, most importantly, trust your instincts. If you invest the proper time, energy and care into hiring top programmers, you’ll be sure to find success -- it’ll only require a bit of patience.