I'm going through an interview loop right now, and my biggest pet peeve is when interviewers interrupt my train of thought so that they can correct a bug in my code.
Please, for the love of God, LEAVE THE CANDIDATE ALONE UNTIL THEY'RE DONE. I don't know what the urge is for interviewers to correct candidates as they are in the middle of coding, maybe it's a superiority thing which is bad, or maybe they think they're helping, but they're not. Let the candidate fail if there's a bug, and let them find the bug themselves.
No one writes perfect code on the first pass. No one. If they do, it means they have memorized the answer. So when I code, I dump my thoughts down so that I don't lose any idea and then go over them again. That's the process of iterating to a final answer, as well as debugging. If you expect perfect code on first pass, you're a terrible interviewer.
It doesn't help when the interviewer keeps interrupting, or makes suggestions in the middle of my thought process, especially when I haven't fully formed my ideas. It completely pulls people into a different direction and leads to more confusion than anything else. And then you start thinking "Man I must not be doing well on this question" and the anxiety and embarrassment kicks in and inhibits performance even further.
I've done hundreds of interviews now in my career, and the best way to coax out maximum performance is for me as an interviewer to shut the fuck up. Give the candidate time to breathe, and only if they want help, do I step in. Sometimes candidates come up with different ideas that I've never seen, so it's better to let them fully form their ideas rather than me guide them into a direction that I want them to go. Then that turns into the candidate having to try to guess what answer I'm thinking of, as opposed to the candidate trying to solve the problem their way, and that is completely the wrong approach.
To all interviewers, as someone who is going through interviews right now, please:
If they're headed down the wrong path, still give them time to breathe or figure it out. Them figuring out that they're wrong is also signal.
If they have a bug in their code, let the bug stay they until they're done testing. That's the whole point, isn't it? They are supposed to find their bugs and to present a final answer.
Also as a bonus request, if you have multiple parts to a question, let them know ahead of time. Don't spring it on them afterwards. People try to time how long to spend on a question, so it's better to give them a head's up that they need to finish this in about 30 mins in order to get a crack at the second part of the question.