views:

7027

answers:

88

What is a good non-programming question to ask a candidate during a job interview?

I'll post my two favorites below, but I'd like to hear others.

Clarification: By "non-programming," I mean you are not asking them to solve a problem by writing or describing code.

+70  A: 

In an industry where some say fifty percent of what you know is obsolete in five years, what do you do to stay current?

Kip
this is good but many companies use such ancient stuff that they don't actually care haha.
Arthur Thomas
+18  A: 

How much code do you write in your spare time?

Kip
I find this question to be a bit irrelevant and prejudicial. Sure, when you're in your 20s and unmarried you have plenty of time to hack around on the side. As you get older and have kids, you just don't have that kind of spare time any more.
17 of 26
And why would that be useful? Find out if somebody has no life outside programming?
Thorsten79
I like this, Answer to this question reveals how much passion towards programming
Jobi Joy
Depending on the question I would not hire the person, being a nerd with no life doesn't necessarily means he is a good programmer.
Fabio Gomes
I used to program outside the job but lately I find myself avoiding the computer at home. Home has to be different than work or whats the point of going home?
Zan Lynx
when interviewing the younger ones like me, its extremely relevant - a degree says nothing of your programming skills (and it doesn't mean we have no life).
Dustin Getz
+1 for Dustin and 17of26) - while it's a very bad question to filter good from bad, it does offer some insight into younger junior developers.
DVK
+4  A: 

I guess the answer might involve some sort of programming response, but:

Give an example of a time when you messed up. What did you learn from that?

Lehane
+1  A: 

Tell me about a situation in the past when you had a serious disagreement with one of your co-workers. How did you deal with that?

Adam Bellaire
What do you hope to hear as a reply?
Alan Hensel
I love that kind of non-verifiable question, you can make up whatever BS you think the interviewer is looking for, it's a great question for people who can lie on their feet!
tloach
A few things: For one, I hope they can honestly provide an answer and not just say "I can't think of any time that happened."I hope they don't bash their colleague when answering. I hope they didn't spend an hour debating it. I hope they sought consensus, and honored the result.
Adam Bellaire
I think in this situation, you'd want to hear an example of the applicant successfully resolving a conflict ... or at least you'd get an idea of "opportunities for growth" if you hired that person.
Dave DuPlantis
@tloach: That's true, but the point is that if they don't perform the way they said they would in the interview when such a situation arises, in our environment at least I have the leeway to let them go pretty quickly and painlessly.
Adam Bellaire
I've gotten this question in a few interviews, and I can honestly say I've never had a serious disagreement with a coworker... unless you're talking about design issues or how a feature is implemented. In which case the project lead always makes the decision and that's that...
Max Schmeling
"Tell me about the worst colleague you worked with" - this will help flush out people who can't deal with criticism, and people who can't concisely say something negative politely.
Marcin
i know lying is important skill, but come on. Can any one give the right answer and i think that never has serious disagreement is a bad one.
01
I bitch-slapped his ass!
Alex Baranosky
@GordonG: I like that attitude! You're hired.
Adam Bellaire
+54  A: 

What are you passionate about?

Prakash
I'm sorry... "What are you passionate about", this question is so over used and tired now, garbage-men are getting asked this question during interviews... but hey, I'm glad it still works for you.
ceretullis
I'm amazed that so many people think this is a good question to ask. It's good to be passionate about something (anything!), but I not sure this question will help to filter candidates.
Mitch Wheat
Seems like kind of a silly question. Wouldn't "What in software development are you passionate about?" be a better question?
Alex Baranosky
The problem with this question is that enough people would feel obligated to invent something. I think that many very qualified developers, as they get older, lose passion and become practical (family and mortgage would do that to you). Not being passionate doesn't mean anything in most positions.
Uri
Try "What bothers you the most when reading code written by someone else." You can gauge their passion from the answer. Worked for me.
pi
@Uri - hey, I'm passionate about paying my mortgage and choosing mu kid's toys!
DVK
@Alex, I think part of the point in the question is that there are different parts to the answer, such as how much enthusiasm is there in the answer, how detailed is the answer, and that without putting a context on it it could be more interesting to see how someone answers.
JB King
+8  A: 

How would describe the difference between a Hub, a Switch, and a Router to your Grandmother? If they do OK there, then ask them to describe the difference to me.

The idea of the question is to understand if they can communicate/relate things well and then ultimately if they have a decent notion of these very common devices.

Tall Jeff
I'd tell my grandmother that she doesn't need to know the difference between a hub, a switch and a router, because the differences are inconsequential to her. What with being dead and all.
Paul Tomblin
Unless you are being interviewed for a role involving networks, I wouldn't expect a question like that. I personally would have an issue with the difference between a switch and a router. But as I'd never go for a network admin role I don't see why I would need to know the difference (or explain it)
workmad3
I'm not sure the specific question you give is a good one, but I like the general idea of getting them to explain something to someone who isn't technical.
Mark Baker
I assume you'd substitute hub, switch and router for some other devices if the candidate was not familiar with them (and the role didn't require the candidate to know about them)?
SpoonMeiser
A good question for the position of technical writer of user manuals for the general public
Jonathan
A hub is like a party line where everyone hears what everyone else is saying. A switch is like a direct line someone else in your town, and only the two of you can hear each other. A router is kind of like a switch, but it also knows how to make your call go to other towns.Am I hired?
Just Some Guy
@Just Some Guy - a router is like the operator at the phone company who calls up an operator in another town to connect your call. It's all computers these days, so that explanation would work for my grandmother, but not my sister. Of course, my sister wouldn't get the party line example, either.
Adam Jaskiewicz
I always ask a very similar question for programmers. How would you explain a database to a sixth grader. (Not only do I want to see if they can come up with a good analogy but also can they do so at the appropriate level -- you'd be surprised how many explain it like they are talking to a 4 year old.)
Goblyn27
+2  A: 

What websites/blogs do you read on a regular basis. When have you disagreed with a point the blogger was making and why?

derby
I've never been asked this, but it could certainly make for some interesting conversation
tloach
I don't think it would be good to mark a candidate down for not following technical blogs. If they only follow non-technical blogs, a discussion about them disagreeing with the author might not be useful.
SpoonMeiser
True, I think I added the word technical in there mentally when I read it ;)
tloach
+8  A: 

