Advice for Computer Science College Students(joelonsoftware.com)
joelonsoftware.com
Advice for Computer Science College Students
http://www.joelonsoftware.com/articles/CollegeAdvice.html
10 comments
The title should be changed to say it is from 2005.
2005 or not it's still valid :)
He is not saying it's invalid, he is saying it's old (and probably posted here a couple times before).
My apologies. I went to bed shortly after posting this.
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.
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.
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.
That's not a bug, that's strcpy. You are being hysterical.
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?
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?
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.
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.
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.
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.
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.
This is relevant to my interests - I had two consecutive internships at Yahoo.
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).
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).
I'd like to see a list of recommendations like this for entrepreneurs or would-be entrepreneurs in college (something like http://www.paulgraham.com/mit.html).
I wonder what Caterina Fake would say about Joel's list (http://www.caterina.net/archive/001234.html), assuming the hackers he's speaking to are also entrepreneurs?
I wonder what Caterina Fake would say about Joel's list (http://www.caterina.net/archive/001234.html), assuming the hackers he's speaking to are also entrepreneurs?
[deleted]
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.
I hate it.
The homework two weeks ago? Prove that p = !!p. I gave up.
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.
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.
Just claim to be an intuitionist. Depending on your profs sense of humour, it's a valid answer.
I'm screwed.
Where is the downrate button? Sigh.
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.