Paul Graham, whose writing I greatly admire wrote an excellent bit on College recently. Being a college student myself, I found this to be by far the most interesting thing he’s ever written (and there’s quite a bit of competition there). A few things he wrote stick out in my mind:
The way to be good at programming is to work (a) a lot (b) on hard problems. And the way to make yourself work on hard problems is to work on some very engaging project.
Couldn’t agree more, and considering that I’m a geek, this one comes rather naturally. I didn’t need to make an effort to accomplish this one, it just happened for me. I guess that’s a good thing.
In fact, the amount of math you need as a CS major is a lot less than most university departments like to admit. I don’t think you need much more than high school math plus a few concepts from the theory of computation. (You have to know what an n^2 algorithm is if you want to avoid writing them.) Unless you’re planning to write math applications, of course. Robotics, for example, is all math.
Finally someone with credibility admits this one. One of the reasons I avoided the CS major was simply my dislike of math (and more importantly the dislike it has for me). It surprises people that I know how to program without a CS degree. It surprises people even more to know that I royally stink at math (just ask any former math teacher/professor I’ve had). Nobody believes that I can code because of this… well go figure I can.
The worthwhile departments, in my opinion, are math, the hard sciences, engineering, history (especially economic and social history, and the history of science), architecture, and the classics. A survey course in art history may be worthwhile. Modern literature is important, but the way to learn about it is just to read. I don’t know enough about music to say.
I agree with the one omission of a Business degree. It goes very well with a CS degree should you pursue one. Simply for the reason that just about whatever you do with your CS degree will take advantage (if not require) it. Take for example a corporate IT department. To advance, you’ll need a business background. A small company? You can bet a business degree will prove critical to your success. Startup? Hello, that is a business. Having a product is 10% of a successful company. The other 90% of it is a good business to support, continue, sell, market, manage that product. Take a look at the dot com bubble to see why Business ranks. To his credit he does mention economic history, which is also important. No matter what you’ll be involved in business if you want to succeed. Either with a startup, or with a corporation, understanding the business implications of decisions you make are essential to how you’ll be valued as an asset.
Of slightly less interest (at least right now) is the topic of Grad school, which I agree with. Though with a business degree, it has more merit than it likely will with a CS degree.
Overall a great (and recommended) read.