By Zed A. Shaw

Go To University, Not For CS

I frequently have young programmers ask me if they should bother with going to university. I'll call it university since that seems to be the more universal term for, "Studying something serious for four years after grade 12." They ask me because they frequently run into other programmers on the internet telling them university is pointless.

They're told, "If you can already code you won't learn anything in university you couldn't learn in a full time job."

So the young programmer, who's parents probably demand that they go to school and study so as not to be a loser, wonders why bother? All they want to do is code. They could skip those annoying four years of learning and just get down to doing it like a true professional. Right now. That's what everyone else says.

Sadly, I have to agree. If you go to a university and you can already code you probably won't learn much about programming. Chances are you'll end up going to some crappy Java school that's just now realizing standardizing on one language controlled by a corporation that had no clue how to actually turn a profit was a bad idea. For the next 4 to 10 years I think most university CS departments are going to be horribly behind, not just for the usual reasons of being out of touch with the current practices, but because they bet the wad on the wrong horse entirely.

That doesn't mean you should NOT go to university though. You should for a very simple and important reason that nobody else is going to give you:

Culture

Right now, you have the culture of a teenager who went to High School. This means you have about as much culture as a TV dinner. Your entire world has been this horribly inaccurate model of the real world where you were basically trained to be a good little factory worker. You were told to leave at a bell, come to school on time, eat at a certain time, sit in your desk, don't be creative, shut up, and you think there's really a permanent record.

You my friend, are an idiot. I hate to tell this to you, but your lack of education makes you that way. Your failure to expose yourself to literature, art, poetry, science (real science, the icky kind) has made you stupid. Another data point against you is that you learned to code and you are questioning whether you can get something out of a university education. How arrogant can you be? There's nothing for you to learn from 2000 years of Philosophy, Biology, Physics, History? Nothing?! All you need is code?

You need some culture, and Universities are great places to get that. Culture comes from studying the world humans have created from all the possible angles you can, and trying to understand it. Culture comes from the absorption and adoption of other worlds so that you can use them in your daily life. It isn't about acting like you're a rich asshole, but more about having a depth and breadth of human knowledge.

This is what Universities do. They do not train people for jobs very well, they train people to think, and hopefully think for themselves. Universities are the last place where people actually attempt to expand human knowledge through research and are willing to teach you their subject. It's the one place where you can go study something entirely and totally useless like Art History or History and Philosophy of Science and nobody is going to ask you why.

This is why you go to a University and also why you should not study Computer Science. Except for a few places like MIT, Computer Science is a pointless discipline with no culture. Everything is borrowed from somewhere else. It's the ultimate post modern discipline, and nobody teaching it seems to know what the hell "post-modernism" even means.

Computer science is shallow, and nearly every place it's taught is at the mercy of "industry". They rarely teach deep philosophy and instead would rather either teach you what some business down the street wants, or teach you their favorite pet language like LISP. Even worse, the things that are core to Computer Science like language design, parsing, or state machines, aren't even taught unless you take an "advanced" course. Hell, you're lucky if they teach you more than one language.

Another way to explain the shallowness of Computer Science is that it's the only discipline that eschews paradox. Even mathematics has reams of unanswered questions and potential paradox in its core philosophy. In Computer Science, there's none. It's assumed that all of it is pretty much solved and your job as an undergraduate is to just learn to get a job in this totally solved area of expertise.

Meanwhile, take nearly any other discipline and you find fascinating weird contradictions, unanswered questions, and paradox after paradox they just can't resolve. Professors spend their whole lives studying the simplest things in Sociology, Economics, Philosophy, History and Physics.

There's an envelope of knowledge so vast in most other disciplines that just when you think you've learned it all you find something else you never knew. This is what makes them interesting.

In Computer Science, you only get an expansion of the envelope when some corporation makes a new toy everyone goes crazy over, not realizing it's just like that other toy someone else came up with 10 or 20 years ago.

This is why you should go to university, but why you should not study Computer Science. You are an uncultured idiot who could learn so much from having four years to do nothing but learn, but you won't get that immersion in culture if you study nothing but computers.