Describe the most challenging situation you have had with a customer and how did you resolve the situation?

(or choose 'co-worker' or 'class partner' if you choose)

Kevin
+18  A: 

Since we're so often stereo-typed as socially awkward, uncommunicative loners, I ask questions about their hobbies & interests - can all they do is code, or do they have 'a life'?

I also ask more general business questions... do they have a feel for the business of their customers/clients/users?

Good coders are two-a-penny. Good developers who can communicate with, understand and empathise with their clients are somewhat less abundant.

CJM
Asking about hobbies/interests is illegal in some countries. I personally avoid companies where the question about hobbies is mandatory at the interview. I agree with the other two paragraphs though.
Alexander
Eh? In what country is asking about hobbies illegal? The only 'illegal' things to ask are the discriminatory ones, like about religion and on whether or not a woman wants to get pregnant soon.
Roel
The point is, if you don't hire someone then in theory, they could claim that anything you asked about in the interview was the reason. If you ask what kind of music they like and they say country, they could then imagine (however wrongly) that you had something against that.
fenomas
+34  A: 

Describe to me (a particular project) you worked on.

Preferably it is a project you're not familiar with already. If the interviewee can't describe the project to you, (s)he will likely not be very good at communicating ideas to co-workers, management, or customers.

Kevin
This works especially well if the previous employment was military in any way. The answer is "I can't talk about them".
tloach
You obviously choose some non-secret project to ask about. You can ask about some project in school if the person went immediately to work for national defense.
Kevin
+18  A: 

I think it's important to ask at least one really generic question to give them a bit of space to breath and speak freely. Through this you can find out quite a bit out about them! Oh yes and make them talk about other hobbies and how they got "into" programming! Did they do it before University? What are they most proud of? (programming-wise)

J-P
+3  A: 

I believe the developer aside from being able to code has to be:

  1. Communicable
  2. Responsible
  3. A team player

Therefore I ask questions around those qualities. For example it's great to see how they talk about their previous job. Who is responsible for that project which did not go that well. How they describe the process of the software development. Etc

Ilya Kochetov
+3  A: 

What else is their job going to entail? Try to consider some of the soft, social skills that their role might require (or might one day require) - working as part of the team, helping marketing describe the product, deal with supporting customer, demonstrating with the business development team, team lead, mentoring, handling an HR issue.

My favourite one is actually "why are you leaving your current job? why are you here for this one?" You can lead that on to all manner of other places, and you get a decent grip of the morals, ethics and outlook of the candidate.

Unsliced
+5  A: 
  1. What books would you recommend for your colleagues?
  2. What do you do to keep your body and mind in shape?
  3. How much time do you spend on reflecting on other peoples work?
kitofr
+20  A: 

What was the last technical book you read?

fiddlesticks
Similarly, what is the *least* technical book you've read. Perhaps even more telling than the last technical book they've read :-)
LKM
+2  A: 

What was the last programming language you learned? How did this compare to language X?

fiddlesticks
+1  A: 
  • Tell me of one (or more) extraordinary tasks in your previous job that you are proud of?
  • What was the most difficult task you've done till now?
  • How do you keep yourself up-to-date?
Vivek
+8  A: 

When you run into a coding challenge that you cannot solve, where do you go for help? Where do you do ongoing watercooler style research for programming projects you are involved with?

pearcewg
The Hollywood movie answer would be "There is no coding challenge that I cannot solve." Of course, if someone tells you that in real life, you probably don't hire them.
Kip
Uhm... Stack Overflow? ;)
DVK
+5  A: 

In interviews I always get "Why are you looking to leave your current job?" I usually just say something along the lines of "I want more responsibility and I am looking for better opportunities". I never say anything negative about my current job.

fiveprime
A good interviewer won't let that slide, though. My follow-up would be "What sort of responsibility were you looking for? What had you done to get it, or were you just hoping for a promotion? Had you talked to your boss? Did he turn you down? Why? What opportunity specifically are you looking for?"
Andy Lester
Yikes Andy, you're a tough nut to crack.
bryanpearson
Thanks for saying that, @bryanpearson. I just happen to be writing a book on job hunting for geeks called "Land The Tech Job You Love", at http://theworkinggeek.com/, so it's sort of a pet topic. :-)
Andy Lester
+19  A: 

You have a bowl with 200 fish in it. Of these fish 99% are not guppies. How many fish should you remove so that 2% of what remains are guppies. Show your work.

This is about confusing requirements. It is said this way to change perspectives multiple times during the same question. It is meant to see if they can figure out what is really going on.

You would be surprised how many people get it wrong.

