Slashdot Mirror


Joel Gives College Advice For Programmers

An anonymous reader writes "Joel on Software explains what college students should do with their lives. Interesting to note is how he justifies such trivialties as GPA scores and well-roundedness, the very things comments here tend to think are overrated. In short, learn to write English, learn to write C, and don't worry about India!"

15 of 808 comments (clear)

  1. Slashdot anti-intellectualism by BWJones · · Score: 5, Insightful

    nteresting to note is how he justifies such trivialties as GPA scores and well-roundedness, the very things comments here tend to think are overrated.

    The anti-intellectualism here on Slashdot is extraordinary. I must admit to being rather surprised whenever I see comments like "PhD's dont know nothin" (sic), or a recent post saying I hate college with poor grammar and spelling. Responses to it basically stated that a college degree was worthless.

    Amazing.

    --
    Visit Jonesblog and say hello.
    1. Re:Slashdot anti-intellectualism by Rakishi · · Score: 5, Interesting

      In school: what you put in is what you get out. Want to cheat and not learn anything, go right ahead but I doubt you'll be making as much money as me in a decade or two. Talk to the Professors, show interests, discuss things, do research, etc.

      Also: Go to a better school then or get a better advisor. First of all the whole "you can learn it from a book just fine" is BS imho since unless you know which book to get you won't have a fun time. In addition, for many things the feedback you get on projects (or even just doing the thing assuming it's hard enough) is more valuable than anything else.

      As for "tangents" let's see I'm a Junior now and I've taken courses in: Math, CS (including grad courses in AI, Robotics and Genomics), Statistics, Psychology, Philosophy (Bioethics, and now I know the main arguments for a dozen important issues), Physics, Biology, History, Writing and a few others. I learned something in all of them, I took classes much harder than what I should be taking and while I didn't get an A in them I learned much more than if I took a class where I did get an A easily

    2. Re:Slashdot anti-intellectualism by sphealey · · Score: 5, Insightful
      In labor economics, there are three theories of why people pursue higher education:
      • Experience good (fun to get - think MA in US History)
      • Capital investment (like buying a machine - think BS in Engineering)
      • Signal to prospective employers/mates - university provides the filtering and winnowing process that addresses the cost-of-information and loser's curse problems that affect a non-local economy.
      These theories are not mutually exclusive; in fact, all of them can be in operation at the same time. It is the differences among the roles and purposes of the three theories that causes this discussion to get so heated, here and on other forums.

      sPh

    3. Re:Slashdot anti-intellectualism by jtshaw · · Score: 5, Insightful

      I don't know anything about your given situation, but I can tell you from some situations I have witnessed first hand that the "lack of support" is usually bullshit.

      Apathy is a huge problem at Georgia Tech, where I attended college. People bitch about how nobody wants to help them, about how professors don't offer any guidance, about how everyone is out to screw them. Fact is, the professors rarely even get approached by the students. How do you think these people that devote there lives to research and teaching feel with 99/100 questions they get are an attempt to get a higher grade? Most students show so little interest in anything other then grades it is no wonder the professors don't go out of there way to help more often.

      At any good school, GT included, if you make an effort to get to know your professors it really does pay off. Professors usually love to do research, especially in new and interesting fields. In my experience most of them are more then happy to assist there students in getting involved, especially if your area of interest overlaps with theres.

      If any of you are in college, or about to go to college, don't be fooled. Sure, everything they teach you there can probably be looked up in a library. However, where else are you going to be surrounded by so many people who have insight into so many different things? Don't throw away your chance to use the professors a bit and learn as much as possible.

    4. Re:Slashdot anti-intellectualism by anum · · Score: 5, Insightful

      I think you hit this one: Apathy + an entitlement society means the kids don't care but still expect perfect grades.

      I think every kid should be forced to do one year of grunt work somewhere before going to college. I don't care if it is Peace Corps, picking up trash along the highway or working a minimum wage slot at the 7-11. I know a bit of 'real world' experience would have helped me focus in class.

      I know, I know... There is always a way to game the system and the upper middle class kids won't get their hands dirty. But a trip abroad is a good way to open up closed minds. Maybe that would be a good subsitute. I currenty live in England and it isn't at all uncommon over here for the kids to take a 'gap year' before going to university. It is actually kind of expected and the entrance system is built to handle it.

      Just my .02

      --
      I don't think, Therefore I'm not.
  2. Good advice... by Omniscientist · · Score: 5, Interesting
    I'm currently a college student who is going to be majoring in Computing Engineering. This article is something I should have read before I started my first semester at college, specifically the "don't blow off the non-CS classes". My first semester was mainly non-CS classes and it did hurt my GPA slightly (nothing I can't fix tho). He brings up an important part, I believe, in how necesarry it is that you must be able to convey your ideas through speech and writing well. The whole microeconomics thing is some good advice too. Ooh and its nice to hear that we shouldn't worry about all those jobs going to India. The only thing that made me scratch my head in the article was this passage in relation to Computer Programming as a job:

    If you enjoy programming computers, count your blessings: you are in a very fortunate minority of people who can make a great living doing work they enjoy. Most people aren't so lucky. The very idea that you can "love your job" is a modern concept. Work is supposed to be something unpleasant you do to get money to do the things you actually like doing,

    I'm being a bit sarcastic here, but I've heard from too many people that punching out code all day at work makes them very hesitant to even touch a computer at home. For those who are currently computer programmers/engineers, would you say you really enjoy your job, or does it get extremely old and tedious after awhile?

    1. Re:Good advice... by saddino · · Score: 5, Insightful

      I've heard from too many people that punching out code all day at work makes them very hesitant to even touch a computer at home. For those who are currently computer programmers/engineers, would you say you really enjoy your job, or does it get extremely old and tedious after awhile?

      Short answer: it depends.

      Long answer:

      When I was in elementary/middle/high school, I used to spend long hours programming and couldn't get enough of it.

      When I was in college I found myself too distracted by other things to program.

      When I was working full time (programming) for a company, even on projects where I worked solo on design and devlopment, I was definitely too tired/spent to touch a computer at home (in fact, I didn't even have one at home -- but this is before the Internet made "being connected" all the time a necessity).

      However, as soon as I started doing independent contracting (and working from home) I found that the freedom to schedule my day allowed me to set aside time to program for pleasure. I wrote a couple shareware games, made no real money, but enjoyed having turned one of my passions (programming) back into a hobby.

      Now, I run my own company and spend all my time programming -- in essence I've come full circle and now my hobby is my career. From this point of view, I completely agree with Joel's quote, with a caveat: if you enjoy programming computers, and your programming is not "owned" by someone else, then you are in an extremely fortunate minority of people.

      So, to answer your question: yes, I really enjoy my job and it's not old or tedious in the least bit, but, it took me some time to get to this point.

  3. Non-CS Courses by ackthpt · · Score: 5, Interesting
    Microeconomics Joel touches on for what I consider trivial reasons. My recommendation in regard to the non-CS core classes with a math foundation is to get a broad exposure to them, including macroecon, chem, physics and of course, calculus (which is usually required anyway.) Why? Because it gives you opportunities to consider how you might approach problems or exercises in these disciplines analytically and how you might program modeling and such. I found on thing could lead to another, quite often, as classes can often be very interconnected in theories and information and were inspirational for lots of experiments in coding. Broad experience in coding is essential, unless you like to play the high-risk game of specialization (big bucks, but little call for your skills)

    Non-math courses help develop a personality and there's no shortage of need in that department, where I've worked. Learn some general psychology, socialogy and language. A well exercised brain is more creative than one that only dwells on one aspect or type of challenge.

    I found many formulas and ideas from classes outside CS contributed greatly to offering information and processes which normally may not have occured to me.

    In short, you're in school, make understanding the concepts behind your classes your main focus, socializing and entertainment when you can fit it in, not the other way around.

    --

    A feeling of having made the same mistake before: Deja Foobar
  4. Enjoy your summers by RadioheadKid · · Score: 5, Insightful

    You have your whole life to work. Even if you think all you ever want to do is program, nothing beats those college summers for traveling, working interesting jobs like at summer camps, outdoor guides, etc. Live a little, you have your whole life to work. Obviously Joel is stressing internships for selfish reasons anyways. There's more to life than just your job. I love programming and I love computers, but I also loved those college summers I spent working with kids at summer camp, teaching swimming, camping, and hiking, traveling with my friends, going to the beach. Enjoy it!

    --
    "Karma can only be portioned out by the cosmos." -Homer Simpson
  5. The dangers of stereotyping by Roadkills-R-Us · · Score: 5, Insightful

    I know several folk who had 4.0 through at least their undergraduate years, and some through a Masters or PhD. The majority of them are real people, not ubergeeks. They communicate, they have fun, they can make jokes with or without computer references, they get along with just about everyone short of Osama.

    Anyone who ignored these peoples' resumes because of the 4.0 would be an utter fool.

    Yes, I've known a couple of the types the parent referred to, but only a couple. Of course, now that s/he avoids 4.0 people like the plague, s/he will probably never meet another, and thus the percentage of 4.0s that are weenies will remain fixed in this person's experience, as a self-validating proof.

    Beware the stereotype!

  6. Do you want to be Joel? by jeif1k · · Score: 5, Insightful

    Joel's assumption seems to be that every CS graduate wants to be a working programmer and a clone of Joel. Look at where Joel is in life and think twice about whether you want to be there yourself. He's running a software company producing bug tracking software, one of dozens such systems. And occasionally, he preaches his depressing philosophy of how to add more messy code to existing messy code. Sure, it may bring home the bacon, but it seems pretty meaningless to me.

    Perhaps Joel's problem is that he doesn't see how exciting computer science can be. If all you do for a living is reimplement tired old ideas and trying to make the best out of inferior tools, I suppose that's not surprising. I'm sorry that a course on "dynamic logic" scared him away from grad school, but his poor choice of courses for his interests isn't the fault of grad school.

    My advice is: do what excites you. Think about what you want to look back on in a few decades and say "this is what I accomplished". If you merely want to make a living, sure, just follow into Joel's footsteps and re-implement the wheel; that's a pretty safe bet for making money. But if you want to do something meaningful, you'll have to use your head and take risks. The choice is up to you. But you do have a choice--you don't have to become a little Joel clone.

  7. Anti-intellectualism is actually... by cnelzie · · Score: 5, Informative

    ...a large part of being a citizen of the United States these days. When I was younger, I was in the arrogant land of believing that College Degrees were over-rated and worth very little on paper.

    However, in the years since, I have grown in wisdom and have discovered that book knowledge will only get you so far and that personal experience will also, only get you so far. Taken together, a person can go places that having only one alone would be near impossible.

    Now, reaching my 30's, I am kicking myself in the rear working towards obtaining a college degree to build upon and further my career goals.

    If I had an opportunity to peform a 'do-over' the only thing that I would change in my life is completing at least an Associate's Degree the first few years after completing High School.

    --
    If you ignore the other uses of a tool, does that make the tool less useful, or you less useful?
  8. People skills by Lord_Dweomer · · Score: 5, Insightful
    I would recommend that any Slashdotter considering going into a tech related field do something at college to brush up on their people skills, whether it be by joining lots of clubs, taking a negotiation class, or even *gasp* taking a marketing class to learn how to communicate to an audience.

    As an advertising/marketing student, the most important thing i've learned is "KNOW YOUR AUDIENCE". It is a philosophy that applies to every aspect of your life, since you always have an audience. If you know your audience, you know how to approach things with them, and can get better results.

    Wonder how this can help you? Well..for starters, with building your resume, talking on the phone, and landing an interview, and then hopefully nailing that interview.

    And remember the ever important 80/20 rule. Its 80% WHO you know, and 20% WHAT you know. And while I wish it weren't true, it is, and the sooner you learn that and accept it, the sooner you will go further in life.

    --
    Buy Steampunk Clothing Online!
  9. puppeteer philosophy of hiring by spoonyfork · · Score: 5, Funny

    If you're in the position to hire personnel and are looking to staff a position... take your stack of applications and divide them in half at random. Take one stack and throw it into the trash.

    Avoid hiring unlucky people.

    --
    Speak truth to power.
  10. while (*s++ = *t++); by Chris+Carollo · · Score: 5, Insightful
    ...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...
    Yes, you should be able to decipher what that code does, but I'd seriously question anyone who saw that as second nature, and you'd get a talking-to if you were one of my programmers and actually checked in code that looked like that.

    Probably the most talented debugger I've ever known is not coincidentally a somewhat poor programmer. His ability to understand complexity and obfuscation is second-to-none, but those same skills work against him when he writes his own code, because what he sees as "resonable complexity" ends up resulting in unmaintainable code for the rest of the programmers.

    Knowing what happens under the hood is a good thing. Writing code like you're under the hood isn't.