While theory does have its place, the situation raises the question of whether colleges are teaching the right skills people need to join the workforce, and what its place is amid the rise of open source learning.
raises the question of whether colleges are teaching the right skills people need to join the workforce
begs the question of whether or not a university exists to train people to enter the workforce.
I do not believe this to be the case. I think that if you are resourceful, think critically, and learn quickly you are employable in many fields. You are ready to join the workforce. If you are all of those things we can basically train you on the job. Then why get an education at all? To build knowledge.
University educations exist to expose you to knowledge so that you can use that knowledge and your critical thinking ability to synthesize solutions.
Example: Understanding algorithms and data structures + critical thinking = knowing when to use a linked list vs an array.
You can tell a programmer: "use an array for faster random element access and use a list for faster element inserts at arbitrary locations". Great, he/she might remember, probably doesn't understand why thats the case but whatever. Now in some new standard library there is a Map. The guy who actually understands data structures is now gone and the programmer doesn't know what the fuck a map is nor how to use it. Thats not a good situation.
Now if that programmer had gotten a CS/CompE education he would have the tools to synthesize a solution based on the knowledge he as about data structures and his critical analysis of what is important in the problem's context.
The programmer could receive data structure / algorithm knowledge on the job but thats not what is going to make his company money. If he comes into that job with that knowledge then he can learn the domain specific knowledge of whatever his company is and then start solving problems.
I think it is really sad that people expect to be trained in a university. It is short sighted because that training will one day be obsolete and then your fucked, and it also allows the student to shift the blame when they can't find a job. The student can rationalize it as "my university didn't train me, now I cant find a job" instead of " I don't have the skills to be employable (resourcefulness, critical thinking ability, good learner), so despite the fact that I got a 4.0 and can regurgitate shit from a book I don't have the ability to synthesize solutions so I'm useless.
Talent does what it can. Genius does what it must. You do what you get paid to do.