I was reminded of when I was at Stuy, I could focus much more on doing well in school because I didn't have a lot of conflicting priorities. I did have some things I needed to do, such as chores, but for the most part, I could spend a lot of time on schoolwork without worrying that I needed to do something else. Also, I didn't have conflicting priorities with regards to what was assigned – it wasn't as if I had to prepare for the possibility of tests from teachers I didn't know or topics I wasn't very familiar with (that were not covered in class).
I think that the culture of Google is sort of like high school in that regard – because so many other things are taken care of (meals, laundry, etc.), it gives the engineers more time to dwell on these matters that most people can't afford to spend time on. When I was at AV, if I'd spent time thinking of all the different types of algorithms I might use to solve a given problem, my management would have been upset with me because I was not solving their problems. I had to pick solutions that were likely to work over a broad class of situations, particularly because there often wasn't time to rewrite something. I had to move on to the next thing.
I think that in the AV engineering groups, there was more opportunity to do that type of brainstorming. I remember during the brief time I was part of the index build team, I attended some meetings, at which design issues were discussed. It was very refreshing from the sorts of things that used to come up at my group's meetings, like debates over whether cookies should be used to determine the number of unique users, and so on. I missed having that type of interaction, which I think is important to the continued professional development of a computer scientist or software engineer. But as time went on, even the AV engineering groups were forced to just implement something and move on to the next thing, because so many people had been laid off and there was no time to ponder what might be a better way of doing something.
I'm not saying that Google should change its hiring criteria, but they should be very honest and upfront about what types of people they're looking for, and why it's difficult to find them. The US Congress is trying to address the issues of a (presumed) lack of CS or SE expertise, not a lack of geeks. Google (and all the other companies complaining about a lack of qualified applicants) should just be honest about what they're looking for, so there can be a meaningful discussion in the US Congress about rectifying this situation. Put it to the voters – should the US Congress go to great pains to accommodate the specific staffing needs of companies?