I have worked with 3 students/grads of 2 local schools and I've never been disappointed. The schools really dig into the core of good programming, but also encourage research and understanding into other fields. One kid (an intern) had never seen or even heard of Python. He was able to pick it up in a mater of hours and write a bang out awesome app in about 6 days. Another one had a great idea and programmed an app that we pitched to the local and state EMAs and they loved it. Both of these could be worth thousands of dollars with some polish.
Good programmers and IT start in middle school or sooner learning what they need. College / Tech School is just the polish they need to be ready for the "real" world. The problem is that we expect higher education to turn un-talented people into rock starts, and that higher education buys into it. Raise the bar for entrances and simply don't give out degrees to people who are good at taking tests only.
Personally I've failed 2 classes before just because I didn't have a Windows computer, and I was a Linux student at a Tech school. The two classes were SQL and Web programming. I was required to have MS SQL server and Adobe Dreamweaver, nether of which was in the course description. When I found this out (after it was too late to drop the courses ) I complained and the teachers told me "that is what professionals use, so you must learn it". Funny, at this point I had been the webmaster/IT guy for 2 TV stations, 2 software companies, and then had started my own web development firm. Not once had I ever used any of those products nor had I ever paid for software. I just wanted a Cert to put on my resume to show to potential clients. Waste.