dacracot
I'd come up with "Can't answer, it doesn't say. Let's work on the question."
Thorsten79
The answer is 100. 200 fish * 99% not guppies = 198 not guppies. 200 fish - 198 not guppies = 2 guppies. 198 not guppies - 100 not guppies = 98 not guppies. 98 not guppies + 2 guppies = 100 fish. 2 guppies / 100 fish = 2% guppies. Remove 100 fish which are not guppies.
dacracot
Your answer of "can't answer" is a very common error.
dacracot
Thought about it again. I erroneously assumed that 1 or 2 of the non-guppies could be something other than guppies. But then they would be contained in the 99% of non-guppies anyway. Well, I obviously failed that question.
Thorsten79
The question is imprecise - it doesn't say that *exactly* 99% of them non-guppies. But that's a reasonable interpretation. Also, I don't know what a guppy looks like, so I couldn't remove 100 non-guppies anyway. I suggest removing all the fish, to be on the safe side: 2% of zip is zip :-)
Steve Jessop
@onebyone You don't get hired either.
dacracot
Another way to get the same ratio would be to remove 150 fish: remove 1 guppie and 149 non-guppies leaving 1 guppie and 49 non-guppies, also 98% non-guppies.
Chris Smith
@Chris Smith... Ok you're hired.
dacracot
100?.. if 198 == 99% then 2 = 1%If I remove 100 non guppies 98 = 98% and 2 = 2%.
OscarRyz
@Oscar What's your point? The goal is 2% guppies. The percentage before removing fish is only relevant to how many fish must be removed.
dacracot
@dacracot: that's OK, I only applied for interview practice ;-p
Steve Jessop
The truth is that I would not want to work at a company or for a boss where one wrong answer to a question ruins the interview.
Thorsten79
0.01 * 200 = 2, so 2/(198 - x) = 0.02, which means you need to remove 100 non-guppies.
Alex Fort
@Thorsten79 We have many questions. One wrong answer won't eliminate a candidate. I was being facetious in my responses. What we are really after is an interaction.
dacracot
@imphasing If you solve for x, the answer is 98, not 100.
dacracot
@dacracot: Yeah, my bad. I meant 2/(200 - x) = 0.02 :)
Alex Fort
@imphasing So you're hired. No only are you the first person ever (really!) to show me an actual equation to solve the problem, even though your first iteration was wrong, you corrected it with a very small interaction.
dacracot
Woohoo! I should start demonstrating my mad algebra 1 skillz to future employers :P
Alex Fort
Hey, how bout some up votes. I've got more comments than votes. :D
dacracot
I can give you a -1. You didn't have one of those either.
trenton
The spec says that 99% are not guppies. It doesn't say whether the other 1% are guppies. You might have bowl where 99% are not guppies and the other 1% are also not guppies. As an analogy for real world problems it is an excellent test of the trap of assumptions.
TrickyNixon
Its so hard to care about that kind of questions, i hate people that ask it. I always feel that interviewer is showing how smart he is, he should find a job where he can use his mad math skills.
01
The thing is this question is just plain easy. If you are complaining about needing "mad math skills" it just makes my eye brows raise. This question is easy, right???
Alex Baranosky
The question is easy if and only if you pay attention. The phasing is awkward, so the test is not really if you can do math, but whether you can interpret difficultly formed requirements.
dacracot
The simple answer is to ask more questions. Why is that so hard?
Todd Smith
@dacracot et al, the question seems easy but how can you be sure that you are removing only non-guppies?
Todd Friedlich
One thing that is left out of the question is the set up. We tell them that they may ask any questions they want during the process. Yours is the most common question. Answer is, the guppies and non-guppies are easily separated.
dacracot
I had one candidate argue with me that this was wrong. That guppies and non-guppies would be impossible to separate. He insisted even though I told him otherwise. I didn't hire him.
dacracot
What if out of the 100 you remove, out of chance, you get the 2 guppies. Then you have 0% guppies...
asp316
200, you'll get zero guppies, which is 2% of what remains (zero).
Liran Orevi
-1 This is an awful interview question. It's one of those questions that is specifically designed to trip up as many people as possible. It's nothing more than a brainteaser.
Ash
A: 

Do you change your own oil?

The idea here is to see if the applicant like to 'get his hands dirty', and figure out problems for himself. Obviously, you are not interviewing a mechanic, but good programmers (and engineer-types in general) seem to like to figure out how things work.

Edit: Wow, people really seem to react strongly to this. I thought it was a clever question when I was first asked it in an interview. So, someone suggested, "Tell me about haw you get your hands dirty." I'd like to get more specific. How about, tell me about the first time you took apart a VCR? Does that work? I think its too broad to just ask how people like to dive into things.

pkaeding
I love to figure out how things work... but the mystery of how to change my oil was gone by the time I was 7. I prefer to pay someone to change my oil while I do something else.
Max Schmeling
This question was actually inspired by my father-in-law, who always asks applicants (mechanical engineers) how much they work on their own car. So I started thinking of ways to adapt it to the hiring of programmers. I don't think this would be very effective at screening programmers though.
Kip
@Kip: It could be modified to something like "Did you install your OS or are you using the company-installed one?" Although that breaks if you have a mac ;)
tloach
I like to figure out how things work, but haven't been taught how to change oil. I could buya book, but the idea of playing around under my hoow with a monkey wrench and the internet scares me. I can see why you'd ask the question but it's not always applicable.
Sara Chipps
If you have a newish car, especially if it's still in warranty, you probably want to get it serviced at a main dealer. So unless you want to change the oil in between major services (bizarre behaviour that apparently Americans like to do) why would you do it yourself?
Mark Baker
Although I understand and agree with the sentiment behind this question, changing own oil != programming ability. Perhaps you could ask something more programming related like "How do you think <program they have no experience with> work?"
Jason Baker
A non-mechanic version of this question might be, "Tell me about a time where you had to get your hands dirty." No sense in hiding your intention behind a question about one specific activity. Be direct, ask what you want to know.
David
Not a bad question, but bad arguing and reasoning behind it. A good programmer should be able to, as the skills needed overlap with his daily skills (RTFM). Doesn't mean he actually does it. Same as sorting a list of ints - I'd fire someone who actually writes his own code to do so.
MSalters
+6  A: 

