The other day I was skimming through my feed reader and I came across a post by Leah Culver called A Computer Science Degree Doesn’t Hurt (Much). Having my own opinions about CS degrees (and degrees in general) this really caught my attention. Not surprisingly, I can’t help but disagree.
Like Leah says, you spend years in classes you don’t need. Writing an assembler in assembly for hardware that doesn’t exist is not a useful way to spend time. Poring over parentheses to write an artificially-intelligent tic-tac-toe game in ((scheme)) is not either. Learning some vague high-levelisms of operating systems isn’t going to help you when your web server is serving 1000 hits per second and you’re bumping up against the open file handle limit.
The skills you need to build real-world applications don’t come in school. In fact I don’t even think a CS degree gives you the faculties to learn this stuff. I can’t tell you how many people I’ve met with a CS or CE degree that couldn’t do ANYTHING practical. I’ve interviewed them, I know this. Yes Leah, coding problems are hard. They can be fun. They’re not real though. Give your average CS major a programming problem and they’ll hammer out a solution in some obscure language. Ask them to architect the design of a high-traffic ad server with a db backend and they will run for the hills.
So why does the degree hurt so much? Because all that time you’ve spent in school is lost time. You’ll never get ahead of it. While the CS major was banging their head against some contrived optimization problem, the self-starter was re-writing a high traffic web application from scratch. While the CJ major was wasting their time in a college physics class, the hacker was learning how MySQL indexes affect in a real production database. While the CJ major is still trying to un-learn Scheme and Fortran and Java, the motivated hacker is hammering out a solution in Perl because its the best tool for the job and he’s been using it to build tools for all the years you spent in college.
Try it, get out in the real world. I absolutely PROMISE you that plenty of interesting problems will get thrown your way. They’ll come way out of left field and they will be a lot more fun to solve than something you’re going to get graded on. The tools you need to solve them are available to anyone. Especially if you don’t limit yourself to being a “programmer” who doesn’t know anything about the system underneath. Like I said, when you start banging against the open file handle limit or kernel memory limit, you’ll know you’ve arrived.
Our higher education system is flawed, most critically when it comes to fast-moving targets like Computer Science. While I doubt it will be our generation to stand up and make a change, I hope it happens soon. In the mean time, go do your thing. If you want to drop out and actually pursue something, don’t let anyone stop you.
P.S. It might be unfair to point out that Leah’s blog is toast from being dugg, but what the heck. Mine wouldn’t go down…. Got Experience?
