Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

In another question I asked recently about best practices for whiteboarding, there was general consensus that thinking out loud while coming up with the answer was the best strategy.

Indeed, long moments of silence are awkward.

However after recent interviews I have noticed that if my thinking out loud leads to wrong solutions or down the wrong path, that with further consideration I would have seen, interviewers tend to quickly jump in and point out problems with my approach, especially if I stop to pause for a minute. This was not an isolated case, and happened during more than one interview with more than one interviewer.

The other thing is that after the interview, on a problem I absolutely bombed, when I sat down and sketched out the problem on a piece of paper in silence I was able to sketch out the solution pretty quickly. Thinking out loud ends up with me spending brain cycles on reflecting on how what I say must be registering with the interviewer and in addition there's a fear of recognizing that I've gone down the wrong path and starting over after having written something on the board wastes a lot of time. Once you've started down one path and realize you've written a lot of junk, you can't undo it, whereas if you've thought quietly about it the interviewer wouldn't have seen the mess and it would have been quicker since whiteboarding a bad idea takes up more time than simply considering a bad idea.

I don't want moments of silence but at the same time speaking takes more time, leads to self-consciousness and can lead to interviewer intervention on something I might have figured out myself with just a little more time.

share|improve this question
7  
You just need practice. If they jump in, politely tell them to wait until you are finished. –  whatsisname Aug 19 '11 at 15:07
13  
There is no such thing as "thinking out loud". There is thinking and there is talking. Talking is out loud, thinking is in silent. Sometimes they go together but mostly talking is the one that causes trouble. As Calvin would say, "my main problem is my lips move when I think" :) –  Rook Aug 19 '11 at 15:19
4  
A good interviewer who asks thought provoking questions won't interrupt the thoughts he just provoked. –  cdkMoose Aug 19 '11 at 16:52
2  
Great question. Programmer interviews are very unique. –  MattK311 Aug 19 '11 at 20:28
2  
I actually ask people I interview explicitly to think out loud as I find understanding their thought process more valuable than whether or not they come up with the correct answer. –  dietbuddha Aug 21 '11 at 6:42
add comment

12 Answers

up vote 38 down vote accepted

It may not the best strategy for you, but it surely is nice for the interviewers, as long as you don't go "Full Metal Jacket"-crazy on them.

Most interviewers appreciate that (at least for programming positions), as it allows them to:

  • evaluate your thought-process,
  • and guide you if you're on the wrong track.

But feel free to say "hang on, let me have a think about this" and think things through before rambling on too much. Take your time; but don't let them hanging for ages. They are anxious to see if you're stuck or not.

Also, being on the wrong path at first is not a bad thing: it is your throught process. It's incremental and you need encounter issues along the way. Fairly normal. It's only bad if you don't see that you're on the wrong track, or refuse to see it when told so, and then don't manage to find the right way.

It helps to get the conversation flowing and going forward.

share|improve this answer
    
I actually badly failed an interview that was very important to me because the interviewer insisted on "guiding me" when he considered me to be on the wrong track. He kept jumping in and correcting me without really giving me a chance to think through ideas. Lets face it, being forced to track your thought processes out loud for the convenience of the interviewer is utter crap. It's just another symptom of the actual underlying problem: no one's actually figured out how to effectively interview developers yet. –  Evicatos Jan 6 at 21:02
add comment

The best strategy is to do what works for you. You've mentioned that thinking in silence helped you arrive at a solution, so perhaps that's what you should do from now on when you're being interviewed. I can understand being nervous and that this can affect your arrival at a solution, but you should use the approach you are most comfortable with.

I would not worry about there being any "awkward silence" during an interview. Consider it "thinking time".

share|improve this answer
    
It may depend in part on how the question is posed. If the interviewer explains the question and says: "...Now, talk us through the process as you look for a solution", they're not going to be too impressed if you sit in silence for several minutes. You might give yourself 10 or 15 seconds to collect your thoughts, but after that you'd best start explaining. –  Caleb Aug 19 '11 at 17:27
    
@Caleb: If that is specified, then yes, you will have to think out loud. But given the option, I suggest using what works best for the individual. –  Bernard Aug 19 '11 at 18:17
add comment

There's middle ground I believe. You don't need to articulate every single detail of your thought process, and I don't think this is expected. You can comment on the problem itself, you can describe how you're approaching the problem in broader terms.

"OK, I think I'd treat it like... I think the difficulty here could be... My first thought is... (leaving yourself an open option of adding: "...but it wouldn't quite work", if you figure out it is so)"

A trick is that your can correct the mistakes you just spotted as if you were lecturing.

share|improve this answer
add comment

I'm not sure it matters if you work through a problem in words or on paper/whiteboard, as long as you make your thought process clear to the interviewer. The whole point behind talking through a problem is to let the interviewer get into your mind and see how you solve problems. Maybe you're a type of person who can't verbalize and think at the same time, so the approach I would take would be to let the interviewer know that you prefer to work on paper rather than verbally. You need some verbal cues to the interviewer so they know what you are doing and thinking, but you don't need to detail everything in painful detail.