Do you know www.stackoverflow.com?

vIceBerg
Yeah, don't hire any developer who knows about Crack Overflow ;)
Phill Sacre
surely knowing about stack overflow is a sure sign they will spend all thier time procrastinating on it?
Omar Kooheji
Hehe, good point, thats actually what I do at Work
isc_fausto
+13  A: 

I've got a couple from my experience of doing team-building

What are your career plans for the next couple of years?
Tells about the things that are important to the developer. Helping him out with these things could motivate him beyond what salary could do.

How often do you make mistakes?
Ability to learn is proportional to the amount of mistakes made and learned from.

How would you approach the task of... [put some new tech thingie that he clearly does not know, i.e.: add circuit breaker for our DAL]
Developer's flow of thoughts will tell, how he normally would deal with new problem, if challenged with one (development is about unexpected challenges after all).

There is no best answer here. Some tend to ask about time they have and the other task constraints (showing management qualities of team-leader), some ask for tech details (good specialists) and some tend to surprise by going straight to the point and showing more knowledge and experience than you would expect (must-hire-now)

Rinat Abdullin
I love these questions. You learn something valuable and there is little reason to lie for the interviewee. Worlds above the "tell me about a time you did X" type questions
tloach
As an interviewee, I would now take these questions as a sign that I would not like to work there. This, because of having some experience with bad jobs who just happened to ask that kind of questions. I mean, the interviewer must be honest himself about the questions.
edomaur
@edomaur, could you, please, elaborate on that a little bit?
Rinat Abdullin
I like the mistakes question. Bad programmers typically don't notice that they make mistakes at all, while good programmers tend to question themselves because they keep learning new things, and keep noticing better ways of solving problems, thus thinking that their older code is wrong.
LKM
I see you often make mistakes, but 1 of 3 is not bad.
01
"how often do you make mistakes" really depends on the definition of "mistake". I make mistakes often many times an hour, easily corrected with the backspace key. I also make them several times a day, easily detected and corrected with unit tests. And several times a week, and so on.
Bryan Oakley
+5  A: 

What's the most interesting project you've ever worked on? If they remember their past projects, they're more likely to remember their future projects. The better their memory, the better they'll be at maintaining their code (fewer 'why did I do THAT' statements). Plus, you'll get an idea about how passionate they are about coding: do they immediately start telling you about project x, or do they stare at you like you're speaking Greek?

What do you do in your free time? People who code in their free time are more likely to code well, but that's just based on personal experience, I can't back it up.

Jeff
In my experience people who code in their free time are more likely to be enthusiastic about it, which is important, and to work fast. But they're also more likely to just hack without properly designing what they're doing, and to produce code that's hard to maintain (even if very clever)
Mark Baker
Agreed, that can be a problem. But if they are given good guidance and you do code reviews as standard practice, they can shape up nicely.I know I did.
Jeff
A: 

I always give some office-like scenarios I've been through such as dealing with non-technical people, dealing with hardware / hosting problems and I analyse if the person I'm interviewing would do sometihng better that I did in the past.

If so, he/she is almost hired. I guess the bottom line is that programming is easier to learn than having a good relationship with others or knowing how to deal with stressful situations

rshimoda
A: 

Getting someone to tell you what they think are their biggest weaknesses or areas they need to improve in/on

My answer is always that I procrastinate, as I am doing now answering this question!

WACM161
Biggest weakness/strength questions are bad because everyone has a canned answer - it's too common a question for me to screw up and give a weakness related to the job.
tloach
'my biggest weakness? Well, I'm actually pretty bad at programming. Would that be a weakness as a software engineer?' :)
workmad3
When answering this type of questions, it is always best to make a positive out of a negative. So, for example, "My biggest weakness is that I am forgetful so I've taken to keeping a notebook beside me to note things down". This shows you recognise your weaknesses but can adapt and improve
+42  A: 

Why did you leave your previous job?

(Or "why do you want to leave?", if they are currently employed.)

As an interviewer, I want to get at the story behind the resume. If I see someone who has hopped around from job to job, I want to figure out why. The most common explanation is that the candidate talks a good enough game to get hired, but is a poor employee - either not very competent or has other issues (hard to get along with, poor attitude, bad work habits). If they don't fit that profile, then I want to figure that out.

On the other end of a spectrum, if someone has been in a previous job for a long time that is usually a good sign, but not always - it could be that they were in a seriously dysfunctional organization and were good at playing politics, or worked for an employer that was very slow to clear out dead wood.

Unless you are such a superstar employer (via pay, prestige, or both) that you can lure good people away from your competition, your best shot at making really good developer hires is to snap up talented people who have been let go through no fault of their own (usually due to a business failure, takeover or big reorganization), or who are looking to make a big career transition. The tricky part is separating these few precious kernels of wheat from the oceans of chaff.

