When interviewing for programmer positions, why do people have to solve algorithmic questions on whiteboards that have little resemblance to what people will do in their job?
Here is Gayle Laakmann McDowell in “Cracking the Coding Interview”:
False negatives are acceptable, but false positives aren’t.
[The firm is] far more concerned with false positives: people who do well in an interview but are not in fact very good.
- Problem-solving skills are valuable.
Basic data structure and algorithm knowledge is useful.
Other interviewers justify the reliance on data structures and algorithms by arguing that it’s a good “proxy.”
Whiteboards let you focus on what matters.
Whiteboards also tend to encourage candidates to speak more and explain their thought process. When a candidate is given a computer, their communication drops substantially.
- But it’s not for everyone or every company or every situation.
This actually reminds me of consulting interviews.
I picked up the book as I was curios what a programmer is expected to know. You might also like the book if you enjoy solving coding puzzles and the general interviewing advice is good. The book also has a nice introduction to the big O notion of computational complexity.
The examples are usually written in Java, but just knowing Matlab or some other language it’s easy to understand what the code does.