share|improve this answer
add comment

As always, "It depends"

If your thinking is along the lines of "here are my assumptions, things I'm considering as I'm preparing my answer," it's probably worth sharing. As an interviewer, I'd like to see the thought process and if you're willing to share - and change as needed - assumptions or presuppositions.

If you're letting me know that trying to remember the order of parameters for the a standard library function, that's probably not so good.

share|improve this answer
add comment

Why can't you undo it? Those sorts of questions are usually more about finding out whether you're able to say: "Hold the phone -- this, this, that, and this other part are all crap. I just realized that I assumed X, but that doesn't hold for this problem, so please bear with me while I back up a couple steps." Everyone makes mistakes, but not everyone is willing to admit to mistakes in a high pressure environment. If you see that you're wrong, just say so; don't try to cover it up and hope that they won't notice, because that's often exactly what they're really looking for.

share|improve this answer
add comment

As an interviewer, I'm quite happy to wait in silence for a few minutes while you think the problem over but, the longer I wait, the better answer I expect.

If you dive straight in and make mistakes but quickly spot them, that's fine. If you take time to think and get it right, that's better. But there's nothing worse than a developer who kills a lot of time thinking through a problem and then messes it up badly. That said, there's not a lot worse than a developer who is so keen to fill the gap that they do nothing but stumble.

share|improve this answer
add comment

Thinking it out loud looks like a safer bet to me.

<thinking out loud>

so, what are my options here?

  1. think it out loud and get to right solution. Nice at all counts. Score: 2

  2. think it out loud and get to wrong solution or get it right with help from interviewer. Bad, but at least gives me a chance that interviewer will appreciate thought process I exposed while getting there. Score: 0.5

  3. silently get to the right solution. Pretty good, though there's a risk that interviewer will doubt my teamwork abilities. Score: 1.5

  4. silently get to the wrong solution. Total disaster: not only I failed but also gave a big fat chance for interviewer to think I'm dumb. Score: -1


Count: thinking out loud wins over silence 2.5 : 0.5.

</thinking out loud>

share|improve this answer
add comment

Talking aloud is a great way for interviewers to gauge your thought process -- and that's what interviewers are looking for. They don't want some one who can just code, they want some one that knows how to solve problems.

Of course, for the person being interviewed, talking aloud is quite bothersome (I know it was for me). This is especially the case when a difficult question is asked. If you need time to thing about the question, tell the interviewer to "hold on and let me thing about this for a second." Then, when you think you have a solution, say what you thought about and how you reached your conclusion.

I find interviewers are happy to wait a few seconds while you think about the problem.

Another technique to give you time to think is ask the interviewer to clarify an aspect of the problem. This will give you more time to think and it might help you see an obvious solution you hadn't thought of beforehand.

share|improve this answer
add comment

Depends on how crazy you are. When I think out loud, there are only two possible outcomes:

1) I finish my train of thought, and look up to find that the interviewers have scooted their chairs as far away from me as possible. Sometimes security arrives shortly thereafter, or nice young men in their clean white coats ha ha ha.

2) The technical interviewer startles the HR interviewer by joining in my geektacular glossolalia and we gabble geekspeek at each other for 15 minutes. Then we comb our hair, climb down off of our chairs, and pretend like nothing ever happened.

Lets be honest. A lot of us are pretty weird. If people often look at you strangely, you probably shouldn't think out loud.

An easy compromise (one that I use myself), is to illustrate your chain of thought with well chosen questions.

share|improve this answer
1  
+1 for "geektacular glossolalia and we gabble geekspeek" –  HelloFictionalWorld Aug 20 '11 at 9:40
add comment

My recent experience with whiteboarding a problem leaves me feeling abused and certain that the interviewer only learned a few things about my childhood traumas and nothing about my capabilities.

I don't think it is a good idea, or even ethical, to stick a pin in a technical genius and display him in front of a whiteboard.

Next time! I will bring a notepad and a colored pen or two and do what I normally do to solve a problem. I start sketching preschool squiggles until my brain goes into hyperdrive. Hopefully, I will relax enough to start thinking. It seems that my fear is that I will fail miserably and that fear fails me miserably. Maybe practice will help.

share|improve this answer
add comment

I've read that people who talk to themselves are significantly better problem solvers.

So perhaps you can just mumble to yourself and make the best of both. :-) Seriously.

You'll be a better prob. solver and they won't get to hear the full details of your search tree, including the dead end nodes.

share|improve this answer
2  
"I've read that people who talk to themselves are significantly better problem solvers." Curious, do you have any source for this? Regarding your answer, I'm afraid this might make you sound crazy (and potentially annoying to work with if you mumble to yourself all the time in an open space or during meetings). Not that this should be a consideration while hiring, but it probably would tick off people... –  haylem Jan 6 at 12:58
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.