In my own current position, I would not have gotten the job if they had interviewed me then like they interview new hires now.
Don't know how to find and recover active but deleted files? Goodbye. Don't know how to follow strace around a distributed environment? See ya. No idea how the elevator works? Why are you even applying?
I know how to do all of those things now, because I asked questions of my colleagues and the internet. I'm now the lead developer, not because I knew everything coming in, but because I am able to learn.
Imagine you hired some Cobol developers some decades ago, and therefore you would still be stuck using Cobol on your projects.
How does one become an experienced Pascal developer? That's somebody else's problem.
What about just some things. And in most cases, it's not learning for the first time but brushing up on the topic. To expect people to have encyclopedic knowledge of every edge-case problem your company deals with on a day-to-day basis is ridiculous.
There's a difference between things you know you don't know (and therefore can google), and things you don't know you don't know (and therefore will not google).
If you're asking interview questions that can be googled in 20-30 seconds, you're wasting your time and theirs.
An interview should be the same as a discussion about concepts you'd have with a colleague. Does the person know the concepts? That's all that matters.
If you don't know about these data structures or algorithms, you won't even know where to look.
http://slady.net/java/bt/view.php?w=800&h=600 http://en.wikipedia.org/wiki/B-tree http://en.wikipedia.org/wiki/B%2B_tree http://guide.couchdb.org/draft/btree.html
Now if you make understanding B-trees a prerequisite for the job, I can at least learn it ahead of time for the position.
You can require knowledge without using dealbreakers like "you must know b-trees". A better alternative would be to say "you need to know 30% of the following group of things: b-trees, tcp/ip vs udp, ..." and so on.
I don't mean to imply that this wouldn't be acceptable to you. I do "know" that I've been screened out after giving an answer like this (to the extent that I can really know the reason, legally they aren't allowed to say).
Recognition is easier than rediscovery.