McKenzieG1
What would you consider a good answer for someone who is currently employed?
tloach
I would tend to react favorably to someone who is leaving because either they or their job has changed so that it is no longer a good "fit" for them, unfavorably to someone who just seems to have "itchy feet"
McKenzieG1
LOL. I like this answer, if only because I look like a job hopper based on my resume. Hop 1 was a biz failure, hop 2 was an opportunity jump, hop 3 was I was fired, hop 4 was a work-life-balance issue with an overtimey company. I wonder how I'd fare with you. :P
Jon Limjap
Iv been contracting for the last 2 years, and iv lost count of the number of people who think "job hopper, troublemaker/idiot", and not "Hrm, maybe his contract expired/he finished his project", even though I label my jobs as "Project Contract"...
pzycoman
Hm, I've always left my previous remote projects because there was nothing else to learn or I was not able to make the difference any more. I wonder, how this counts...
Rinat Abdullin
Money! but you cant say that, so I say that im looking for challanges.
01
Dining Philanderer
A: 

How do you handle it when a customer/co-worker asks for something that is technically impossible?

Eric Ness
I say 'ok' and do it, despite it's impossibility!
tloach
+16  A: 

Ask them "Do you know what a 'kickback' is?", then wink a couple of times. ;)

MrZebra
I like your thinking....
CJM
+1  A: 

What do you like to read?

catfood
A: 

I'd ask them what they do in their spare time. If they say "dunno really... play some games or something", then they may not be very motivated. If, on the other hoof, they launch into an enthusiastic description of their latest project or adventure, then they are more likely to be committed / motivated.

MrZebra
A: 
  • Tell me about the biggest mistake you ever made in a project.
  • ... and what changed as a result?
  • What was the last business book you read?
  • What do you know about our industry?
  • Tell me about a project that didn't work out so well
  • What have you done in the past few years that you're most proud of?
  • What makes a good team?
  • What do you want to be remembered for at your last job?
  • I'm working on training & books budget for next year. If I were to hire you, what should I allow for?
  • What haven't I asked you yet that I should know about?
  • Why do you want this job?
  • From what we've talked about in this interview, what are the two biggest challenges you'd face when starting here?
Andy Lester
A: 

What's your favorite movie? I ask this question anytime I interview something. There's no wrong answer and it's a great conversation starter.

Or if you are in New England, you can always go: "So how'bout them redsox?"

lajos
A: 

what do you do in your spare time?

Justin Lawrence
I like this question a lot. I want to work with someone with broad interests and enthusiasm for their life outside of work.
TrickyNixon
"Spend time with my wife and kids." Oops, now you've got a lawsuit if you don't hire them.
toohool
:) I agree with toohool, plus i think its not a date. You should hire people because they are good at the job and not because they like soccer or something.
01
+1  A: 

How did you get started programming

I tend to lean towards people who either picked it up for fun, or some other personal motive other than Hey I can use a computer, I want to make games, I'll learn programming, but oh gee, I'm stuck in IT

How long would it take you to pick up [Language X]

Glancing at their resume I'll come up with a language they don't have any experience in, and see how comfortable they are with programming basics. An wise developer would understand that transitioning languages is largely related to syntax and function names. Yes, doing it properly means fully understanding the range of the language.

Adam
A: 

"Describe project X and your role in it." Project X is whatever appears to be the most substantial project on their resume. This question serves a few purposes for my interview loops (detailed below)

  1. Breaks the ice. I find people are most comfortable when you start off by discussing something they are confident about
  2. First order lie detector. You will occassionally get someone who lies about projects on their resume and simply doesn't do any research whatsoever. I'd like to say differently but this question has identified too many falsifications in my loop
  3. Allows you to ask very targeted deep questions. It's not always reasonable to have a pre-determined deep question in a specific technology area. Too much of a chance you will pick a very small area the person hasn't worked with before. This is not an indication of their skill but of experience (normally you hire on skill). But in this case it's a project you know they have experience with. If you get a resume a day or two in advance (and you should) it only takes 30 minutes of googling to get enough understanding of a area to ask one or two deep questions. You don't have to be an expert to determine if they know what they're talking about.

This is all based onthe assumption that people will put projects they are proud of and contributed to at the top of their resume. I'm not concerned with people who don't

JaredPar
+3  A: 

What sort of computer setup do you run at home? OS, distro, networking setup, etc.

Most geeks are happy to describe their systems, and it tells me a lot about their enthusiasm for computers and their technical know-how.

