Genii Weblog

Seven, or maybe only six, pieces of good advice

Sun 2 Jan 2005, 10:59 PM



by Ben Langhinrichs
Joel Spolsky has a great piece out called Advice for Computer Science College Students.  Very good stuff, centered on Joel's Seven Pieces of Free Advice (quoted below), and I agree strongly with six of them:
  1. Learn how to write before graduating. 
  2. Learn C before graduating. 
  3. Learn microeconomics before graduating. 
  4. Don't blow off non-CS classes just because they're boring. 
  5. Take programming-intensive courses. 
  6. Stop worrying about all the jobs going to India. 
  7. No matter what you do, get a good summer internship.

Read the whole essay, because it is worth it (as Joel's writing usually is), but think about which of the seven I might disagree with.  Do you agree with all seven?

Copyright © 2005 Genii Software Ltd.

What has been said:


259.1. Rob McDonagh
(01/03/2005 05:56 AM)

Hm. I strongly agree with 1,4, and 5. I disagree strongly with his REASON for item #4, though - he doesn't seem to care about anything but the effect of these evil, mandatory non-CS classes on your GPA. Personally, I think all CS majors could do with a much more intensive grounding in the liberal arts than most colleges require, and the effect on the GPA is entirely irrelevant.

I would rewrite 2 to read: Learn a core language like C or Java before graduating (because I don't agree with his opinion that the relative closeness of C to machine language is necessary or helpful, but I do agree that graduating without knowing one of the key languages well is foolish).

I think microeconomics (3) can be handy, but it certainly would not be on my top ten list of CS student needs - the key concepts can be picked up at any time with a small amount of research.

I don't know that telling people to ignore the increasing globalization of the technology industry (6) is a good idea, but I take his point that college students shouldn't make career choices based on trends that may or may not turn out to be long-term realities.

As for the summer internship (7), I'm of two minds. On one hand, an effective internship can be a major turning point in your career (see John Head's recent bio if in doubt). On the other hand, though, there are plenty of extremely useful ways one can use those summers. Travel is an education all by itself. Volunteering to help those less fortunate has rewards that transcend careers. Of course, one COULD get an internship travelling around providing on-the-spot programming to Doctors Without Borders, for example... Ok, maybe not, but I stand by the general principle.


259.2. Jess Stratton
(01/03/2005 06:05 AM)

I think a lot of those hold true no matter what your major is.. with some revisions, of course, but especially one about the internship. Can I add Number 8? Don't be so intimidated by all the hotshots that you don't speak up when you don't understand. A solid foundation is everything in CS, even before you learn ANY language.


259.3. Ben Langhinrichs
(01/03/2005 10:29 AM)

My reactions are probably colored a bit by the fact that I was not a CS major. My major (self-designed, as they let you do at Swarthmore) was "Latin American Studies", and I only took two CS courses in college, one at Swarthmore and the other an AI course at U. Penn.

@Rob - I agree with you completely about #4. His rationale is lousy, but I agree about not just focusing on CS courses. I certainly didn't worry about my GPA much, although I understand the logic.

@Jess - I've never been intimidated by hotshots, so it is probably less compelling to me, but I agree with your #8.

Actually, the point I don't agree with is #7. It may be all well and good to have internships and such to prove your interest, but if you have wasted your major already by focusing on CS courses, at least you should get out and experience other things as well. I understand why people take CS courses, but there is a lot to life beyond the realm of computer science, and I would hope people lived it more.

Incidentally, I absolutely agree with his putting #1 where it is. Writing well has seemed a more important skill than any other in my career. (Not that I write that well, but better than many in this industry)


259.4. Jess Stratton
(01/03/2005 10:54 AM)

I agree with you both in disagreeing slightly with number 5 (say that five times fast). If you are a CS major, what school would let you graduate if you HADN'T taken all the programming courses you needed? Take public speaking, take writing, take philosophy. Take anything that will help round out your education.

I don't think internships are just there necessarily to prove your interest (although you do make a great point, they are good for learning what you most definately DON'T want to do for a living). For one, they're invaluable in life-learning (business etiquette, the world of HR paperwork, corporate culture, etc), and it's also great to learn all the stuff you don't learn in college. You know - the stuff you'll actually use on a day to day basis. ;-)