It's funny, the way we used to do coding interviews was to systematically ramp up the difficulty of the problem until the candidate struggled.
The reasoning was that with easy problems, a lot of candidates could just write the solution on the whiteboard. You don't learn much about a candidate that way. But if you give them a problem they have to think about, and ask them to think out loud, you learn what problem-solving techniques they have at their disposal. Do they break down the input set into different cases, do they solve an easier version of the problem first, etc. If their code has a bug, can they pick an input that triggers the bug and walk through it step by step. We did hear "in real life I would probably need to get help with this" sometimes, and we counted that as a positive: the candidates shows self-awareness and resourcefulness.
And most importantly, do they turn into an asshole when they don't know the answer? We saw this surprisingly often. Some people got angry and directed it towards us. Some people tried to bluff us into thinking that their solution was correct. Nobody ever walked out on us, but I've heard of that happening.
All we wanted was to screen out people who turn into assholes when they don't have all the answers, and to give bonus points to people who had strategies for attacking a problem that was too hard to solve in their head in two minutes. Sheer cleverness was not high up on our requirements list (we needed a certain number of people who were clever at algorithms and such, but we didn't need everybody to be like that) so candidates that got stuck on a weaker version of the problem but attacked it with grace and resourcefulness often came out as more desirable than candidates that got to a harder version but responded badly when they struggled.
"But if you give them a problem they have to think about, and ask them to think out loud, you learn what problem-solving techniques they have at their disposal."
Am I the only one who will approach things completely differently when "thinking out loud" as opposed to silently?
Much of my problem solving techniques are non-verbal and involve visualizing. But you can't really do that when you have to keep talking and that forces you down a problem solving strategy that can be verbalized better
I had a set of problems increasing in difficulty. Most candidates only solved (or had seen) one or two, but some sailed past those to increasing difficulty problems.
The reasoning was that with easy problems, a lot of candidates could just write the solution on the whiteboard. You don't learn much about a candidate that way. But if you give them a problem they have to think about, and ask them to think out loud, you learn what problem-solving techniques they have at their disposal. Do they break down the input set into different cases, do they solve an easier version of the problem first, etc. If their code has a bug, can they pick an input that triggers the bug and walk through it step by step. We did hear "in real life I would probably need to get help with this" sometimes, and we counted that as a positive: the candidates shows self-awareness and resourcefulness.
And most importantly, do they turn into an asshole when they don't know the answer? We saw this surprisingly often. Some people got angry and directed it towards us. Some people tried to bluff us into thinking that their solution was correct. Nobody ever walked out on us, but I've heard of that happening.
All we wanted was to screen out people who turn into assholes when they don't have all the answers, and to give bonus points to people who had strategies for attacking a problem that was too hard to solve in their head in two minutes. Sheer cleverness was not high up on our requirements list (we needed a certain number of people who were clever at algorithms and such, but we didn't need everybody to be like that) so candidates that got stuck on a weaker version of the problem but attacked it with grace and resourcefulness often came out as more desirable than candidates that got to a harder version but responded badly when they struggled.
I wish we could still interview people like that.