I believe the purpose of interview is to find out what the candidate knows and NOT what the candidate doesn't know. We try assessing the candidates on four broad levels:
1. Skills (C/C++, DSP, Data-structures, etc.,)
2. Knowledge (Insights, how well the candidate can apply the skills to the problem at hand, ability to trade-off, finesse, etc.,)
3. Attitude (team vs self, taking initiative, self-awareness etc.,)
4. Values (something that is the core/character)
It is obvious that it is easy to assess someone in the above order. It is also obvious that it gets harder and harder to train someone for say attitude compared to say train someone for a missing skill (provided other things like academics and other vitals meet NI's standard).
I get annoyed that we often get stuck at skills, saying that guy could not solve a simple problem (often in the area that the interviewer loves - it doesn't matter whether that particular area is required as a part of the job or not),which is more like finding what the interviewee doesn't know. Often times we would not have bothered to check what is the kind of problems that the interviewee might have solved in his prior work, for it requires an amount of intelligence to first understand the work the interviewee has done and ask meaningful questions and then assess - finding out what the candidate indeed knows.
While we often get feedback on the quality of hires, we will never know the mistake we might be committing by eliminating someone quickly because he could not answer our pet question.
What do you think?