During the Job Interview Challenge Series we are running here at, we usually get some comments from readers who think that the quality of a specific question is not good. Here are some of those comments:

  1. I hate interview questions like this, as it’s just a race to see who gets the a-ha moment first“.
  2. “This is not a good interview question. What does it tell you about someone’s engineering ability? Little. It’s a brain-teaser; either you get it or you don’t”.
  3. Really enjoying the problems so far but I’m a little disappointed with this one. I prefer ‘thinking’ problems to ‘research’ ones“.
  4. Isn’t this an awfully language-specific question?“.
  5. If you presented this problem in an interview and made me an offer, I’d turn you down“.

On the other hand, many readers provided answers to the questions and enjoyed participating in those challenges. Some thought that the questions are very good:

  1. Nice test! – brings together a couple of important under-the-cover behaviors that .Net developers often don’t think about“.
  2. I’m on your side. In an interview, who gives a GD about how best to use a friend class. You HAVE to prove that you can think creatively. When I first got to this site (reddit?), I thought I’d see lots of brilliant over-thinkers, ready to talk about stuff like whether curved nails could work or how to make an underwater vehicle of cardboard. Instead, I see whiners about “I QUIT THIS GAME!” and I’m sorry about that. Keep up the good fight. I got hired for a dCOM job where I had no experience at all. But I could “get” what they were asking me, and when I solved some musical encoding thing, I got hired. The technology comes easily, the thinking doesn’t“.

So how do you find the best job interview questions? It is very hard to know who is good and who is not according to some questions which are asked when the candidate is under a lot of pressure. There are many kinds of questions, I thought about that and managed to divide them into 5 main categories:

  1. Language specific syntax - I think that those questions are the worst because usually you won’t be asked about important issues, but about very uncommon language specific keywords. I once had an interview where the interviewer wrote down several options to add the const keyword in C++, while some options were fine, he introduced me some bizarre and rarely used ways to use the const keyword. He wanted me to tell him what will happen in each option, what does it say about someone who doesn’t know those weird syntaxes? I grasp that it tells that this software developer doesn’t write bullshit! If you are concentrating in the mainstream syntax, it is fine but don’t get into those never used syntaxes, it doesn’t tell anything about your candidate.
  2. Understanding of a specific language – Those questions are about the understanding of a specific language, those are better than the syntax questions (as far as I see it). You can ask about boxing in C#, memory allocation in C++, and so on… I would just state that those questions shall be introduced to those who claim that they have many experience in a specific language. If you ask someone about C# while he told you that he didn’t work with C# much, it doesn’t tell anything about him. On the other side, if someone claims to know C#, it is very important to see if he knows what boxing is. If he doesn’t know that, it might tell that he won’t learn other languages well too or, he is not being true about his experience.
  3. Puzzles  – Those are the brain-teaser questions, I think that those are good questions because you have to prove that you can think creatively. Those creative guys will easily learn new languages and syntaxes. The software industry always introduce new technologies and you have to keep up with the flow, if you prooved that you can solve general problems, you might succeed as a software developer. Some claim, that those kind of questions are bad because it’s just a race to see who gets the a-ha moment first. Some other say that candidates might come prepared and know the answers to some of those puzzles beforehand, those people might falsely come out brilliant. I agree with that but the correct answer is not what the interviewer seeks for, he is trying to see how the candidate think.
  4. Design – Many times you are asked to describe the design of a new component. Those are good questions because they are usually not language specific. I have to state that there is one drawback here – you might be asked to provide a design to something in an area you know well and therefore, you might  falsely come out brilliant here too. Let me explain, If I worked on a systems which communicated with many other systems and I am asked to provide a design which solves communication issues, it will be much easier for me than asking me to design a database oriented system…
  5. Complexity – Provide the most efficient solution for a problem. It might be a combination between puzzles and understanding of a specific language. Therefore, those questions have the same advantages and disadvantages of those two categories.

So, it is very hard to know the real deal about a candidate. I think that sometimes interviewers ignore a very important issue which is the personality of the candidate who is sitting in front of them. I prefer working with a cooperative and good person who might be less brilliant than with a problematic personality guy who is brilliant. So, it is very important to get as many opinions as possible from people who worked with the candidate in the past. I know that you might have other opinions and I really want to hear them, so do you agree with what I wrote or am I missing the point?

Tags :

2 Responses to “The Best Job Interview Question (Software)”

  1. Kris Warkentin

    Said on June 25, 2008 :

    I actually wrote both types of comments you describe above: complaining about the questions as well as complimenting the questions.

    Ultimately, I think you don’t want to test trivia but rather thinking ability. You’re not looking for the right answer but rather the process by which the person came up with it.

    Steve Yegge has some really good interview ideas at his blog and I recently came across another really good one that I think has the potential to be a ‘one question interview.’

    It’s at and is simply “what bothers you the most about other people’s code when you’re reviewing it?”

    Really great question because it separates the people who are thorough and care about interfaces, abstraction and “elegance” from the merely pedantic.



  2. vabuk

    Said on January 5, 2009 :

    Nice questions and information. thanks a lot

Post a Comment