I read all of this and I have to say I’m very impressed with the completeness of your exploration of this topic. So many will be served by just your references to resources out there alone.
However, this post illustrates one of the biggest flaws in novice programmer thinking: working for one of these companies is both a desirable goal and measure of one’s success. It just isn’t. I don’t care how many whiteboard interviews these companies force those bending a knee in deference. It will never change the fact that these interviewing processes are completely and totally flawed methods both of establishing competence and compatibility with the company. Thankfully there are a LOT of companies and recruiters now realizing this. Find one.
Any company worth working for WILL NOT have you code on a whiteboard, period. They will have an initial interview and then make time for you to work with a team during which time you can prove yourself ON THE JOB, working in your way with others. This is a time-tested, proven way to find the best people. Companies that know this are the smart ones, yes, smarter than the big ones you mention. Newsflash: those companies are really stupid in many ways and word-on-the-street in Silicon Valley confirms this (you just don’t get to hear it often).
The reason Google, Facebook, and these other hermetically sealed happy-towns of colorful logos and spinning hats are the first thing real developers LEAVE as soon as they pay off their huge college debt is because real developers realize very quickly that real change in the world is NOT happening at these companies, that their contribution is NOT as great as it could be elsewhere. It is happening in startups that matter, in enterprises that are not on everyone’s list of places to squish your face to the glass looking in to get into. Substantial change and contribution to the world is happening every day in companies that are NOT these. Do not rule them out. Do not make the mistake of thinking you (or anyone) does not matter who does not work for one of these McDev shops.
Google, Facebook and the like are terrified inside that you will discover this truth. They poor millions into maintaining the false facade they have so heavily invested in. Now you at least know. Be your own developer. Create your OWN company. Look harder and beyond these big obvious, marketing-driven, often soul-less companies. There are amazing opportunities, and you deserve to find them.