Those blue-collar programmers need not only more of a vocational education, but tools to match. Higher-level programming languages help. In mobile app development that's what's driven demand for PhoneGap and newer tools like Glide, again for those common, boring apps. https://www.kickstarter.com/projects/1783091318/glide-beauti...
I did two summers in the College of Wooster's Applied Mathematics Research Experience (AMRE) program, where they paid us a small stipend and provided on-campus housing for the summer. It was run as a little faculty-advised math/comp-sci/econ consultancy to help local businesses, and it was possibly the most valuable thing I got out of college.
All without having to skimp on actual computer science and math in the curriculum. These things are supplemental, not exclusive. And of course not everyone needs to go do a full 4-year degree if they just want to get out and make software.
But those people shouldn't be in 4-year computer science degree programs. And we should stop talking about this issue as if it's computer science that needs to change. It's about making people understand their options and what they will and will not get from each. For most quality CS programs, you have to pursue the practical outside the curriculum. For a code school, you might have to do some self-exploration about common problems encountered in computer science.
Everyone needs to find their own correct balance for their personal abilities and goals.
But time and time again I find my strong theoretical grounding in computer science coming in handy. The last time I hit the front page of HN was with a blog post about how I spotted an NP-complete problem in $m+ enterprise system for insurance companies. It would have gotten to clients with unresponsive brick-like performance if they upped a couple of parameters because my colleagues didn't understand the Curse of Dimensionality and why it was important.
I'll admit that college professors can live in their own world of academic navel gazing, but there is an actual point to theoretical computer science. And the best time to learn is when you have the time and freedom from short term goals and arbitrary client deadlines. If only there were a few years we could devote to such endeavours before entering the workplace. Hmmmmm...
Maybe that's broken - more shops could sure use a good designer who understands the complexity of problems. But I don't see designers very often, and I've worked at dozens of places.