Great post by Walter Bright over at Doctor Dobbs (always my favorite programming mag) about what college classes you need to be a programmer. While there are some I disagree with - Lori thought she didn't need calculus for programming either, but then we went into Geographic Information Systems (GIS), and guess what? GIS - at least the vector parts and distance in raster parts - is calculus and geometry with a database attached. Lori picked it up quickly of course, but it could have been less painful.

I would add OS design to his list - knowing the architecture and knowing software design theory does you little good in the age of Virtualization. And I'd remove Jet Engines, replacing it with military history (because security for sure shares a lot with military history, and much of CS could learn from it) - in the same spirit that he included Jet Engines ;-).

I would also swap the location of physics and business accounting in the list - not having physics doesn't limit your career options, not understanding the basics of how businesses work will limit the options of the most geeky of us eventually.

And I'm a fan of learning one of each type of language - he included assembly language, I would add a low-level compiled language like C or Pascal and a higher-level language like Java or C#. Not because you'll use that particular language, necessarily, but so that your entire experience with them isn't with the theory of their workings that you picked up from that one chapter of your compiler/interpreter design course.

Anyway, I'm sure you'd all customize that list also, but thought I'd bring it to your attention. Read the bit on economics, it is both funny and true.


Share this post :

/reading: Sept/Oct Archaeology Magazine. A good read this issue.