Bonus points for multiple computers, PVR, SAN, security (wifi), etc. (Not just because it's cool, but because this experience is relevant to most programming jobs.)

jmanning2k
i run windows, because its low maintenance. i guess I don't meet the cut.
Dustin Getz
Why not? Tell me what development environment you use on windows, etc.
jmanning2k
+1  A: 

I like asking logic questions that require the candidate to demonstrate they can think through a problem in a logical progression. These questions don't have right or wrong answers - there is a continuum of answers.

For instance, the classic is you have a balance scale able to tell which of two objects is heavier. You have 9 objects of the same size and shape. One of the objects is heavier than the others - by comparing the weights of the object using the balance scale, how few steps can you use to determine which of the objects is heavier.

Its a good test - the candidate might come to a quick conclusion that uses more steps than needed (this tells you they are more concerned about schedule than getting the best answer), or they can stubbornly continue to work the problem until they feel they've reach the absolute lowest number of steps (which tells you they will probably choose perfection over timeliness).

ScottCher
Two steps! This search question as you have set it up (pwr of 3) should not be a problem at all for even an intern to solve. The fastest solution is to put three objects on each pan. Then put one object from the heavy set in each pan. The heavy object will be obvious. (If equal, heavy is not in pan)
TMarshall
@TMarshall: make it harder, how many steps if you don't know if the object is lighter or heavier?
tloach
A: 

I always ask what non work projects they have recently worked on. Programmers who love their work always have something to talk about. Those who are just in it for the money usually do not.

dicroce
A: 
  1. Why do you want to work here? - This can usually tell you whether they know anything about your company and whether they can communicate properly.

  2. What do you do when your away from the computer. - Good for telling if they ever get off a computer and also help open up a bit.

I would use a technical test to gauge their technical skills and use the interview time to determine if they worth having in the office.

A: 

How did you clean your room when you were a child?

This often matches up with how they currently approach tasks. Not that any answer is particularly bad (such as "I didn't" or "I only did it when I was told" or "I just threw everything under the bed"). We work with some great developers who gave answers like these. But it does seem funny to see that it still shows through in how they get things done.

Shouldn't it be, "how do you clean your room NOW?" It seems strange to imply that they do everything the same as they did when they were children. I know for dang sure I don't!
Alex Baranosky
I'd much rather answer this question for how I cleaned it as a child. At least then, somebody made me do it on occasion
mabwi
A: 

Why should we hire you? Why do you want to work for us?

J.J.
+3  A: 

Tell me about a time when did something wrong. After they give the example, ask how they went about fixing the problem and what they learned from it.

Tom
+1  A: 

Two things:

I. I like to ask people (especially those with some experience in industry) to consider the dimensions of: 1) "those people that they've worked FOR" (aka bosses / managers / chain-of-command / etc.); and 2) "those people that they've worked WITH" (aka peers / co-workers / etc.) and then tell me about positive and negative experiences that they've had in both dimensions.

I'm looking here to see what kind of people they like (and dislike) working with, what kind of environmental factors influence them, etc. And I can pattern-match against our own operation to see if their comments raise issues or concerns.

I find it to be a thought-provoking question that tends to get people giving a pretty liberal amount of information.

II. I like to ask them to tell me what I'd see in performance reviews that they've had in the past listed as positive attributes and also listed as negative or things that need to be worked on.

The point here is to try to get the candidate to fess up to things are are areas in which they think themselves that they need to work on.

Chris Markle
A: 

What do you read to keep up on the latest developments in software engineering?

David
A: 

"Mention three common design patterns and explain them!"

People who know design patterns are one stage further than the "I've learned C++ in a 3-weeks-course" guys.

koschi
A: 

Tell me about yourself.

Michael Dorfman
+4  A: 

