Two Types of Programmer

pudge on 2007-09-02T14:30:01

From Brent Simmons:

There are, roughly, two types of programmers. One type was in the computer club at high school and got a computer science degree (or two or three). The other type, well, didn't--they were English majors, college dropouts, busboys, artists, odd-job-doers. (Cue Captain Renault: "That makes Rick a citizen of the world.")

My advice to young people is to get a computer science degree, if for no other reason than you can avoid those odd jobs and get right to the programming. And it also gives you an early chance to find out if you were, in fact, born a programmer.


In my experience, in general, I prefer working with individual programmers who didn't get a CS degrees. That's not universally true: there are some CS-degree holders I love to work with. And it doesn't imply a particular causal relationship: it could be that people I enjoy working with are simply those who are less likely to get a CS degree, rather than my enjoyment stemming from the fact that they didn't.


Reverse order for me...

sigzero on 2007-09-02T17:21:05

I started into programming and now I am going back to get the degree. Why? I do think that you lose some of the underpinnings of CS when you "do it yourself".

Agreed

educated_foo on 2007-09-02T22:20:40

Agreed. The smartest programmers I've worked with have been physics majors, the most interesting probably Liberal Arts or "other" types. Don't waste your time studying Computer Science if you just (think that you) want to do Programming. There are much more efficient ways to become a decent programmer, which are compatible with pursuing other interests and seeing more of the world.

Re:Agreed

bluto on 2007-09-04T15:25:56

I'll admit, I've worked with one guy with a BSCS+MSCS that didn't know how to program his way out of a wet paper bag, but you are absolutely wrong saying that getting a CS degree is a waste of time if you just want to program.

I started teaching myself when I was a young teenager, and all I've wanted to do since then is program. For a while I seriously thought about going into other fields (strangely, physics was one of them), but I drank the cool-aid and chose CS. I learned a huge amount of practical programming with both my degrees (MSCS almost 2 decades later) from people with expertise that I couldn't pick up on my own. Sure, there's a fair amount of stuff you won't use, or at least think you won't. During my MSCS, I had the opportunity to learn from two guys that were the best in their field. I wouldn't trade that experience for a degree in any other field or some "more efficient" way of becoming a good programmer.

Re:Agreed

educated_foo on 2007-09-06T05:02:49

I think there's a huge and crucial difference between "wanting to program" (i.e. to finance other pursuits) and "loving to program" (i.e. what you seem to express). You probably know far more about programming than you need to in order to get the job done.

Anyways, here is a sample undergrad curriculum. I'd say about half of it could be skipped without significant loss in programming ability: about half of the math requirements (e.g. calculus), the physics, almost all the hardware/EE, and some of the random electives. Just the "hello computer" courses, algorithms, a couple of systems courses, and the senior project would probably be enough.

10 types??

ddick on 2007-09-03T05:57:25

which type is for people who find the "10 types of programmers" joke funny? or do both types find it amusing for different reasons? :)