What this suggests, capitalistically-speaking, is that there is insufficient supply of developers and the supply that does exist can be most effectively employed by large companies. Is the problem that startups are not an efficient way to use scarce developer resources, because there are too many of them producing too little value? Or is it that the supply of developers is too small?
A YC apprenticeship program, with in-house coaching, could play a similar role to traditional union programs.
There is also the developer !== developer problem.
I've worked with terrible developers, developers I'd trust to maybe write a blog for my cat, developers I'd trust on an important system but they all called themselves developers.
The old joke used to be "You know what they call the guy with the lowest passing grade in his medical school? Doctor".
I'm excited by projects like http://darklang.com/ that are looking to make basic development more widely accessible, rather than requiring esoteric skilled labor mostly done by people who don't actually have the skills involved. It would be great if the industry got to the point that people coming out of school could be a net positive.
A YC apprenticeship program, with in-house coaching, could play a similar role to traditional union programs.