OK, ignore last 5 posts, that's beer wisdom
Continuing with programming interviews, the second major problem can be summarized as "probability". One fallacy when applying to jobs is that the employer thinks "he's only hiring the best" and the employees who passed the interviews and get hired do not consider themselves lucky but extremely capable.
When you apply for a single job along with 1000 other suckers, as it's the case with superstars like Google or big banks, there are several things in effect:
- 50% of them are "below average" and 50% are "above average". Average of the guys who apply, not of programmers in general, and I suspect some 90% of the applicants are *above* industry average. So leaving aside the 100 "below industry average", you're already competing with 900 above it.
- 10% of them are very good. As in fit for any practical purpose, really. But that still means 100 freaking gladiators battling for a position where only one survives!
So from this point on it becomes a pissing contest who gets selected because frankly, you could just throw a dart at the people names and hire the one you hit. And I suspect it's one of the reasons that secrecy and ambiguity enters place, the interviewers just don't grok that the process is no longer deterministic at this point.
Even if you're one of the 100 tough guys, getting hired is just a pure gamble. A gamble with 1% odds!
Couple that with the amount of time invested in completing various stages of the interview and you get a situation where unless you're desperate or simply don't have better things to do, it's just not worth considering.
At least not for me, I prefer working on my options trading software and researching strategies than wasting my time on interviews. And no, it doesn't mean I'm not very capable if I get rejected, but it does mean I'm stupid if I don't realize there are much better uses for my time than playing the corporate interviews lottery.