How to Ace a Google Interview
online.wsj.com
online.wsj.com
I am going to go out on a limb here and say that it is not working for Google the proof is in the lack of marketable products coming out of Google. While the people that work at Google are brilliant the hiring practice filters for a certain type of prejudiced brilliance. In fact by it design it favors left brained individuals with analytical minds. Put simply Google filters out the very people that could turn cool tech into cool products.
Their is no doubt in my mind that a person like Miyamoto, Land, or Jobs would be filtered out of Google's hiring process by it's very bias towards a particular preconceived notion of brilliance. Put simply it's the hubris of brilliant people making the assumption that the definition of brilliance is the characteristics that make them brilliant. The reality is that yes, there are tough problems to solve, but not every day is filled with complex riddles. Sometimes less tangible brilliance is required and these practices leave a company devoid of those individuals.
For me personally I ask two questions when I hire and they have served me well, I ask show me something that you have built and show me the routine that you are most proud of in that code base. Passion and creativity as well as other less tangible brilliance will be displayed in talking with someone about what they have built.
My encounter with the Google hiring process involved being asked to regurgitate from memory constants from C standard headers. That was enlightening as to the sort of skills valued by the ubermenchen.
If a person brings in a working application and shows me that they have delivered and can walk me through logic that they have created, then I can get a feel for a variate of traits that that person posses, further, they can't BS their way through it, they can't grab code off the net and show it and competently tell me what they did. A person that walks through my door and shows me that they have delivered to production a working application instantly scores much higher than an individual that knows obscure language nuances that we all know on this board are hardly ever uses and if you do you a) look it up and b) wrap it behind an API so that future programmers are not having to deal with the obscurity. Many times developers, especially younger developers mistake cleverness for elegance, testing for cleverness does not guarantee that you will have elegant solutions.
On a related note to this subject, there is a quote from Einstein that I really like:
Everybody is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid.
The premise is that most everybody does have something that they excel at, but that we as humans judge intelligence and productivity in our own image. As such we discount the intelligence of others due to the fact that it is alien to our own. For some that discounting can have a profound effect on those individuals ability to excel.