I’ve been reading Hackers and Painters by Paul Graham recently, and there was 1 idea that particularly struck me. In fact, it was something I discussed with my friends before.
The CS curriculum is outdated for this world. The real world. The stuff that they teach in there is outdated.
The best example I have. They require us to have a knowledge of stuff like BCNF and 3CNF and tell us that that should be the way to design databases. Seriously?
Designing your database to those specs might please your IT-illiterate manager, since it meets some kind of spec that is recognized among researchers, but any developer worth his weight in salt knows that that is the most retarded way to design a table. It saves space, but who the hell cares about space these days? Space is cheap, processing power on the other hand isn’t, and cannot be scaled easily. Read here if you want to know more.
What computing schools need to do, to stay relevant in this world, is to split their CS streams into 2, the ‘prof/academic’ stream and the ‘real-world’ stream. And get people who are decently successful in the real world to teach in the ‘real-world’ stream, not profs, because they are the ones who really know what is going on in the real world.
No offense to the profs, but most of them have no idea what the real world needs, nor what the real world really is. The real world needs people who can learn on the fly, and not have to take a module/course to learn something new, and people who can react to changes.
And SoC is not creating enough of these people. Because it is focusing on the wrong things.
Then again, maybe SoC profs just want to create more people like themselves, and not people who work in the real world.