When writing yesterday's post, I re-read Netflix' "Culture" Slide Deck and I began noticing something they have in common with Google, which is that to work there you already have to be the best. Both companies have their own version of heavy filtering to discover those people who fit their model of what "the best" means. Most companies claim to only hire the best people, but Google and Netflix are have worked extra hard to actually accomplish this (I heard a podcast interview with the president of one of the big publishing companies where he effectively said that they were only looking for mediocre people, but that's just another example of how traditional big publishing is headed for the scrap heap).
What I noticed is that Netflix' culture statement specifically avoids any suggestion that the company is going to help get you there. You must already be one of the special ones or else you should look elsewhere. Google also doesn't seem interested in anyone who isn't already up to speed.
This means that both companies, and I'd guess most other companies, are relying on a combination of our educational system combined with the accidents of birth and culture to produce "their most important asset." Apologies to my friends who are teachers, but our computer science programs primarily seem to discourage the pursuit of this field ("weed out" classes are common). If they were any good at it, half of the students and engineers would be women, minorities would be proportionally represented, the rate of program dropout would be much lower, and the graduates produced would be a far better fit for the jobs they are trying to fill.
It's been this way pretty much from the beginning; the feedback system for computer science education is clearly not working. This means that Netflix and Google and the rest are hoping for some kind of serendipitous accident in order to produce "the best." As the industry develops, competition for the limited pool of "accidental best" increases. Google has had their recruiters beating the bushes even harder lately as they (and probably Facebook) have drained the pool.
The answer is that we have to make more of "the best." The training necessary to produce a good computer programmer is much more extensive and expensive than training someone to work at Zingerman's or Zappos, but that doesn't mean it can't be done -- it just seems like a harder problem because of the way we think about training. We can try to work with universities, but that's been attempted in the past and the rigid organizational structure of the university system doesn't promise anything but more of the same. But to give someone a degree and then just drop them into the deep end of the pool to drown if they are not already "the best" seems lame (I personally didn't start blooming until several years after I had graduated). If such a person doesn't get hired right away, they are likely to get a different job and drift away from the industry, a waste of educational effort.
I have been thinking about various kinds of incubators lately, especially after the trip to Poland where I talked to people who (like me) weren't that attracted to getting a regular job in the traditional sense. It would be great if they -- and those who didn't get snapped up in the first-round draft picks -- had a place they could go and "just get by" while developing ideas and learning more about their profession. A place where you could experiment and explore without any consequences when you failed. I would have loved to be part of such a place after graduating. Such an incubator could generate new companies and ideas, and also produce more polished employees, and be an environment where companies could see people in action rather than hope for a good fit after a series of interviews.
In short, some kind of intermediate place where people can go to continue their development, possibly starting new companies, or just developing maturity. I'll bet that a joint funding of a nonprofit organization that provided such places might be a far cheaper way to develop new and better programmers than our current non-solution.