My all-time favorite questions are ones that allow me to assess how the applicant approaches solving a problem. (This is somewhat of a variation on Joel's Guerilla Guide "Impossible Question") It gives me insight into how they think (big-picture vs. detail oriented) and what resources they would use to find information they need. Typically I use variation on the following

Tell me how you would determine: - how many gas stations are needed in a 1-square mile area of downtown L.A. - how many ATMs you would place in the 3 largest Las Vegas casinos. - the fastest 5 routes from Point A to Point B.

My variation on this is to tell them up front there is no wrong answer to the question. And along the way, I ask some clarifying questions to give me more information, based on their responses. I found I get more useful information about how the person approaches problem solving, their perspective of new problems they face, and how they go about learning things needed to get the job done.

twokats
A: 

Tell me about a piece of software that you wrote that you personally use.

Giao
+3  A: 

Is there a question I should have asked you, but did not?

tessein
A: 

See how they handle deliberately awkward and challenging issues (which helps see how they may react in the workplace).

"If I told you this interview wasn't going well, what would you do?"

Or pull in a technical writer and ask them to explain a technical concept to them. That way you can see how good they are at communicating concepts to a less technical co-worker.

(disclaimer: I'm a technical writer! That's TECHNICAL writer, not technical WRITER!)

A: 

My favorite...

"What's the smartest thing you've done in the past year."

Marc Hughes
A: 

Why are man hole covers round? and how many man hole covers are there in the continental united states.

mikedopp
1. round is the only shape that can be cast in one piece and still have a locking mechanism. (have a protrusion on one side that drops into a notch and then push the cover 2 inches clockwise to lock under a flappy thing)2. At least 10. (a valid and correct answer that can easily be proven :)
@jimoc: first part of answer is wrong: it's round so it can't fall down the opening.
slashmais
Not all manhole covers are round! how does THAT fit your world view!? There are plenty of square ones around.
Aidan
"Why are man hole covers round?" is a question asked by Microsoft during their interview process. It is typically asked in the middle of the interview to throw you a curve and see how well you think on your feet.
Ascalonian
A: 

I like to know what type of developer I have in front of me. I always admire those that can go beyond their own way of looking at a problem. Understanding how others try to solve a problem is many times needed and usually hard.

I found the following question to be quite revealing, regardless of the actual answer (beware, people try to play games trying to look what they are not, but is normally easy to tell by the examples they give):

What is harder, write code or read code.

antonio
A: 

"Tell us about the coolest thing you ever worked on" - the response will give you a good idea of their level of enthusiasm/passion for the field and should let you see the candidate's technical communication skills at their best. We like people who can use diagrams effectively, so provide a whiteboard or at least lots of paper&pens.

timday
+1  A: 

I believe in designing the interview questions for the specific position instead of using predefined off the shelf ones.

  • I spend time before the interview defining the job requirements and exact qualities I want to test for.
  • I read through the candidate resume looking for events in his past where those qualities might have played an active rule.
  • I then create a list of questions or tasks that would enable me to evaluate those qualities.
  • I try to kind and avoid using "gotcha" questions. I prefer playing games with the applicants. This is more pleasant, and puts the candidate off guard, letting me see more of his abilities, as well as things he would normally try to hide.

Some examples:

  • historical questions: For a job in a big established company a candidate would need to adjust to company policies and strict codes. Talking about candidate time in high school (which is usually more rebellious years) can give hints toward his attitude to authority. Army service on his resume can be another good point of reference.

  • Designed Task: A position I we were hiring for required a fast learner. In the interview process I required the candidates to write a simple program. 4 candidates did well, writing some 20 lines of c++ code. During the interview I showed the candidates 2 lines of code that achieve the same task, using STL, and asked each to describe what the code does. I started explaining the different STL constructs until the candidate would recognize that the code is equivalent to the sample he just programmed. The best candidate I interviewed got the idea in less then 2 minutes and had fun doing it. The others took around 10 minutes. the worst ones never got it.

Raz
+1  A: 

Do you code better when buzzing on Mountain Dew?

garrow
That's a fantastic question and one I'll be asking anyone looking to work for me in the future!
superfireydave
+1  A: 

I see from your CV that you have always worked alone/unsupervised/in a group. How do you think you would cope if you were in an environment where you work in a group/heavily supervised/alone? (delete as applicable) Why are you switching to a different type of working environment, do you think your work is suffering because of your current environment?

The first choise was asked of me when coming from a background of being sole developer in 3 companies for 10 years and then moving to a company with 40+ developers over 10 programming groups.

Very relevent question, and I'm now happy in my new job with a large group of programmers :)

A: 

If they are coming from a large company that would possibly have their own hardware/software support for the company pcs and networks, ask them if they have ever gotten into trouble with the IT department for fixing their own PC problems without raising a helpdesk issue.

If they have then it shows that they enjoy messing about with things and solving their own issues rather then relying on others to provide them with solutions to the simpler problems.

+2  A: 

Ask if they are familiar with the "coding couch"

pookleblinky
A: 

What do you want to do in our company/project?

Question is good both in abstract form and after I have described what we are doing here and which are options. Gives me a hint what would motivate candidate and in which way. And, I could be sure that this one would be answered honestly. Also, gives a candidate a chance to speak to me in a free form.

Variation, "What do you want to do after 6/12/24 months"

Ilya Komakhin
+1  A: 

"Are you familiar with the employment laws that restrict the types on non-work related question I am allowed to ask you?"

David Aldridge
+1  A: 

In the same vein as the 'manhole covers' question I've had the following question asked in an interview:

How many gas stations are there in the United States?

I think the goal is to see if the applicant is able to reason, using very little input and come up with a plausible way of solving a problem. Obviously no one knows the answer to that question exactly but you can come up with a guesstimate and describe how you got to it.

neonski
+1  A: 

How do you plan on bringing value to this company?

Now given the circumstances of the interview you may not always be able to be this direct. However, giving a candidate an opportunity to tell you exactly how they could impact your bottom line is the whole point of the interview. Why waste the interviewee's and your time posing nonsensical riddles that have nothing to do with the job they would be doing? Would you decide not to hire them if they could clearly explain how they could produce double their salary in a year if they couldn't tell you how many gas stations there are in the US?

A: 

What do you know about us?

Companies mostly have websites and there is information out there about the firm. How much research have they done before turning up? Are they motivated to work for this company or is this one of a bunch of form letters thrown out to whatever openings they could find? Might not be make or break (not going to reject someone based on not knowing all about the firm they applied to) but if you have to choose between closely matched candidates, which would you rather hire? The candidate who saw the job add or the candidate that bothered to research the company?

Hamish Smith
i need to start asking "what is so special about your company?", because we know that every company just like woman are different :D lol
01
+2  A: 

What gets you excited about coming to work in the morning, and what makes you dread coming to work in the morning.

Michael Mann
A: 

The one I always liked is...

How would you go about building me a house?

Many times the answer starts off with things like it a strong foundation is important. The problems is, how can you build my house if we haven't even determined what I want (i.e. number of bedrooms and bathrooms, kitchen size, one story or two, basement, etc)?

Scott Saad
A: 

What are your goals? I like people who are goal oriented, people who are, are almost guaranteed to be passionate about something. Then you expect to hear that their goals are inline with the job you are hiring them for. This applies to any job, not just programming.

Ricardo Villamil
A: 

What's the coolest thing you've done in the past five years, your biggest braggable?

  • Lets you get a sense of the the scope of their accomplishments

  • Lets you see them get excited about something (hopefully!)

  • Might let you get to see a side of them you haven't seen yet, as their answer might not have anything to do with IT

+1  A: 

How many gas stations are there in Los Angeles ?

You didn't get the job in my company, gabr. I didn't care, either, until I followed the link!
Adam Liss
+1  A: 
  1. Did you failed? If you did, could you describe it.
  2. If you did, how you managed it?
  3. How did you move on from your failure?

Those who failed and managed to move on are good candidates. At least, they are honest and they can handle failures, and they those who are resilient.

OnesimusUnbound
A: 

What do other people find irritating about you?

I've used this question in interviews for two purposes:

(1) Determine if a candidate is receptive to open criticism (positive or negative) and see how they respond to the criticism

(2) Determine if a candidate will answer questions that may expose them or put them at risk.

When candidates "spin" the answer to this question to make it positive, I give them a lower score. For instance, "my coworkers always say that I irritate them by being a hard worker or always on task..." In my opinion, this is not answering the question.

come on, "spin" was invented because of questions like this, you should respect that. i only do "spin" if I get asked stupid questions.
01
A: 

I'd ask the candidates if they have an account here on Stackoverflow. If they do, I'd ask them to tell me their nicknames on SO. I would then check out their profile, the questions they posted and the answers they gave to other people's questions. I think that would give me a fairly good knowledge of the candidates' abilities ;-).

