When I started I thought it'd be fairly short. It wasn't, and much of the difference wasn't theoretical CS stuff—it was "stupid computer shit". Tools, the command line, daemons, implementation details for a dozen key technologies, debuggers, and on and on and on.
I think I'd underestimated how much all that time I'd spent futzing with DOS to make my games work, or playing with operating systems, or running a message board for my friends, and so on, had provided the foundation for my success as a developer. The hours weren't spent optimally, but they were spent in great quantity, and most people didn't grow up with that kind of running head-start into the industry. It's a giant hurdle to overcome.
A great way to spend more money on education would be to target lowering high school graduation age to 17, with at least a year of training oriented education for students that weren't interested in an academic track and a faster academic track for students that did want it. The idea that everybody gets value out of Algebra II is pretty confused and at my Big 10 university, I often knew more history on days I hadn't done the reading than most of the people in my discussion class (that is, our "well prepared" high school students aren't coming out of high school well rounded anyway, lets drop the pretense).
http://thehill.com/blogs/congress-blog/healthcare/266610-sho...
(and of course it isn't necessary to immediately double the number of slots in order to soak up the extra MDs)
That in no way suggests that there isn't a role for the hyper-educated / trained doctor, or for even more highly trained specialists. The point is just that not every situation requires them.