I think the complaint that programmers pretty much never have to think about code under pressure is a fair criticism. The whiteboard really puts you on the spot. But if it's your company and your hiring managers are playing a game of gotcha on the whiteboard, you need better interviewers.
Whiteboard coding interviews are one thing that I have to go out of my way to practice for and get better at over time when interviewing (ie over the course of a few failed interviews). I don’t feel more skilled or smarter by the end of the set of interviews, but I inevitably do better at these kinds of problems. Should the interview be testing my competency at day-to-day work skills or how well I’ve practiced my interview skills, because whiteboard coding problems only achieve the latter.
I do coding interviews in the following manner: I select an interesting problem from a book. I personally complete the problem, measuring what was challenging and the time it took for me to complete the problem. I check the textbook solution, making notes of how my solution differs from the textbook's. If I like the problem, and if it fits with the development role, I invite the candidate to bring a development laptop, I give them a hard time limit of twice the time it took me to complete it, and have them share their screen while they attempt to complete it.
Afterwards we test their solution, I ask them some questions about it. I grade based on code taste, the number of hints they need, and their completion time. All candidates for a position are given the same question. Performance in coding interview is about two third's of the overall candidate evaluation. The ability to sit down and write good code in a time constraint manner is a very important part of being a developer.
You have a good point, I noticed this about myself as well. However, I don't think whiteboard interviews are special in that regard. I noticed that I got noticeably better at the "sit down and code me a simple web API endpoint" interview, and I got noticeably better at the systems design interview, and so on.
I do think that whiteboard interviews tend to lean very algorithm-heavy, which doesn't reflect the role's actual day to day. And practicing algorithm interviews really does feel like an inefficient use of time unless your role truly demands algorithmic proficiency (like if you're a graphics dev).
which also means the team might consist of people selected by using this metric. this is a good signal ;-)
It's not; I couldn't agree more.
In real life when using engineering "skill", not only am I not anxious/stressed by trying to write on a whiteboard, but I'm using my laptop, with my editor, as well as access to man pages, docs, and google to look things up.
In addition to the overemphasis of performance responses, I think "how much do you know from memory with 10 seconds of thinking" vs "how much do you know with 10 seconds of google" is useless. The only fairly complex datastructures I can perfectly describe from memory are the ones which I used most recently...