Joel comes down on the current status quo in CS education:

Joel Spolsky: All the kids who did great in high school writing pong games in BASIC for their Apple II would get to college, take CompSci 101, a data structures course, and when they hit the pointers business their brains would just totally explode, and the next thing you knew, they were majoring in Political Science because law school seemed like a better idea. I've seen all kinds of figures for drop-out rates in CS and they're usually between 40% and 70%. The universities tend to see this as a waste; I think it's just a necessary culling of the people who aren't going to be happy or successful in programming careers.

He comes down a little too hard on Java since the actual language choice makes little difference, if academic institutions had settled on teaching a completely different language we'd still be having the same discussion, that today's graduates don't know their their pointers, their recursion, or their machines down to the metal. I'm not sure if this is lax academic standards or if the best programmers are being scooped up by large corporations such as Google, but it is indeed getting harder and harder to hire good programmers: good embedded programmers more so.