If writing a binary search tree thingamabob isn't relevant to the job they have 10 years experience in, why is the answer to that question so important at the goog?
Why not ask questions that are relevant to the experience the candidate does have ...
EDIT: Sorry, I really should have avoided making a comment at all. Google's hiring practices have been debated here a billion times and I can't really add anything that hasn't been said before.
Google wants people who have a strong understand of CS fundamentals (which includes knowing core data structures). Google also wants people who are good coders (which includes being able to translate an idea into code).
A good coder who knows CS fundamentals should be able to do that. Thus, not knowing how to implement a binary search tree is revealing.
And, really, the question is rarely "implement a binary search tree." It may, however, be to implement a binary search tree which support a getMedian() operation.
While I'm lucky to be way from the corporate world for the last few years, I'm still very interested in practises such as hiring and interviewing.
But my perception of Google interviews is that it's very picky about some areas but leaves huge gaps.
Let me guess, the false positives are the ones that know big-o for all sorting algos but can't implement them.
Or create a "Car" class inheriting from Wheel, Engine and Door
The vast majority of candidate packets I see are well rounded in the interview space (IE don't just test theoretical aspects, but practical stuff as well).
There are occasional ones where one or more interviews is unhelpful or useless.
It would be very odd to see an interview where someone started out by asking about algorithm complexity, rather than "how do i sort this", "code it", "great, how fast does that run", "can it be made faster" or something similar.
I have never seen anything close to the last one.
Most false positives i've seen are culture fit or motivation issues, not technical capability ones.
"Most false positives i've seen are culture fit or motivation issues, not technical capability ones."
Interesting. Well, "everybody wants" to work at Google, but usually the way companies work is opaque to the outside (but then again, it's supposed to be like that usually)
Even though the interview is certainly intended to remove people that may not be a great fit (because of the time it takes, for a start) maybe something could be done in that respect
I've seen it all and some technical people really aren't a fit to certain cultures. Not to mention some work environments are the opposite of Google and bringing people from those environments may be a challenge.
But seriously, interviews are very very subjective and interviewers have very wide latitude to ask anything they want. Individual interviewers pick the questions they'll ask, and everyone has their favorites. I have a friend that has a phone interview question that I probably couldn't answer correctly with an hour and a whiteboard: I just don't get it. So if I got a few more interviewers like that when I applied, I would not be working for Google, even though I'm theoretically "smart enough to work at Google".
Furthermore, you may be really smart, but that may not come out in the interview. If your interviewer asks you "what's two plus two" and you answer "four" and the rest of the interview consists of you making a latte, the interviewer may write "My candidate knocked the question out of the park. I asked him what two plus two was and he got the answer instantly. And then he made me a cup of coffee! Must hire!" When the hiring committee reads this, though, they might not reach the same conclusion: "It's great that he got an easy question and can make coffee, but is that really what we want?" In that case, you didn't mess up the interview at all: Google did.
So anyway, one should not be disheartened if they "fail" a Google interview. Hiring is a fine art and we are constantly learning. Please re-apply if you are interested in the work we do, and always give feedback to your recruiter. It's OK to call your recruiter after the interview and say "I was being hired to work on TCP optimization and they asked me questions about Java dependency injection frameworks, even though I said I've never used Java."
Apparently there's a period before you can apply again (can't remember how long this is, 1 year maybe) but then again feeling like every contact you make goes to /dev/null is not nice.
Thankfully I know better today about what's it like to work at Google and probably won't be applying again (not that I find it bad, but it is not what I want).
From my experience the average quality of engineer at Google is very high. I think it simply indicates a different hiring bar.