top | item 1316837

Advice for Computer Science College Students

28 points| s-phi-nl | 16 years ago |joelonsoftware.com | reply

23 comments

order
[+] tokenadult|16 years ago|reply
"Most colleges designate certain classes as "writing intensive," meaning, you have to write an awful lot to pass them. Look for those classes and take them! Seek out classes in any field that have weekly or daily written assignments."

Good advice here. Get in the habit of WRITING (in a form that keeps an archive, that is email preferably over unarchived chat) to professors about any issue that comes up in class.

[+] btilly|16 years ago|reply
The title should be changed to say it is from 2005.
[+] driekken|16 years ago|reply
2005 or not it's still valid :)
[+] s-phi-nl|16 years ago|reply
My apologies. I went to bed shortly after posting this.
[+] d0m|16 years ago|reply
I've never been a fan of: while (s++ = t++); I think it pretty just make the code harder to read. (Ok, maybe on some compilers it can be faster). I mean, everytime I see a line like that, I always assume there's a nasty bug hidden in it and I spend lots of time looking at it to be 100% sure there isn't.
[+] InclinedPlane|16 years ago|reply
There is a nasty bug in it, a buffer overrun bug. If, for any reason, t is not properly null terminated, then you'll have a problem. If, for any reason, s is not at least as large of a buffer as t, then you'll have a problem.

How bad of a problem? Well, quite potentially the worst kind: a serious buffer overflow problem that could result in a remote execution vulnerability. This is just the sort of thing that gets patched every Tuesday as engineers come to the "oh shit!" realization that yet another bit of crusty code using some ancient "clever" (actually lazy) idiom has been sitting around just waiting for some ne'er do well to take advantage of it and create yet another 400,000 system botnet.

It's good to have a solid knowledge of C programming fundamentals, but actually writing good, safe C code is non-trivial. Moreover, the mentality that one can just slap together some "efficient" C code and ship it out the door has resulted in more heartache and more sysiphean turd polishing than almost any other single software engineering mistake.

[+] Osmose|16 years ago|reply
In regards to summer internships:

I'm just about to intern for a second year Electronic Arts. If you saw a resume with two consecutive internships at the same place (same position and team, too), would you think better or worse of it as compared to someone who did two different, fairly big-name companies?

[+] gte910h|16 years ago|reply
Two consecutive internships looks no worse or better than two different internships.

Now, two different internships might give you completely different experiences, or depth as you return to the same project as before if you go back to the same place. But those things are both valuable in and of their own.

In short. Enjoy EA. Don't worry.

[+] dagw|16 years ago|reply
Working twice at the same position and team indicates that someone thought you where good enough to be worth inviting back. Personally I wouldn't see that as a bad thing.
[+] ohashi|16 years ago|reply
Depends on what you were doing and what your supervisors/colleagues had to say about you. I worked at company Y every summer because my dad is the boss < I worked at EA every summer because they really wanted me back after the first.
[+] philwelch|16 years ago|reply
If I interned at the same place, position, and team two summers in a row, I would certainly hope that it would lead to a full time position there.
[+] whimsy|16 years ago|reply
This is relevant to my interests - I had two consecutive internships at Yahoo.
[+] WarDekar|16 years ago|reply
Ha, I almost posted this about the same time you did- I got to this page earlier today when I was led on a hunt started from a post on HN about hiring- I wanted to know about hiring CS students as they were undergrads and this post was in google search results.

I thought his shot at Facebook in one of the opening paragraphs was funny- just in general it's interesting to see how so much has changed in just a few short years to where a leading blogger could be so wrong about what was to come (nothing again Joel).

[+] alanh|16 years ago|reply
I am in a logic class that sounds just like the Dynamic Logic one Spolsky describes.

I hate it.

The homework two weeks ago? Prove that p = !!p. I gave up.

[+] gte910h|16 years ago|reply
Honestly, the logic and proofs of CS isn't a big deal on the proof side. However the big O issues and sorting are a big deal.

If you get into languages, the language part of the proofs are important, but only insomuch as recognizing/identifying if something can be parsed with an X or Y or Z.

[+] warwick|16 years ago|reply
Just claim to be an intuitionist. Depending on your profs sense of humour, it's a valid answer.
[+] wuputah|16 years ago|reply
Where is the downrate button? Sigh.