Technical interviews should be more about doing due diligence over someone having the knowledge they say they have... not some sort of game people write books on how to train for it...
Yet they aren't, technical interviews are mostly bullshit CS questions which you barely use in day-to-day programming. And it isn't like CS knowledge is all you need to be a good programmer. Technical interviews are exactly what you say they are, a game.
And every game has rules that can be exploited. This guy's mistake was to try and completely break the game, which would have left Google with no alternative but to invent a different game.
I remember going through this process for internships and wondering how I was supposed to figure out all of these weird puzzles on the spot. Then I made a few friends and we all just traded questions with each other. We'd spend weeks on the problem and pretended we just figured it out.
Also the interviewers are separate from the people making the hiring decision, which I think is a good thing.
My programming hygiene and software design skills? You can see that more reliably from my Github work, but then recruiters and interviewers almost never take the time to look at that. Instead, we're stuck relying on a shitty test, not years and years of hard work and data, because it's easier for you to evaluate. Good job everybody.
You have quite elegantly avoided saying which parts I got right and which parts I got wrong. In fact, you haven't said anything specific, probably because you aren't allowed to?
I think I have a poor memory myself, yet I'd say I'm able to design efficient algorithms and evaluate their costs. Of course I wouldn't expect anybody to devise a publication-worthy algorithm within 45min. But most real world problems can be solved by standard algorithm-construction techniques, without any original research nor genius strike. It's part of the skill set of the trade, not something to learn by rote.
About recruiters and interviewers taking time to look at stuff, when I applied they even asked me for a list of all the college courses I had taken. Interviewers are encouraged to look at your past projects and enquire about their technical details.
I'm not convinced evaluating someone based on the quality of their code in GitHub is fair, though. The candidate might have improved their skills since writing that code. Or it could have been originally written by someone else for all I know. Also, not all candidates have been in a position to have code publicly available. Of course, we're not talking about evaluating Chris Lattner types here; that's not the level I interview anyway.
The interview's supposed to, in theory, hint at future performance as an employee - too many intensive study guides used by too many candidates, and it'll just end up reflecting how much cramming the candidate did for the interview.
An applicant who is an expert on gaming their system is probably scary to allow into the system.
"This is my multi-month study plan for going from web developer (self-taught, no CS degree) to Google software engineer." [2]
The author presents two conflicting pieces of information. In [1], it seems like he has accomplished this goal of being hired. In [2], he is working towards it and has not clue if anything presented will work.
[1]: https://googleyasheck.com/presenting-at-code-fellows/ [2]: https://github.com/jwasham/google-interview-university
Without reading this quote, each post makes it seem like he knows everything about how to get hired. With the quote, each post reads very differently.
And it's not that he interviewed and didn't get the job...they didn't even let him interview, not even the phone screen. That's pretty rough.
[1]https://github.com/jwasham/google-interview-university
[2]https://googleyasheck.com/presenting-at-code-fellows/
[3]https://googleyasheck.com/why-i-studied-full-time-for-8-mont...