I don't get the whiteboard hate. The whiteboard is no different from typing, except it's slower. The trend towards live coding is just kind of gimmicky. You have spend your time talking about the approach and the algorithm before you start writing anyway. If you're judging a whiteboard interview on syntax[0] then you're doing them wrong. It's all about the back and forth. The code is almost an afterthought.
Every live coding interview inevitably comes to a crashing halt when the interviewer wants you to actually run the code, because then it's 10 minutes of chasing syntax errors. (Oh missed a semicolon. Didn't close a string. Oh it's not add()? Must be put(). Oh that wasn't imported. Oh that was misspelled. blah. blah. blah.) Followed by another 10 minutes of sticking in print statements to debug the damn thing because you can't write a unit test, or have a debugger.
It's an equally bullshit setup. No one writes production code on a whiteboard, and no one writes production code with some dude staring over your shoulder commenting every other line about a comma or an indent style or some other trivial thing. Even pair programming isn't supposed to be that, and that's assuming you believe pair programming is useful, which is debatable.[1]
[0] I one time had an interview where the guy actually said, "Isn't it .size() and not .length()?" My response was, "Whatever."
[1] I actually don't have an opinion assuming "the navigator" is actually thinking strategically instead of saying bullshit like, "'instead' is spelled with an e-a not an a-e." Well, no shit. That's why it got flagged in the editor.
There are 3 main problems with the whiteboard tech interview.
1. It's not actually correlated to job performance. Google (and others) have done tons of studies on this, and the summary was basically, "Yeah, it's complete bs."
2. It is meant to show how a candidate would solve a problem, but it forces the candidate to follow a particular problem-solving path. Who in their right mind, when being first introduced to a new problem, cuts off all access to Google and other resources and tries to derive a solution from first principles?! Recent grads maybe, but not anyone who's been doing this for some time. It's not a good measure of how a candidate solves a problem if that's not the candidate's typical way of solving a problem. It's like to trying to see how good someone can ride a bike by handing them a unicycle.
3. We're the only industry that doesn't recognize success. At what point should the technical interviews cease? 5 years in? 10? Senior Engineer? Director? CTO? Can we really not tell if someone knows their stuff by just asking them about what's on their resume or by giving them a take-home project to submit?
The fundamental problem is trying to evaluate coding skill in an interview environment. The ability to regurgitate from Cracking the Coding Interview says nothing about whether a candidate can write well-documented, well-tested, maintainable code. It fails even more at determining whether a candidate knows when to write their own stuff vs when to use a library. It fails to determine how well a candidate can learn. All of those things are far more important skills to have.
Every live coding interview inevitably comes to a crashing halt when the interviewer wants you to actually run the code, because then it's 10 minutes of chasing syntax errors. (Oh missed a semicolon. Didn't close a string. Oh it's not add()? Must be put(). Oh that wasn't imported. Oh that was misspelled. blah. blah. blah.) Followed by another 10 minutes of sticking in print statements to debug the damn thing because you can't write a unit test, or have a debugger.
It's an equally bullshit setup. No one writes production code on a whiteboard, and no one writes production code with some dude staring over your shoulder commenting every other line about a comma or an indent style or some other trivial thing. Even pair programming isn't supposed to be that, and that's assuming you believe pair programming is useful, which is debatable.[1]
[0] I one time had an interview where the guy actually said, "Isn't it .size() and not .length()?" My response was, "Whatever." [1] I actually don't have an opinion assuming "the navigator" is actually thinking strategically instead of saying bullshit like, "'instead' is spelled with an e-a not an a-e." Well, no shit. That's why it got flagged in the editor.