This is something I've often thought about. Not having a degree in computer science, engineering, or math, I've found myself behind in theory which, at times, has led to my implementing less than optimal solutions. Of course, I've also worked with people who have the degree, but can't solve a business problem.
There's definitely a need to know theory and understand different algorithms (still a weakness of mine), but there definitely needs to be more real work as well. I'd love to see more of an apprenticeship model, where a morning may be spent in class learning theory and the afternoon working at a business along side a seasoned professional.
Jack Corbett
Consultant - Straight Path Solutions
Check out these links on how to get faster and more accurate answers:
Forum Etiquette: How to post data/code on a forum to get the best help
Need an Answer? Actually, No ... You Need a Question