This post was updated in November 2017 with new information.
Put simply, problem-solving questions allow the candidate to solve a problem they have not seen before. Smart people will be able to solve these problems and, therefore, produce good work. They can adapt to changes within the company and their role – something that most companies look for in a technical employee.
However, there are some issues with problem-solving questions that you should address for successful developer interviews. There are few false positives (meaning only qualified people pass), but there are lots of false negatives (meaning lots of qualified people may fail). This can be due to a variety of reasons, including knowledge gaps or an intimidated/nervous candidate. Let’s take a look at how to avoid these mistakes and properly ask problem-solving interview questions to your developer candidates.
By now, we know that most developers coming in to apply for a role at your company don’t have the traditional computer science education. In fact, 90% of developers we surveyed said that they are at least somewhat self-taught. Some candidates may lack the fundamental computer science knowledge that is taught in those traditional college degree programs, but is that knowledge really what you are looking for in a candidate? By asking that obscure question that addresses something from a junior year course are you able to find out the candidate’s ability to solve problems? Likely the answer is no.
Decide what your organization and engineering team value in a candidate. For example, are problem-solving skills a top priority? What special skills does the candidate need to have (and what skills would be “nice” to have)?
From there, you can eliminate which questions aren’t working and instead what you can ask. It’s always helpful to ask your interviewees their opinions as well (perhaps in a post-interview candidate experience survey).
Developer interviews are not meant to be scary or intimidating – this is likely to make your candidate perform poorly or even drop out of the interview process. It’s important for interviewers to be properly trained on how to word and ask questions in a way that is not confrontational, intimidating or rude. An easy way to do this is to create problem-solving interview questions that require only basic computer science knowledge, and instead give the candidate an opportunity to provide their insight with a logical path.
Old-school interviewers still rely heavily on the standard, well-known questions that every developer hates. Instead of asking these easy and typical questions, be more specific. In place of “What is your greatest weakness?”, ask something like “What aspect of web development do you feel weakest in? How do you plan on tackling this?”
Brainteasers are also another type of interview question to avoid. 28% of developers we surveyed said they wanted to hear fewer brainteasers in the technical interview process. Many feel that they are useless and only evaluate whether the candidate has heard the question before (or even Googled the answer ahead of time in anticipation).