I’m not saying that knowing this stuff is completely unimportant, but rather than using knowledge of algorithms as a rough signal of someone’s ability to do their (non-algorithms-related) job, it’s better to measure it more directly.
Firstly, how can we do that ? There’s no way we can grant each candidate an evaluation period that lasts two or three monhts—which is what it’d take to measure his performance directly. So, we need some heuristics.
Secondly, “is the candidate CS-literate at all” is just the kind of heuristic that we can use for this. And, IMO knowing about binary search (not necessarily by name, especially if the candidate is not a native English speaker) is a great test for this heuristic. It’s pretty much the CS equivalent of “can you form words into sentences”.
One measure is to get them to do a small project (a few hours worth as most) of a similar (but simpler) nature to what your company does. That may not be perfect but it’s a lot closer than whiteboard algorithms. IIRC research suggests that of all forms of job candidate evaluation, “work samples” such as this have the highest correlation with subsequent performance.
It’s true, but that is still a significant investment of time, both on our parts and the applicants’. Most companies implement a two-stage filter: the phone screen, where they weed out a large portion (if not the majority) of the applicants, and the in-person interview, where the applicant might be asked to solve a programming problem like the one you mention. The “what is binary search and how does it work” type of questions are designed for the phone screen phase. IMO that is entirely appropriate, for the reasons I stated above.
The use of in-person whiteboard type questions is not what I mean at all—I mean a small but realistic project for the person to solve at home on their own time with their own tools. Maybe there is a necessity for a faster screen but I’m not convinced that that particular question is close to optimal for most hiring unless programming those kind of algorithms is something you actually do on a regular basis.
I’m not saying that knowing this stuff is completely unimportant, but rather than using knowledge of algorithms as a rough signal of someone’s ability to do their (non-algorithms-related) job, it’s better to measure it more directly.
Firstly, how can we do that ? There’s no way we can grant each candidate an evaluation period that lasts two or three monhts—which is what it’d take to measure his performance directly. So, we need some heuristics.
Secondly, “is the candidate CS-literate at all” is just the kind of heuristic that we can use for this. And, IMO knowing about binary search (not necessarily by name, especially if the candidate is not a native English speaker) is a great test for this heuristic. It’s pretty much the CS equivalent of “can you form words into sentences”.
One measure is to get them to do a small project (a few hours worth as most) of a similar (but simpler) nature to what your company does. That may not be perfect but it’s a lot closer than whiteboard algorithms. IIRC research suggests that of all forms of job candidate evaluation, “work samples” such as this have the highest correlation with subsequent performance.
It’s true, but that is still a significant investment of time, both on our parts and the applicants’. Most companies implement a two-stage filter: the phone screen, where they weed out a large portion (if not the majority) of the applicants, and the in-person interview, where the applicant might be asked to solve a programming problem like the one you mention. The “what is binary search and how does it work” type of questions are designed for the phone screen phase. IMO that is entirely appropriate, for the reasons I stated above.
The use of in-person whiteboard type questions is not what I mean at all—I mean a small but realistic project for the person to solve at home on their own time with their own tools. Maybe there is a necessity for a faster screen but I’m not convinced that that particular question is close to optimal for most hiring unless programming those kind of algorithms is something you actually do on a regular basis.