60 Comments
- heffer2k02, on 10/12/2007, -4/+21Well, this might just be me but I regretted doing CS at uni. It taught me nothing I already knew, I found the people rather immature and boring, and I felt I had missed a great opportunity to learn about one of the many other wonderful subjects in the world. If you can code, the real world won't require a degree for you to proove it. On the same point I would suggest being careful about working as a programmer if you love doing it. The reason being that in my experience jobs are rarely anything like bedroom programming. These days the last thing I want to do is come home and code some more. At the end of the week I'm thankful I don't have to write another line of code until Moday. I know many people who DO still code at home - in fact it's all they do, but be careful if your interests go deeper than code and technology. It's also a mainly male dominated workplace - which I reckon is pretty unhealthy. I'm looking for a career change - then maybe the joy bashing out some interesting programs in the evenings/weekends will return to me, and I'll use my computer for more than surfing, music and videos...
- inactive, on 10/12/2007, -0/+10Employeers do not look at IT with the same respect as Computer Science or Computer Engineering. This is just wrong.
- ModernDayDarwin, on 10/12/2007, -0/+7wrong and ridiculous. Would an employer look at a degree in physics the same as chemistry? or mechanical engineering as civil engineering? Of course not, you're taught completely different material. If you weren't being taught completely different material then the programs wouldn't' be completely different, now would they? As for the "***** block" test, you're probably referring to a somewhat standardized test the university gives to weed out the people that are cheating their way through, riding on the coat tails of others, or just really really lucky. What's so bad about that? After all, if you had been doing the work and doing well on the work, then you would be able to pass it without a problem.
What a lot of students don't realize is that those tests are designed to give you a reality check. If you struggled through that, then you either have a lot of catching up to do, or maybe you need to consider a different major.
The one piece of advice that I didn't see on this article is "differentiate yourself." When you graduate college there is a flood to the work force of people just like you. You need something to stick out to employers that says: "WOW, this guy/girl did some very cool things in college." All of a sudden you're no longer looking for that one company that will hire you, you're looking for the company that makes you the best offer.
When I graduated college one of the things on my resume was volunteering I had done. I did some work at a ferret rescue shelter in St. Louis. The director for the department with the opening was very big in animal rescue programs, specifically rotweiller. She told me later that she could tell a lot about the character of a person based on that bit of volunteering. Of course the ultimate decision maker was my skill, but like I said, you need something to differentiate yourself. - inactive, on 10/12/2007, -0/+6Learning C is important, but so is learning a variety of other languages. Being able to say "they are just languages, picking the right one for a new project and being able to work in whatever language the project you are maintaining is written in" and mean it is far more important.
- ModernDayDarwin, on 10/12/2007, -0/+5Yes, that's a brilliant idea. Then we have a bunch of managers that know how to tell people what to do, but dont' actually know how to do anyting useful themselves. All the while flooding the market with managers and making programmers even MORE of a hot commodity.
- mohrr, on 10/12/2007, -0/+5Without agreeing with or disagreeing with your statement about higher-level languages, here's the full quote, not a small part of it that has a different meaning.
You need to spend at least a semester getting close to the machine or you'll never be able to create efficient code in higher level languages. - dave_colorado, on 10/12/2007, -0/+4boston - great decision!
i majored in comp sci...man do i regret it. it's not a balanced major, it's so technical. the history you're getting is an excellent, well rounded degree when coupled with comp sci. if you're a good coder, i'd readily hire someone who has that type of degree than pure cs. cs concepts don't require a degree, nor does knowing all that math and physics help to a great extent.
and the females in the other classes...that's a big deal. i remember some classes of 60 males and 0 females. what kind of major did i pick? now i'm not saying i didn't get any trim because of that, but putting yourself in the history department just gives you another way to meet women which is ***** great.
so kudos to you, man. kudos. - eastbeast314, on 10/12/2007, -0/+4Yeah, I remember reading this a while back. It's a great read though.
The interesting thing about this is that I read that before coming to college, and now, in my current CS class, we read a lot of articles by Joel. Small Internet, eh?
My school kind of forces all of the things on his checklist anyway. - Bostonsox, on 10/12/2007, -0/+4I was a compsci major for 3 semesters, but I didn't want to take any of the non-compsci requirements (4-5 high level math classes, 2 semesters of physics, 4 semesters of spanish). So I switched to history, decided to minor in compsci instead. No rediculous non-compsci requirements involved and I don't waste the classes I already took.
What am I going to do with a history degree you might say? I have no idea, I'll see in 2 years when I graduate.
And the most important note, there are FAR more female students in the history department as compared to computer science, mostly cause CS has virtually NONE. - mochaman, on 10/12/2007, -0/+4You are missing the point! Regardless how Linux was evangelized, the point he is making is that it is very important to have good communications skills.
Any monkey can code and you maybe a good coder, but if you don't know how to communicate where is your competitive advantage say from Indian or any coders for that matter.
Learn your programming skills but also learn how to communicate. - Linkage155, on 10/12/2007, -0/+3Hey.. if "online software thing that lets other students find people to go out on dates with" makes me millions, I'm up for it! Anyways, great article, thanks.
- jmholloway, on 10/12/2007, -0/+3I used to be an economics major here at cornell. I realized this year that I hate, I mean really dislike, economics. What I really like is computers. Why didnt I go into computers in the first place? Well, because I am a girl and girls don't "do" computers. Furthermore, I wanted to go into IT Business and I thought that if I did computer science my job would be shipped to india and I would be living in the poor house.
So, I looked in to a brand new major that we have at cornell called information science. No, its not library info sci. Its a mixture of human computer interaction design + web programming + database programming + software engineering + game design + law + marketing classes -- all relating to computers. I am having an absolute blast. This is what I love to do. I don't know if I'll ever get a job, but lets all cross our fingers and hope that I do. ;-)
http://www.infosci.cornell.edu
for more info. - CaseyUCF, on 10/12/2007, -0/+3I'm a 4th year computer science student at UCF. The "cockblock" foundation exam was tough, but if you bust your ass for a week studying for it then it really isn't that big of a deal. The hardest part of a CS degree here are the ***** math classes and the computer architecture type stuff.
- curtisj, on 10/12/2007, -0/+3People skills are a big problem in CS. Many students would want to work on that.
- crimsondragon12, on 10/12/2007, -0/+3I actually take many issues with the article, but I digg the concept of giving exiting CS students advice. I finished with a 2.7 GPA from a Podunk university. Every interview I went to, I had to let my code speak for itself as a result, and constantly get off the GPA track. Employers are a vainglorious and shallow lot, so if what you say even sounds right most of them are impressed.
Today I am a lead software engineer on a design team for a major cable company. 2.7 GPA from Podunk U. Skills trump GPA if you make it do so. - nferrier, on 10/12/2007, -6/+8No, no, no. You don't want to work doing programming or anything else technical with computers. There's no future in it. Dead end job. It's really boring anyway. No prospects. No dating opportunities. Honestly... I'm not just saying that so that there's less competition and I can charge my clients more.
- MikeCampo, on 10/12/2007, -0/+2Agreed. Learning new languages for the task is easy, but knowing the concepts behind the project is what really matters.
- veritech, on 10/12/2007, -0/+2I think most of "us" ideally want to work for ourselfs, and develop code we love, and not work for the "man." So even if the it industry in the usa, or here in england goes south (or more accurately east), it just means we can make great applications, in our time off from the local supermarket ^_^
Personally i wanna make opensource stuff, however OSS and stable money, aren't that easy to come by, - StephnDolenc, on 10/12/2007, -0/+2exactly -- getting hired and advancing in a company is probably 75% people skills and 25% programming ability
- dineth, on 10/12/2007, -0/+1nahhh... i think his comments were pretty important. i just cant believe i turned away from a double degree to do business + computer sci... ah! anyway, now im doing a software dev major. i think he's pretty accurate in summer internship *****... makes alot of sense... and CaptHarlock, i think knowing the while() is still more important than knowin the assembly. really.
- veritech, on 10/12/2007, -0/+1i agree with the heff, but for me i started learning python at 13, and fell away from the path. I'm getting too old now to spend days at home teaching myself. Plus, sadly i've never been in an "geek driven" environment, my friends aren't programmers, and i feel i need someone to bounce my understanding off, CS offers that, and parties of course.
- duality, on 10/12/2007, -1/+2This is old but good. I had read this before and couldn't find it again, so I'm glad that someone on Digg found it for me.
- inactive, on 10/12/2007, -0/+1Very well written.
- starmanjones, on 10/12/2007, -0/+1my advice... get real world experience. find a freenet or community network to volunteer for. you get lots of perks... have run of the technology. can try things pretty much at will. you can do it from home. as someone that hires i can tell you that no matter how much education you have coming out of college you don't know anything. most people i've hired from college couldn't make a network run if they had all the best stuff sitting in front of them.
ive actually had the best luck hiring people that can do the job among the high school kids that have hacked my network. if you find one you can tell if they had malicious intent. if they were just playing unseen... they are a keeper. hirem. - curmudgeon7205, on 10/12/2007, -2/+3Outstanding and true!
- lababidi, on 10/12/2007, -0/+1I've written a long and exhaustive response to this column. I hope you find it useful.
http://lababidi.blogspot.com/2006/04/response-to-joel-spolskys-advice-to.html - wired4u, on 10/12/2007, -0/+1Great read, +digg
- inactive, on 10/12/2007, -0/+1The only reason jobs are going to India is because companies cannot find qualified candidates. By qualified candidates I mean people who are able to add more value to the company than they are payed. If you are payed 50k/year you better be able to do some damn great things for that company. There are ALOT of people who go into CS because that is where they think, "that is where the money is." Its not, got that? The only real reason someone should major in CS is because they have a passion for the subject and would program regardless of what the pay is.
- MikeCampo, on 10/12/2007, -1/+2Same here, but I'll just mod him down for the hell of it '~'
- veritech, on 10/12/2007, -0/+1i agree 100%, i'm doing most of that stuff now
Got the job, learning C, Doing CS in application development.
Gotta say this is the way you should approach it, plus i actually did a term of law, lol. Programming is sooo much better.
PS. Anyone got any good tutorials for learning C for noobs, i'm getting desperate now ^_^ - fnordling, on 10/12/2007, -0/+1http://www.amazon.com/gp/product/0131103628/103-9579445-2245435?v=glance&n=283155
- CaptHarlock, on 10/12/2007, -0/+1*Sound of crap bubbling out of a stopped toliet*
"I don't care how much you know about continuations and closures and exception handling: if you can't explain why while (*s = *t ); copies a string, or if that isn't the most natural thing in the world to you, well, you're programming based on superstition, as far as I'm concerned..."
NO JOEL! You are wrong you need to know how to write ASSEMBLY... You are abstracting the conceptual design of what a string is you need to explain how the instruction set within Assembly is able to store a string..BLAH BLAH BLAH...
Anyone see how useless the above paragraph is? Similar in the response to his orginal... Just like written language you DON"T need to know why the damned letter "a" is shaped like that OR where it came from. You need to know the logical process of formulating a thought and putting it on paper and NOT nitpicking like a snob that you should know cuniform first...
Joel is a dork...
I need nails, screws and bolts and tools... I don't need to know how to fricking metal smith these items! - merreborn, on 10/12/2007, -0/+1I've known senior programmers with _chemistry_ degrees.
The thing that really matters if skill -- and that includes most of what this guy mentions, including english, and business sense. If you've got the skills, no one really gives a ***** what it says on your degree. Only a very, very slim minority (5% or less) of programming jobs require specific degrees -- for example, it's my understanding that Oracle requires a masters in CS -- which makes sense; it's got to be one of the most demanding coding gigs out there.
If you want to work at a place like digg, on the other hand, the requirements are a little less demanding. - veritech, on 10/12/2007, -0/+1call me when your rich... i got investment ideas
- bpapa, on 10/12/2007, -0/+1I think the best piece of advice here is to get Summer Internships as programmers. I really feel like I wasted my summers working in retail and such. I have a programming job now, but it took 2 years out of college to finally nab one. Although that was obviously a bad time (graduated 2002), I think I definately would have gotten a job sooner if I actually had programming experience.
- ivachen, on 10/12/2007, -2/+2sounds like a self promotion of fog creek towards the end.
- steve693, on 10/12/2007, -1/+1Great read!
- Rhaegal, on 10/12/2007, -2/+2It's a trap!
lol - LittleMoe, on 10/12/2007, -0/+0I'm finishing my 3rd year at a University right now. I'm majoring in CIS and minoring in CS. I can definitely say getting a minor in CS has been very rewarding personally because I've learned so much more programming and just basic computer logic doing the classes required for it. Doing logic gate architecture on bread boards, programming an assembler and learning an assembly language at the same time, programming a compiler, learning about AI robotics, learning and programming computing machines like DFA's PDA's and Turing machines, and so many other interesting topics have really made my college experience more interesting. The CIS courses are mainly programming courses and database work which I enjoy of course too but the CS classes really make me realize and understand the science behind computers. I'd highly suggest doing a CS minor with a CIS major if that's what you're going for, I've enjoyed it.
- gmerin, on 10/12/2007, -0/+0unfortunately, that is what is being sourced and hired now. Tech workers have become like paper clips: use them, discard them, and replace them cheap. Managers (the less technical knowlege the better) are being retained - it won't last, but at least they're still employed, for now.
- skipunk, on 10/12/2007, -0/+0These people who are complaining about stupid tests and the math classes are the ones who probably should have taken some sort of IT program instead of computer science. I am a comp sci major right now and even though the math and theory classes are hard, they given you insight into basic principles of computing and how to formulate an efficient algorithm at the higher levels, regardless of what language you implement it in.
Also I don't know if its unique to my university, but they require us to take so many non science options. So I have had the oppurtunity to take sociology classes, history and arky classes and even some writing classes. - SkaAgent11, on 10/12/2007, -0/+0As always, Joel on Software is intelligible and well written. Good advice for computer science majors.
- Markowitch, on 10/12/2007, -0/+0@mohrr
You are right. I did not bring the full quote. Still, while it's good to know the inner workings of a computer, its not crucial when writting efficient portable code, due to compiler optimization techniques.
Another argument is that most programmers writtes desktop like applications that will be idle for a lot of their lifetime, with only but a few tight loops. So my advice is to cross the bridge when you get tere and not embark on the path of premature optimization. - Markowitch, on 10/12/2007, -3/+3No digg here. There is too much noise in the article.
About writ ting skills, they are good to have, but Linus did not have to evangelize Linux as the article states. It evangelized it self because there was a need for a kernel at the time. Linus also stated in later interviews that it was pretty much a question of timing that made Linux a success.
Regarding the "Learn C" advice I pretty much agree, because many higher level languages uses stuff that's easier to understand when knowing a little C. But to go on and state "You'll never be able to create efficient code in higher level languages" is just plain noise and not true. So no digg here. - maiki, on 10/12/2007, -0/+0good and useful information = +1 digg
old, I read this a year ago = -1 digg
total = 0 diggs
Though people should definitely read this BEFORE becoming a CS student, and not after :P - dwhitbeck, on 10/12/2007, -1/+1Gee, I would like to work for this guy.
- ozgurgerilla, on 10/12/2007, -0/+0I get totally confused when I read articles like this. should I change CS or not. then I think do what..
- otheus, on 10/12/2007, -0/+0** The moral of the story is that computer science is not the same as software development. ... The trouble is, we don't really have professional schools in software development, so if you want to be a programmer, you probably majored in Computer Science. Which is a fine subject to major in, but it's a different subject than software development. **
He buried the lead. Look, if you want to be develop software, the best way is to apprentice starting in high school. If you really think college is a good idea, major in Software Engineering. Unfortunately, that's rarely an actual curriculum. So your best bet is Business Administration, Biology, Electrical/Computer engineering or Math. Better yet, go to your college counselor and try to get a cross-curriculum degree.
Why Biology you ask? Some of the best programmer's I've met or encountered (via their code) had Biology backgrounds. I suspect this is due to the fact that good code organization is not unlike a good phylogenic tree -- object-oriented design is a metaphor borrowed from nature.
Why Math? Because engineering and scientific programming require a certain aptitude for understanding scientific papers, which are invariably based on complex mathematical formulae. - csrster, on 10/12/2007, -0/+0Worth digging for the entertainment value, if nothing else. It brought a couple of
smiles to my otherwise jaded lips. - scult, on 10/12/2007, -0/+0I couldn't agree more with this article. But I'd like to make one more point the author doesn't quite make. A programmer who doesn't learn to communicate SHOULD fear that his or her job might go to India. In my experience, it's the "heads down" programming positions that are getting outsourced. My company got a proposal from an Indian company for a $10-15 million project . It would have been a significant project for a small Indian company. They sent their best BAs and such to do some analysis and create a proposal. In the end, the document they produced was CRAP! I met them all and they were a very smart team. But they hosed up the English in their proposal and that didn't exactly give anyone with decision making authority the warm fuzzies. Final result - project denied and done in-house. IMHO, all b/c their proposal wasn't worth the Word file it was put in. Learn to write my American brethren!
-
Show 51 - 58 of 58 discussions



What is Digg?
Browsing Digg on your phone just got easier with our enhancements to the