Sandman
A: 

Tell me about the toughest bug you've ever fixed. I like this question because it forces the interviewee to talk in depth about detailed technical topics and make them understandable. I want to know that someone I hire will be able to describe a difficult bug, why it's broken and how they will fix it. Also you can tell how in-the-trenches someone has been.

Cameron Pope
+1  A: 

I like to ask this:

"When reviewing someone else's code, what is your biggest pet pieve?"

If you get answers like, formatting, or not following coding conventions, that is a red flag. I really like the people who talk about lack of exception handling, saw tooth code, long run on functions, etc.

The other thing I like to ask is dependent on how long they've been programming. If I see someone who has made a transition from one major language/framework to another... for instance from VB6 to VB.NET, I like to ask how they made the jump (books, classes, etc) and also to describe any hurdles they had to overcome when doing it.

Some people answer that question in a way that makes clear that even though they are writing VB.NET code, they still use VB6 methodologies, and they don't follow good OO practices. I stay clear from those people.

Nick
+1  A: 

My favorite question is "What makes a good application/program?", which doesn't have an exact right answer, but I've always been surprised how many candidates lock up when they get asked that because they are more concerned about appeasing the reviewer then actually thinking about the question and giving their opinion. It ends up revealing a lot..

I think I only got, 'Meets or exceeds the clients requirements and is maintainable' once.. and a lot of panicked 'it's fast?' answers...

ChalkTrauma
+1  A: 

I've used this at least once: "Emacs or vi?"

I don't really care what the answer is, but a blank stare would not be reassuring!

crashmstr
+1  A: 

What was your biggest development screw-up, and what insight did you gain from it?

RoadWarrior
A: 

How would your fellow programmers describe you?

I use this as it is quite open-ended but often makes the candidate think about how they are perceived by their team.

+2  A: 

"You've told us why we should hire you. Why do you want to work with us?"

One guy actually had to look at his notes to see where he was interviewing before answering. If they're excited to be a part of your company, they will have a good answer (and will know the name of your company without checking their notes).

Rob Allen
+2  A: 

What blogs do you read?

Assaf Lavie
A: 

What steps did you take when the business unit / customers of your project insisted you reduce time spent on requirements gathering, and how did you explain to them why they were missing certain features or had bugs that were the result of the inappropriate requirements analysis?

We have all faced this situation, and if the candidate says that this has "never happened to me" then you need to move on to the next candidate.

David Robbins
A: 

After completing your first coding assignment, your technical lead says, ‘The code looks good, but please replace [X] with [Y].’ You go back to your desk and you give the solution a lot of thought and you decide that your original solution – [X] – is the right approach. How do you go about convincing your lead that he should retract his request and you should move forward with the [X] implementation?

Wait for answer...

What if, after your attempt(s) to convince your lead, he responses with, ‘Sorry, Newbie. I don’t care. Do it my way.’ What do you do?

Ben Griswold
+10  A: 

Do you read The Daily WTF?

Have you ever had your work published there?

Evgeny
A: 

Ask some design questions: eg How would you design a dayplanner.

Personally, I like this question "How would you proceed a project if you are given a non-specific requirement?"

David
A: 

I ask the interviewee to describe one of their favorite technologies, frameworks, product. I ask them to describe the motivation of the technology, its architecture and theoritical background and the ideas behind the design.

For example, if the interviewee had experience in Spring Framework, questions would be:

-How the Spring implements AOP behind the scene?

-What is the motivation of IoC (or DI)? What is the benefit? What problems it solved?

After a dozen of interviews with potential programmers, I found the above question effective to evaluate not only the interviewee's ability to communicate efficiently but to learn and apply the technology with depth of understanding, which indicate how well he/she makes design decisions.

I seek programmers who can make sensible design decisions with supporting rationales. I do not prefer programmers who are only interested in make the code work and only knows how to use the API of the technologies. Such programmers are using technologies blindly and they are likely to make bad design decisions.

toshi
A: 

On my second interview ( i was really beginner) i have been asked:

If you have 9 balls and one is heavier than the rest how to pinpoint the heavy one by using the balance only twice?

i was asked about it because i gave many invalid answers for php questions and it seems that interviewer wanted to help me a little. This is good question to test agility of solving and understanding problems by programmer

dfens
Nice question, but i couldn't get the answer. So google get the same question title, but it is using the balance two times or what is meaning with "using the balance only once" ? http://wiki.answers.com/Q/If_you_have_9_balls_and_one_is_heavier_than_the_rest_how_to_pinpoint_the_heavy_one_by_using_the_balance_only_once
PeterMmm
sorry for mistae , balance should be used twice
dfens
A: 

i think its good to ask a non-programming questions during an interview

all things being equal (with regard to coding skill), the answer could be the deciding factor between two candidates

my favorite is: "An angry customer rings the office, they say: “my website is down, you said you were going to fix it yesterday!” You don’t know anything about this client or their work – what would you do?

its basically a test on customer service. you are looking for answers like: "i'd apologize to the client", "i'd tell the client i will look into it and get back to them in 20 minutes", etc

i have more information about my hiring techniques here: Hiring Programming Staff

--LM

louism