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!"

107 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 Anonymous Coward · · Score: 3, Interesting
      The problem with school these days is that's it all about getting the papers to get a job. Period. If school was really about "learning to think" and "knowledge", why is cheating so rampant? 33% of all graduates cheated to get their bachelor's, at least here in Montreal in EE.

      When you see kids running around with books titled "How to get better grades", it's clear to me that school is nothing more than a holding ground for kids because there are no jobs for them.

      School is NOT about learning, it's about fitting in a given society. You can learn FINE on your own. Books exist, libraries exist.

      If anything, schools are anti-intellectual. When I was in school, I was always going off on tangents and exploring all kinds of fields on my own. Did I get *any* support or encoouragement? No. None. Zero.

      Follow the group, don't go too fast, don't go too slow.

    2. Re:Slashdot anti-intellectualism by nurb432 · · Score: 2, Interesting

      Guess i was lucky, all thru school i was supported ( no, i was encouraged ) to veer off on tangents, and learn all that i wanted, on any subject i chose.

      I wasnt forced to conform in the slightest..

      However, that is both good and bad..

      --
      ---- Booth was a patriot ----
    3. Re:Slashdot anti-intellectualism by jedidiah · · Score: 2, Insightful

      This presupposes you think that University is an intellectual exercise. In many cases, it is the thing furthest from. It's quite often just a rite of passage. Some "PhDs" will even admit to this.

      --
      A Pirate and a Puritan look the same on a balance sheet.
    4. Re:Slashdot anti-intellectualism by BWJones · · Score: 3, Insightful

      The problem with school these days is that's it all about getting the papers to get a job. Period.

      School is what you make of it. If that is your perspective, you will not take much away from the experience. School is not there to hold your hand and tell you what to think or believe. It is there to provide you with information you might not otherwise be exposed to. Schools should challenge you and provide opportunities to excel.

      With respect to cheating: If somebody cheats in school, they are going to cheat in other aspects of their lives. That is a reflection on their character makeup and not on the failings of a school.

      School is NOT about learning, it's about fitting in a given society.

      I will have to call BS on this one. I and others absolutely did not fit into the mold in college. The crowd we ran with was decidedly counter culture and the kids with the funny hair (us) certainly did not fit into the rest of the class in terms of looks, political perspective or social acceptance. However, we all took something away from the experience and kept our punk ethos of DIY into our careers in science, medicine, engineering and business and music and we all are much happier because of it.

      You can learn FINE on your own. Books exist, libraries exist.

      Negative. This is not the same as guided education.

      --
      Visit Jonesblog and say hello.
    5. 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

    6. Re:Slashdot anti-intellectualism by ScentCone · · Score: 2, Interesting

      anti-intellectualism here on Slashdot is extraordinary

      It's tempting to think that this is peculiar to the live-with-mom coding set, but it's no different than any other guild-like group of people with a particular set of relatively valuable skills. Say, sheet metal workers, or turbine mechanics. Those chores will not go away, and our economy will always support people skilled in those areas no matter how otherwise closed-in they might be within their own communities or industry cultures.

      But there will always some folks that read enough (Neal Stephenson, not Robert Jordan) outside their comfort zone, or hung out with those know-nothing PhDs to become more valuable. They end up being the bosses that all us techs-in-the-trenches love to hate - but the really successful ones are in part successful because they care enough about communication skills, history, etc., to seem valuable to a wider swath of society.

      But the systems engineers (who are happy directly in that role) will always be needed, and those more worldly techie-boss people will probably always prefer to have culturally similar, if slightly stunted, folks doing the heavy lifting for, and direct reporting to them.

      Egads: I guess I'm saying that there's a place for all of us... but the cultural class tension will always be there too. Those that make it out of the tech ghetto, though, do feel the heat from below, I'm sure.

      --
      Don't disappoint your bird dog. Go to the range.
    7. Re:Slashdot anti-intellectualism by brentcastle · · Score: 2, Insightful

      Thank you! I could not agree more. It's really disheartening that these qualities are always discredited. In my opinion as a programmer these are two of the most important things you have to show for yourself. - A relatively high GPA shows that you can stay committed even if a project(/class) doesn't interest you. This is extremely valuable in the work place as you will get many mundane projects on your way to or in between working on interesting projects. It also helps employers distinguish between a multitude of graduates who all "learned" the same languages in school. - Being well-rounded allows a programmer to think outside the box and take ideas from other interests and hobbies and apply them accordingly in innovative ways. While I'm at it I have another complaint about the "it doesn't take an education to succeed" attitude. It all stems from the extraordinary success of a few individuals who did not complete their college education as it was replaced by developing something more interesting, innovative, and usually profitable. These people are outliars and if you use their success to gauge the level of education you should complete then you are horribly mistaken and bound for a path of failure.

      --
      http://www.brentcastle.com
    8. 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

    9. Re:Slashdot anti-intellectualism by Nos. · · Score: 2, Interesting

      I think you kind of missed what the original poster was saying. Sure you not a preppy person, you had neon spiked hair, or whatever your particular appearance choices were. However, how many people can honestly say they went to college to learn? I can't. I went to college so I would be able to get a good job. That's the "mold" he's referring to, not your appearance, speech patterns, etc. Higher education used to be for those wanting to learn or spend time doing research, not to train for careers.

      That's not to say I don't want to learn. But at 17 (when I graduated from High School) the last thing I wanted to do was start into another school. I didn't have the desire to learn for the sake of learning. I wanted to have money in my pocket and hang out with friends. Now I'm 30 and am taking up a couple of new hobbies that have begun to interest me (woodwork and electronics). This is when learning (at least for me) really happens. I will probably look for community "learn to ..." courses that will help, but for now I'm just trying to get a basic understanding of electronics by putting together some basic circuits. A guided education helps, but I believe learning on your own is as important as learning via instruction. Neither one is perfect on its own.

    10. Re:Slashdot anti-intellectualism by SCHecklerX · · Score: 2, Informative
      The problem with school these days is that's it all about getting the papers to get a job. Period

      bullshit. I have a degree in Aerospace Engineering. I've never worked directly in that field. I certainly did learn a lot of really cool stuff that I could never have learned on my own, however.

      Computers were a hobby, and getting a job in the field was because of that hobby. The education certainly did help, but I definitely did not get an engineering degree to "get the papers to get a job"

      In fact, I chose aero over compsci *because* I could teach myself all of the programming. I wanted a real challenge. If I wanted good grades, I certainly picked the wrong route with that decision!

      If all you want out of an education is a job, then go to something like ITT and become another trained monkey. A real university is not for you.

    11. Re:Slashdot anti-intellectualism by RealAlaskan · · Score: 2, Informative
      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.

      Knowlege and education will always be valuable, in many ways. What does that have to do with college?

      Seriously, for too many students, college is a four year waiting period: waiting to get their tickets punched for that good job. Some party full time, some work full time, but none of this group of bad students are trying to learn at all, except in the ``pass the test'' sense.

      People who hate college, and say that it's worthless, tend to be in this know-nothing group. There are people who find that college gets in the way of learning, because they have to take time out from learning to pass tests. Still, if that's your problem, you should find the test passing relatively easy, or you should change your major to match your interests.

    12. 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.

    13. Re:Slashdot anti-intellectualism by Anonymous Coward · · Score: 2, Insightful

      Schools should be considering why there is so much cheating, and why it isn't so apparent in the workplace post-school.

      You sir, are a fucking moron. There is rampant cheating in the workforce. In my years of professional software development I have been witness to many, many incidents of code-stealing, backstabbing, taking credit for the work of others, and so on. If that isn't cheating in the workplace, I don't know what is.

      Asshole.

    14. Re:Slashdot anti-intellectualism by nurb432 · · Score: 2, Informative

      No, i was a complete outcast ( still am, and proud of it ) .. so I have no doubts. i wasnt 'conformed'..

      --
      ---- Booth was a patriot ----
    15. Re:Slashdot anti-intellectualism by ivan256 · · Score: 2, Insightful

      At 10k/year school better be something weather I make it or not.

      What kind of attitude is that? Schools have an admissions process to keep people with that kind of attitude out so you won't be wasting your money or their time.

      All of the information your school has is available for far less money

      That's true.

      On the other hand, a lot of the information you get in school comes from experience and from the experiences of the people you work with and are taught by. Sure you can get all that knowledge on your own, but almost certainly not as quickly, and you'd have to be lucky enough to be in the right place at the right time.

      Anybody who is worth their salt can guide themselves just as well as a professor with 200+ students to deal with.

      Here's your biggest inaccuracy. First of all in the later years of a college education you should have smaller scale relationships with certain professors (typically project/paper advisors or your thesis review committee). Secondly, you may be able to guide yourself, but not "just as well" as somebody who already has experience learning the lessons you're trying to teach yourself. In the right environment you should be able to avoid the rat holes that can slow down your learning process because somebody with experience is looking over your shoulder just enough to keep you on the right path.

    16. 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.
    17. Re:Slashdot anti-intellectualism by Taladar · · Score: 2, Insightful
      And learning to enjoy learning is something that should help anyone in any career
      I enjoyed learning before college (and still do) and my college courses do anything possible to destroy this feeling in me by testing the wrong things at the end (the things I would normally categorize as "I can look it up when I need it").
    18. Re:Slashdot anti-intellectualism by rjstanford · · Score: 2, Insightful

      While I agree with the thrust of your post, I did find this somewhat amusing...

      I and others absolutely did not fit into the mold in college. The crowd we ran with was decidedly counter culture and the kids with the funny hair (us)...

      So you did fit into a group, and a fairly solid one that most people have no problem envisioning. It wasn't the "preppy" group, but it was a group nonetheless, and almost certainly displayed the same kind of requirements as the more "mainstream" ones. You may think not, how do you think someone who typically wore Gucci, Prada, and the like would have been accepted into that crowd?

      --
      You're special forces then? That's great! I just love your olympics!
    19. Re:Slashdot anti-intellectualism by greenhide · · Score: 2, Insightful

      Negative. This is not the same as guided education.

      Yep, it's much better.


      My best bet is that some people thrive under guided education, and some people don't.

      I know that I really enjoy having a teacher help me along in my learning process. Unless your interests really are very specialized, there usually isn't a dearth of material on a subject, there's a surplus.

      As a result, it's very difficult, not only to determine *what* you can learn (already a daunting task to someone like myself, who can be interested in anything) but ways to learn it.

      A good professor takes time to find out what their students are really interested in learning, and figure out ways to balance the "must learn" subjects with the "want-to-learn" subjects.

      A good professor can collect resources (books, articles, movies, etc.) which at their surface are unconnected and reveal their connections and how they shed further light on the subject being taught.

      A good professor can take large complicated ideas which are generally in the realm of the specialist only, and distill them so they can be understood before requiring you to gain the additional knowledge required to understand the ideas fully. A perfect case in point was the "Quantum Physics for Poets"-type course I once took. It required only pre-Calculus math and did not delve as deeply into the nature of Quantum Physics as a traditional class might, but it still covered the subject in an interesting enough way that I feel I could, if I wanted to, delve more deeply into the subject without getting seriously confused.

      There are many people who find they learn subjects perfectly well on their own. I'm dead certain that this is the case. There are no doubt many experts in specialized subjects who taught themselves the subject almost entirely on their own.

      There are other people who welcome guidance and support. I'm one of them. And I don't feel that I'm any worse for being that way. I can learn just fine on my own -- once I've determined what I want to learn and how -- but if I don't have those two questions answered fully, a teacher is invaluable.

      I guess my take is that sometimes, especially when starting out in a subject, hand holding can be very useful. A good teacher will no when they are guiding, and when they are forcing.

      --
      Karma: Chevy Kavalierma.
    20. Re:Slashdot anti-intellectualism by greenhide · · Score: 2, Insightful

      Yes, it is a bad school, but it is very easy to graduate there.

      That's sort of like saying, "Yes, Suzy *is* a diseased skank, but it's very easy to get into bed with her."

      QED, IMO.

      --
      Karma: Chevy Kavalierma.
    21. Re:Slashdot anti-intellectualism by lcsjk · · Score: 2, Insightful
      When I was about age 14 I was reading everything I could find about electronics, and hung out at the local radio/TV repair shop when I could. They let me "play", but I really learned nothing there. I went to college at Auburn to learn electronics. Along the way I learned a lot of math and physics that have helped me in nearly everything else I have done. I took the last vacuum tube lab and the first transistor lab. After graduation, I worked with the major electronics companies in all fields of electronics, and continued to read, read, read. For about 10 years I read every application note I could get my hands on and learned the characteristics of most of the IC's and capacitors. I have had a good career so far, and enjoy every day at work and my computer hobbies at home.

      I suggest you purchase the ARRL's Radio Amateur's Handbook to go along with your interest in electronics, but read those magazines when you can, especially the application notes. Maybe you can find EDN, Electronic's Design and maybe other technical publications. Get a catalog from MP Jones, and have fun!

    22. Re:Slashdot anti-intellectualism by PitaBred · · Score: 4, Funny

      Conformance would have made this post much more readable...

    23. Re:Slashdot anti-intellectualism by fitten · · Score: 2

      I agree... I've been on both sides. As a student, I actually found out that some teachers have interests similar to mine. I found out that one of my most favorite professors had made a joystick with memory to record all the movements he made so he could replay certain games which didn't have a save feature up to the point where he last was stopped/killed. After approaching him, I found that he was pretty cool. All of this was in addition to being a very good teacher.

      I took every class that the guy offered. Later, he and a couple other professors that I had come to know well approached me on the same day and asked if I had given grad school any thought. I hadn't and was actually looking for a job. These professors told me that if I wanted to go to grad school, they'd make sure it happened. After thinking about it some, I did. The professor with the joystick mentioned above became my committee head and the other two (one of which was his wife) were my other two members.

      Over the years, I've maintained a good friendship with them, including a bit of playing paintball and all sorts of stuff. We get Christmas cards from them every year :)

      Anyway, teaching is onus of the professor. Learning is the onus of the student. If you want to learn more, you have to take it upon yourself to broaden your horizons. Find teachers that have similar interests and get to know them. Professors see many faces (new ones too) each semester. It's basic human nature to figure out whether you want to invest your time in getting to know someone. Professors usually can't afford to befriend everyone. This is why they tend to not associate with students so much. However, only very few times have I ever seen a professor not befriend students who really wanted to befriend them.

      Another calculus teacher I had really impressed me. Before our finals, a number of us in the same section got together to study. None of us understood or could figure out something that was covered in the last couple meetings and we were worried because the professor had explicitly said that it would be on the final. Desperate, one of my friends said he was going to call the professor to get help. This, of course, scared us all because it was after 9PM and, being sophomores, figured this might negatively impact our grades. Well, he called and after fifteen minutes on the phone trying to explain to us how to do it with no success, he asked where we were. Puzzled, we told him and he said to stay there, he'd be there in 10 minutes. Sure enough, he drove over (near 10PM now) and spent the next hour or so with us going over the material until we all understood it. We all aced that portion of the exam.

      Now, as a teacher, I tought a few split level networking classes. Because I could, I usually was in the class 15 minutes before class started and hung around as long as anyone wanted to stay. In addition, my office hours were officially posted but all the students knew they could contact me just about anytime they wanted. At first, before class, only a couple students showed up early and we'd sit around and chat about whatever... games, classwork, programming, etc. Before the end of the semester, the class was usually 1/4 to 1/2 full 10 minutes before class.

    24. Re:Slashdot anti-intellectualism by secret_squirrel_99 · · Score: 3, Insightful

      iI disagree vehemently. WHen I was going to school I would get punished for taking the extra steps. For example once I failed a programming assignment because my program had a GUI and "we haven't learned that yet"

      You didn't fail because "we haven't learned that yet" . You failed because you were given a project with defined objectives and your work product did not meet the design criteria. It works like that in the real world too. Perhaps there was more than one lesson in there?

      --
      If privacy had a tombstone it would read "We did it for your own good" . -- John Twelve Hawks
    25. Re:Slashdot anti-intellectualism by LaCosaNostradamus · · Score: 2, Insightful

      Negative. This is not the same as guided education.

      A fine sentiment. However, you confuse the average college experience with "guided education". Do you really claim to ignore the faults of teaching things the current American college way?

      I was immensely disappointed in the so-called Engineering Physics program at UMass/Boston. It had such potential, and it wasted it all on what could only be called "continuing ed". From that experience and other anecdotes, I can only have become the college protester (i.e. I actively opposed the collegiate system of education) I am today since I am honest about all the promises that colleges make yet don't deliver on.

      The average college experience really is just a mind-control program for getting you to sit, regurgitate, and shut the fuck up otherwise. Independent thought is highly disruptive to established orders ... hence, you will not find training in such thinking methods being honestly offered in American universities.

      I'm not the only one who has noticed this "little problem" with the gargantuan disappointment that American colleges provide.

      I'm also not alone in noticing how functional that practical and self-directed education can be. This means that a library and Internet in the hands of a motivated man are every bit as good as a college degree.

      The problem with this attitude on Slashdot is the presence of all the people with degrees who have to somehow (and falsely) justify having spent all that money and time acquiring them. Methinks thou doth protest too much, alla youse.

      --
      [You have a stable society when some nut guns down a schoolyard and the law doesn't change.]
    26. Re:Slashdot anti-intellectualism by freedom_india · · Score: 2, Insightful
      MOD This UP to Insightful. You failed because you were given a project with defined objectives and your work product did not meet the design criteria. It works like that in the real world too

      TRUE. Very True. The IT industry does not need smart alecks who think they can do a "better" design of a 1.3 million LoC Asset Banking System and incorporate some funky GUI with Easter eggs inside it.

      No wonder the prof. failed him. First Learn to draw INSIDE the box before thinking outside it.

      --
      "Doing what i can, with what i have." ~ Burt Gummer
    27. Re:Slashdot anti-intellectualism by anagama · · Score: 2, Interesting

      • I think every kid should be forced to do one year of grunt work somewhere before going to college.

      Absolutely true. I went to college straight from HS and I seriously believe that was a mistake. when I first got to college, my goal was to party unfettered by parental oversight. I did well at partying, lousy in school. It wasn't until mother passed away that I realized I had to actually become a self-reliant adult. Before this, my GPA was 1.99, after 3.88.

      Thinking back on that time, I see now how incredibly immature I was. I would have been far better off I had been kicked out of the house and told to make it on my own for one year - no help at all. That year of scraping by would have been serious motivation to use my college time for learning.
      --
      What changed under Obama? Nothing Good
    28. Re:Slashdot anti-intellectualism by cduffy · · Score: 2, Interesting
      On the other hand, a lot of the information you get in school comes from experience and from the experiences of the people you work with and are taught by. Sure you can get all that knowledge on your own, but almost certainly not as quickly, and you'd have to be lucky enough to be in the right place at the right time.
      That's true in school as well as out of it.

      There are only about two or three computer science professors I actually learned substantially from (as opposed to sitting in lecture listening to regurgitated facts that I either already knew or could look up as-needed). One of them retired the year after I took his class (on systems architecture), replaced with someone not nearly as competant. Two of the others I could easily have not taken any classes with at all. I was, as you say, lucky to be in the right place at the right time.

      I learned vastly more during my internship (at a big-name embedded Linux shop) than during my formal education itself. I wouldn't have had that internship if I hadn't happened to meet and impress one of the near-ground-floor employees (who started out as employee #7, their first intern ever) at a LUG meeting. Right place, right time.

      Yes, I did the formal education bit, and yes, it's done me a great deal of good -- certainly, it improves one's chances of being in the right place, unless one knows the right people to start off with (which I didn't).

      In the right environment you should be able to avoid the rat holes that can slow down your learning process because somebody with experience is looking over your shoulder just enough to keep you on the right path.
      In my experience, that kind of guidance is easier to get in a quality work environment than anywhere else. Getting to that quality work environment without formal education -- that's a bit harder, but it's doable. (One of my coworkers was a minor who had been hired as a full engineer before completing high school; he was also maintainer of the MIPS and SH Linux kernel ports. He'd initially learned C from another friend of mine, and was otherwise self-taught).
    29. Re:Slashdot anti-intellectualism by dslbrian · · Score: 2, Interesting

      You dont need a school or a grossly over-priced piece of paper for that. You need a brain and access to a library or the internet.

      Well, thats nice and utopian and all, but without industry experience if you plan on getting a job that "grossly over-priced piece of paper" is going to be worth a lot more than all your self taught knowledge. When I'm planning to hire somebody I want to know that they know their stuff, and being that I don't know that person yet (since I would have probably just met them), I have no reason to trust them or their claim of how knowledgeable they are. In that case I would trust a university that says you know something more then I trust that person's opinion of themselves.

      Yes some universities hand out diplomas like toilet paper, but for the most part good universities and departments have professors that are known and regarded. For instance if I know that someone went to a certain school and took classes from a certain professor, I might know that professor personally or have coworkers who know that professor. Those insights can say a lot about the education someone probably has.

      Ultimately the interview determines it, but realistically to even get to the interview you either need experience or education.

      Anybody who is worth their salt can guide themselves just as well as a professor with 200+ students to deal with.

      This is simply not true. You are not going to become a brain surgeon by "guiding yourself". Nobody is going to hire a self-taught doctor - its laughable. I also can't imagine this working for many fields - lawyer, nurse, nuclear engineer, EE...

      For only CS or mabye IT fields can I imagine this -might- work, but only because you can generate your own experience via open-source projects and such. And even then you will tend to run into the interview roadblock above...

    30. Re:Slashdot anti-intellectualism by killjoe · · Score: 2, Interesting

      "You failed because you were given a project with defined objectives and your work product did not meet the design criteria."

      That's no true. My program met every criterea laid out by the teacher. It just had a GUI that's all. The requirements never said "the program shall not have a GUI".

      "It works like that in the real world too. Perhaps there was more than one lesson in there? "

      NO it does not work like that in the real world. In the real world if you take the time to put a nice gui on programs people like it (as long as the core requirements are met). In the real world your boss appreciates you going the extra mile.

      --
      evil is as evil does
    31. Re:Slashdot anti-intellectualism by BinxBolling · · Score: 2, Interesting
      NO it does not work like that in the real world. In the real world if you take the time to put a nice gui on programs people like it (as long as the core requirements are met). In the real world your boss appreciates you going the extra mile.

      Not necessarily. If the GUI isn't very valuable in the given situation, and the time you spent on building it could have been spent building something else that is more valuable, then your boss is likely to be annoyed with you, and with some reason. You as a developer may not be in the best position to set development priorities on your own, and should be cautious about doing so.

      That extra mile isn't yours to give, unless you built the GUI on your own time.

  2. Do what I do... by Blapto · · Score: 2, Insightful

    Actually write code. Get off of your donut encrusted seat and write code! Experience! Stop complaining... Arrgghhh.

  3. 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 B5_geek · · Score: 2, Insightful

      I'm not a programmer (basic doesn't count anymore does it =), I am admin + help desk + repair tech + ...etc... one-stop-shop in our company. I do everything, and after spending 8 hours 'working' on PC's and various projects (MySQL, PHP, web) I go home and I spend 6 hours working on PC's.

      About the only thing I can't stand to do is the 'helpdesk' role to my family.

      "Mom, I don't know what 'thingy' you are talking about or how you broke it in the first place!"

      That just makes my skin crawl.

      --
      "The price good men pay for indifference to public affairs is to be ruled by evil men." ~Plato (427-347 BC)
    2. Re:Good advice... by MisanthropicProgram · · Score: 2, Informative
      That's something you'll have to find out for yourself.

      I for one got sick and tired of doing it professionally, but I like to do a little as a hobby and to learn new technologies.
      Other people I know i have been programming for decades (started in the 70's) and still love every minute of it. And still others burnt out completely. I guess it also depends on the jobs you have had.

    3. Re:Good advice... by Swamii · · Score: 2, 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.

      I've been 'punching out code' at the same job for the last 3 years, and nothing could be further from the truth. You write code at work, then go home and play some Age of Mythology or even write some code for my personal projects; frankly my computer is my lifeline (queue the jokes). On top of that, I'm married and have kids - fact is you don't get a whole lot of free time when you've got a family, so I look forward to my free time on my home machine, despite 'punching code' for 8 hours a day at work.

      --
      Tech, life, family, faith: Give me a visit
    4. 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.

    5. Re:Good advice... by Kiryat+Malachi · · Score: 2, Insightful

      Sorry, but you're wrong.

      I love my job (control systems engineer).

      I work a 40 hour work week. Sometimes 50, sometimes 30, it balances out to 40.

      Am I married? Do I have a kid? Own my own place? Not yet, but someday; nothing about my job would prevent me from doing these things.

      Find the job you love, and the rest will happen. The American Dream is *not* slaving away doing something you hate so you can own a bigger home than the next guy. At least, it shouldn't be.

      --

      ---
      Mod me down, you fucking twits. Go ahead. I dare you.
      (I read with sigs off.)
    6. Re:Good advice... by wcrowe · · Score: 2, Insightful

      I would say this in response: If all you're doing is banging out code all day long, you may not be a very good programmer, and you definitely have a crappy programming job, but don't worry... soon you'll lose your job to a happy Indian.

      OTOH, if you can get into an area which requires real analysis, puzzle-solving, thinking and designing, you've got a great programming job and you'll enjoy it.

      I'm happy to say that most of my career has been spent in the latter category.

      --
      Proverbs 21:19
    7. Re:Good advice... by Specter · · Score: 2, Insightful

      "what's to stop your employer from opening a programming shop in Bangalore and paying $7,500/year for the same job?"

      An excellent question! What indeed? There are a lot of reasons not to send work overseas, but I'll just touch on two here: transaction costs and knowledge theory.

      One of the reasons that companies exist is to reduce transaction costs in achieving a goal. If we assume the goal here is to develop software to a particular set of requirements, then one of the transaction costs involved in getting to that goal is the requirements discovery and specification. It's my experience that discovering and specifying requirements is a job that requires a lot of face-to-face interactions, meetings, document revisions, more meetings, ... you get my drift. Attempting to perform this function correctly with a company that's in a time zone more than 13 hours different from your own is difficult to say the least. Not to mention that you now have to pay someone to be awake at night to interact with India, worry about security of your proprietary data, and travel occasionally to India just to keep things moving along. All of those things (and more) cost money and time (more money). So on the whole, you'd better be sure that the cash you're saving on compensation in the US more than makes up for the transaction costs of sending the work overseas.

      The second reason it doesn't often make sense to send development work overseas is based on the knowledge theory of the firm. In a nutshell knowledge theory asserts that firms exist to facilitate sharing knoweledge in a trusted environment. Software development is really just the embodiment of specific knowledge into an automation process. It's tough to share knowledge with someone who's working when you want to be sleeping and vice versa. It's even tougher to do it when you've got to rely largely on electronic communication (instead of meat-space interaction) to transfer this knowledge from your head into the software via the outsource company.

      Both transaction costs and problems with knowledge transfer (really just another transaction cost if you want to look at it broadly) are barriers to moving this kind of work overseas.

  4. YES by Thunderstruck · · Score: 4, Insightful

    Please, please, please! Learn to write English. My wife delights in showing me papers she's had to grade from freshman composition classes that are written entirely in txt msg spk that U or I do ! understnd.

    Seriosly, bad communication skills generate huge costs in lost time, and legal fees when something goes wrong.

    --
    Trying to use sarcasm in text-based forums does not work.
    1. Re:YES by StevenHenderson · · Score: 2, Funny
      Seriosly, bad communication skills generate huge costs in lost time

      So do spelling errors... :)

    2. Re:YES by g0at · · Score: 4, Insightful

      My girlfriend and I argue about this type of thing from time to time. I know you were just poking good-natured fun at the OP's typo, but I feel it is important in this discussion to distinguish between excusable errors due to transient mistakes (e.g. typos by someone who can spell), vs. consistent errors due to ignorance (e.g. mangled words and grammar from someone who can barely handle their native language).

      -b

    3. Re:YES by Dan+D. · · Score: 2, Interesting

      Isn't that the purpose of (good) proof-reading?

      --
      People who quote themselves bug the crap out of me -- Me.
    4. Re:YES by khellendros1984 · · Score: 2

      Remember /.'ers, there is a difference between their, there, and they're! You think English is bad? Try Chinese!

      --
      It is pitch black. You are likely to be eaten by a grue.
    5. Re:YES by g0at · · Score: 2

      Touché!

      Actually, had I been paying better attention, I would have written "his" or "her" (not "his or her", which is obtuse, especially in lengthy or repeated passages).

      -b

  5. Disagree on two points: by mOoZik · · Score: 4, Interesting

    * Learn microeconomics before graduating.
    * Stop worrying about all the jobs going to India.

    First, I think it's also to learn macroeconomics, if you plan on becoming anything more than a cubicle-dwelling drone. If you want to take mattesr into your own hands, you have to have a good understanding of the big picture. As for India - which is related to my first point: it is important to look at all trends and act accordingly. If you ignore any large trend, movement, etc., you can very well be doomed to failure. When I say trend, don't misinterpret that as the equivalent of "fashion."

    1. Re:Disagree on two points: by ednopantz · · Score: 2, Insightful

      First, I think it's also to learn macroeconomics, if you plan on becoming anything more than a cubicle-dwelling drone. If you want to take mattesr into your own hands, you have to have a good understanding of the big picture.

      Actually, if you want to take matters into your own hands and start a business, you will need micro. I took macro, and while I understand why daily newspaper a lot better, I still wish I knew the business basics that are covered in every micro class. Sure, I can read "microeconomics in 30 seconds" or "microeconomics for idiots," but those are a poor substitute for a good teacher, a good text, and good assignments.

  6. Just graduated by neiko · · Score: 2, Interesting

    I actually just got my BS in CS about 3 weeks ago...with a rather mediocre GPA in fact (damn sociology class!). I'll let you know if there is any reason to take this with more than a grain of salt.

  7. My Advice by RAMMS+EIN · · Score: 4, Insightful

    My advice would be to not take college too seriously. You can learn much more efficiently when you pursue your own interests in your own time. Use the college to get a degree and meet people, and your spare time to study.

    So far, all the jobs and good friendships I have gotten have been due to what I do outside school hours. I do the minimum possible for assignments I don't like, and score good grades on the ones I do like, because I do them with enthusiasm.

    Of course, I am one of those people who love to learn and experiment. If you're not that kind of person, most of what you learn probably comes from school. YMMV. HAND.

    --
    Please correct me if I got my facts wrong.
    1. Re:My Advice by hendridm · · Score: 2, Insightful
      My advice would be to not take college too seriously. You can learn much more efficiently when you pursue your own interests in your own time. Use the college to get a degree and meet people, and your spare time to study.

      So far, all the jobs and good friendships I have gotten have been due to what I do outside school hours. I do the minimum possible for assignments I don't like, and score good grades on the ones I do like, because I do them with enthusiasm.

      Hah! Wait until you get out and have to explain away that 2.8 GPA (3.6 in your major and 2.0 in the other crap). Employers and graduate schools are more impressed with GPAs than you might think, at least in my experience. And don't even bother applying for internships with a low GPA, which will make your post-graduation job search a living hell.

      I wholeheartedly agree those liberal arts classes are worthless (I even had to take a gym class, WTF?!), but you still need to maintain a decent GPA. Don't slack, even in the useless courses.

  8. 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
  9. 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
  10. To anyone who questions why by Anonymous Coward · · Score: 2, Insightful

    they have to take all these unrelated classes.

    That is what college is.

    It isnt training for your job, that is what other post high school education venues are for.

    College IS the extra classes plus your expertise.

    it is a combo of both so if you dont like it, college may not be the best choice for you.

    value exists in those classes so enjoy them (even the pain in the ass ones)

  11. Response to Joel by alphakappa · · Score: 4, Informative

    Here is Sriram Krishnan's response to Joel's advice

    --
    "When the only tool you own is a hammer, every problem begins to resemble a nail." - Abraham Maslow (1908-1970)
    1. Re:Response to Joel by alphakappa · · Score: 2, Insightful

      " I would never listen to technical advice from someone who puts: body { font-size : x-small;"

      And you expect people to take you seriously when you care more about the font size than the content? Some people may not be design experts, but they may have interesting stuff to say.

      --
      "When the only tool you own is a hammer, every problem begins to resemble a nail." - Abraham Maslow (1908-1970)
  12. I wish by matth1jd · · Score: 3, Insightful

    I wish I would have read this piece before starting college. I have to say I agree whole heartedly with the author. I was just offered two seperate positions not because of my programming skills but because of my ability to communicate to others.

    If there is one thing I want to say to those looking to go into Computer Sciene or a related field it is learn to communicate! Learn to write, and write well! Learn to communicate effectively with other human beings! This may require social interaction that involves not being at a computer. Get out of your room, or parents basement, and talk to people! Go to parties and talk to girls, get over any notions of fear or doubt you have. Be confident. Strong communication skills will get you further than you think.

    The hiring manager at the company I accepted the offer from said, "We chose you because you could talk to us. You didn't talk to us like a programmer, you talked to us like a human being."

    -J

  13. The best advice... by Not_Wiggins · · Score: 4, Insightful

    Learn how to communicate.

    That means learn how to express yourself in a way that others will understand; tailor the message for your audience so they'll "get it."

    And learn how to listen to what's being said; others may not be adept at expressing themselves, so if you can learn how to get to "what they mean" instead of just "what they said," you'll be much better off.

    And the cool thing is, these skills will carry you through your career, no matter which field you study.

    --
    Diplomacy is the art of saying, "Nice doggie!" until you can find a rock.
  14. True confessions... by rah1420 · · Score: 4, Interesting

    I find myself a closet programmer. By day I'm what They (tm) call a "Systems Analyst," said with a breathy expulsion like it is some sort of position involving the laying on of hands. My employer makes no bones over the fact that this is the Way of Things, so if I want to continue to get a paycheck, I will learn soft skills and management skills and all that other non-coding stuff.

    But what do I do at night? I go home and write code. Why? Because I get a blast out of it.

    I think Joel's article is right on; especially the piece about learning C. I was taking an inventory of my skills (mostly with 4GLs and non-bare-metal languages, though I have written smatterings of C++ and S/390 Assembler) - and the one area that I'm really deficient in is C.

    Since I'm also in school for an MS in Information Systems, it might take me a little more time than I thought... but It Will Be Done.

    As far as my employer goes, they can promote the soft skills and the management skills all they want; I may even find my hair forming into the PHB hair style; but when I go home and close the door, they will take my laptop only if they pry my cold dead fingers from around it.

    --
    Mit der Dummheit kämpfen Götter selbst vergebens.
  15. Good Internship by Ironsides · · Score: 2, Interesting

    I agree with him about getting a good internship. I got one in summer 2003 that payed $6/hour. Not many in the area applied for it due to the low pay. summer 2004 and 6 weeks before graduation I am worrying about finding a job. I figure I'd call them up and see if I could get the internship again. Turns out they called me before I could call them. It turned into a full time permanent job I am enjoying now. As to what I do? I work at PBS, make good pay and get to play with 5,6 and 7 figure TiVos. (AKA Broadcast Servers).

    --
    Fly me to the moon Let me sing among those stars Let me see what spring is like On jupiter and mars
  16. GPA useless??? by Sebastopol · · Score: 4, Insightful


    My company gets thousands of resumes a week. We absolutely need a first-line filter. It is GPA.

    In my career I have found that GPA is a very good indicator of a whole host of things. When I get a pile of resumes on my desk, I skip the 4.0s and throw out the 3.0s, if nothing turns up in between, I go back to the 4.0s.

    4.0 = uptight asshole or passionless droid

    3.5ish = smart but obviously had to work at it

    3.0 = probably only excelled in things s/he liked

    3.0 forget it, not worth my time because you shouldn't have been in college if you can't maintain a high-B low-A average.

    The 3.0-3.5 range implies they are not suzuki-method droids, but actually had to work as proof by some low grades (so not everything came easily to them), OR, they cared about something enough to get an A and demoted things they didn't care about. This shows promise in my eyes.

    Regarding college 4.0s, my gripe is that they tend to be passionless about what they master, but they seem to master quite a bit. I sound like I'm knocking them, but not really: most 4.0s in college studied their ASSES off and never developed a social life. While this is admirable, there is more to excelling at a career than studying what's in a book.

    I can easily recall 5 superperformers at my company (4.0 doctorates from top schools with 3-5 years experience at work), and they all share the same traits: stubborn, egocentric, verbose, scared of precision error greater than 1e-10, and always in the goddamn way of deadlines!

    --
    https://www.accountkiller.com/removal-requested
    1. Re:GPA useless??? by spac3manspiff · · Score: 2, Insightful

      4.0 = uptight asshole or passionless droid

      3.5ish = smart but obviously had to work at it

      3.0 forget it

      Translation... You're damned if you do, and you're damned if you dont

    2. Re:GPA useless??? by psykocrime · · Score: 2, Informative

      My company gets thousands of resumes a week. We absolutely need a first-line filter. It is GPA.

      In my career I have found that GPA is a very good indicator of a whole host of things. When I get a pile of resumes on my desk, I skip the 4.0s and throw out the 3.0s, if nothing turns up in between, I go back to the 4.0s.


      That's a fine approach, as long as you're comfortable with knowing that you're going to miss out on some really talented people that way. Sure, you'll hire some good people along the way, but you'll screw yourself by passing up some top notch people as well.

      There's nothing intrinsic about GPA that makes it a meaningful indicator of how somebody will perform at a job. Come to think of it, there probably isn't *any* metric you can use to evaluate potential employees, that works out to much more than a crap-shoot.

      Evaluating people, in any profession, is an imprecise art. If it were otherwise, you wouldn't see guys drafted in the 1st round of the NFL draft get cut before the regular season starts, and you wouldn't have undrafted free-agents in the Pro-Bowl.

      The point of all this? That evaluating talent is difficult and error-prone, no matter what. And no matter what arbitrary standard you filter on ( 3.5+ GPA, 4.40 forty-yard dash, 38 inch vertical, whatever) you'll wind up missing out on somebody you should have hired (or drafted).

      --
      // TODO: Insert Cool Sig
    3. Re:GPA useless??? by Jerf · · Score: 3, Interesting

      I've always thought that if you have a 4.0 grade average, and you have anything less than a massive course load from the best college in your major, you must not be challenging yourself.

      I have a Master's Degree in Comp. Sci., and I did not graduate from my undergrade with a 4.0; it was around a 3.5. I had something like a 3.8 in major, but I preferred to challenge myself outside my major. (MSU made that easy with their "Honors College" program, which gets you out of the generic crap courses, provided you replace them with real classes. So, for instance, instead of the Generic Social Studies classes that you normally hear people bitching about, I took several real psychology classes; if you can't find something that you like, what the hell are you doing in college? (That program also got me into the hard math courses no questions asked, and I was able to make several other nice substitutions for harder courses that were actually easier for me in a way because I liked them.) In the event you recently started attending or are thinking of going to MSU, I highly recommend hooking up with them.)

      I had an English History class that I got a hard-fought 2.0 in. While this is one of my weaker grades, I'm also proud of this one; it was solidly in the middle of the pack in that class, which was eight other history majors. (Woohoo, two hour essay tests with four questions, graded on grammar, spelling, and historical synthesis! Pity that class wasn't labelled as one of the "writing intensive" ones, it beat the snot out of the one I had that was actually labelled as such and I'dve preferred to spend those credits elsewhere.) I also took the advanced physics and never got a 4.0... but I understand it better than those who took the standard one. (Non-calculus based mechanics leaves you with a bit of an inferior understanding, but non-(multi-variate-)calculus electromagnetism is nearly a waste of time!)

      So no, I didn't carry a 4.0, because I pushed myself as hard as I could. I, too, would be concerned about someone who got a pure 4.0 in undergrad, and would want to examine their transcript closely, to make sure it wasn't loaded with too many "basketweaving for jocks" equivalents. A pity there isn't a way to have a "difficulty adjustment" for GPAs; I know that my "grade performance average" would end up higher than quite a lot of the "grade point average" 4.0s.

      As others have pointed out, college is what you make it. If you find that your classes are so easy you could just read the book, take harder classes. Self-fulfilling prophecies, anyone?

      (I don't say this stuff to brag; frankly I don't give a shit what the average Slashdot denizen thinks of this. I don't much respect the majority of you anyways when it comes to things like this; quite a lot of you are spoiled little snots when it comes to academics. But if it helps even one person get something good out of college, it's worth it.)

    4. Re:GPA useless??? by Jerf · · Score: 2, Interesting

      Well, as somebody who earned a degree at a respected state university with a 4.0 while working full time after serving six years active duty military to pay for it, I can say that I'm anything but spoiled.

      Oh yes, you are so the majority.

      Sorry, this is a pet peeve of mine, people who seem to just mentally edit out qualifiers like "most" or "some" or "the majority" and automatically slam them to whichever absolute makes for the best rant. Unless you are convinced that you are an average case around here, I can still respect you, disrespect the majority, and leave you with no grounds to consider me a hypocrite. Try to be less touchy, OK?

      And as I have said in the past, I do not do my best writing for slashdot. It's a waste of time, in more ways than one. (One subtle one is every second you waste reviewing, you're losing readers, and while I don't do this for readership it is pointless to waste my time if nobody is going to see it; this is the reason I never reply to threads from more than a day ago even if there is a raging argument.) You missed a few typos, if you're going to be an ass about it, I also added an "e" to "undergrad" right in the second paragraph. I'm sure that's not an exhaustive list.

  17. Its . . . by JJ · · Score: 3, Funny

    . . . amazing how much bad grammer and poor spelings holds back you.

    --
    So long and thanks for all the fish . . . !!!
  18. when I was in College by WormholeFiend · · Score: 2, Funny

    I was a closet-nerd.

    I joined the Football team, I went to the gym, I dated the cheerleaders... but at some point it got so frustrating to live such a falsehood.

    I eventually moved out of the frathouse and into a poorly lit basement appartment and switched from a BA in Phys. Ed. to Computer Sciences.

    Now I read slashdot and I live the out-of-closet life of a warflamin'geek! w00

  19. Learn Learn Learn... by Doverite · · Score: 3, Insightful

    When in college try not to focus all your energy in one spot especially your strongest areas. You're already good at that, if you work at that your GPA will go up .1 . But, if you work on your weaknesses, that's where you have the most room for improvement and get the most rewards for the smallest efforts.

    --
    You can legislate morally you can't legislate morality
  20. 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!

  21. English by csbruce · · Score: 2, Funny

    In short, learn to write English, learn to write C, and don't worry about India!

    Hinds' Seventh Law: "Make it possible for programmers to write programs in English, and you will find that programmers cannot write in English."

    Bruce's Seventh Law: "Make it possible for programmers to write programs in C, and you will find that programmers cannot write in C."

  22. Well-rounded is a must by Anonymous Coward · · Score: 2, Insightful

    I'll never forget one of my CS profs telling the class in a 400 level that a number of the 100 and 200 level profs have found that many of their incoming students can't remember how to do long division. Many of the students I see at my university have terrible HS educations, and we are one of the top public schools in Virginia. The ability of so many that I have seen to coherently argue a point, especially without resorting to profanity and ad hominems, is simply non-existant at my school.

    What's interesting to note is how well people who take advantage of the liberal arts nature of our university tend to do in CS. Of course perhaps these people value learning for the sake of learning, rather than seeing money signs when they're selecting their course schedule. I'm not sure exactly which it is.

    Communications skills would seem to be the easiest way for Americans to differentiate themselves from foreign outsourced competitors. If we can eloquently communicate what we are doing to our employers and write very clear documentation, then we can add another reason to stay with us. That's not to say that Indians naturally have poor communications skills, in fact the few we have here are probably more adept at this than a number of my American peers. What it does do, is it makes it harder and harder to justify moving labor overseas because it makes it only about money, not capabilities.

    One or two classes on technical communication can really make a big deal in how you are perceived if you take advantage of them. Isn't that what has been holding back OSS for so long? Arguably what has kept companies like Microsoft and Sun in the lime light for so long has been their ability to communicate to business people and developers.

  23. 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.

  24. Joel's Remarks on Grad School by FreshFunk510 · · Score: 3, Insightful

    (Disclaimer: I skimmed most of the article except for the part on grad school.)

    With all due respect for Joel, I found his remarks on grad school a bit discomforting. It's not that I don't like Joel and I think he has the occassional interesting word but I'd have to disagree with his remarks over why/when he chose NOT to go to grad school.

    I went to Berkeley and worked in the research labs in their CS department. From what I saw the CS grad students did very interesting things. At the time some of them were doing high quality streaming media, using millions of robots the size of pennies, building the next generation peer-to-peer networks, etc. Sure there will be your handful of professors who want to prove that 1 = 1 but most others in tech are out there to do something cool (examples: Sun's RISK processor (berkeley), Google (Stanford), Inktomi (Berkeley), etc.)

    I'm not an expert on this but from what I've heard it only pays off if you go to a GOOD grad school in CS while the mediocre ones are probably equivalent to going to a good undergrad school. I'd say that sounds about right.

    --


    "Injustice anywhere is a threat to justice everywhere." - Martin Luther King, Jr.
    1. Re:Joel's Remarks on Grad School by bfields · · Score: 2, Insightful

      I also was a little put off by his discussion of that class--it sounded to me like he didn't really have a good understanding of how proofs work, and, more generally, theoretical mathematics and computer science work.

  25. 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?
    1. Re:Anti-intellectualism is actually... by EnderWiggnz · · Score: 2, Interesting

      as a person who took a little longer than-i-shoulda to get my degree, here is my advice to you:

      stick with it, as it is far easier to answer that question of "do you have a degree?" with one word, "yes"; than a convoluted explanation of why you dont, and why it doesnt matter.

      --
      ... hi bingo ...
    2. Re:Anti-intellectualism is actually... by HumanTorch · · Score: 2, Informative

      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.

      I, too, am kicking myself in the rear for obtaining an 'easy' degree (Geography) after high school and now I am paying for it.. I'm 32 and its back to school next year.

  26. Re:Internship?? Get a real job. by l4m3z0r · · Score: 2, Insightful
    After the first month at your "real" job you will be practically TEACHING the CS Classes you are taking.

    Either I don't know what a real job is or you took some really shitty CS classes. First off you don't learn dick about CS as a help desk lackey. As a programmer you honestly learn little more aside from bad habits that become hard to unlearn when you are shown proper theory.

    CS != fixing computers and CS != programming. My advice to you go to a real school, the kind where you are constantly being challenged and the kind where you are taught actually CS not just here is a tour of programming languages. Its people like this that are ruining Computer Science as a science, instead they look at it just as a trade ie programming.

  27. 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!
  28. What a hypocrite! by j.bellone · · Score: 2, Insightful

    What a fucking hypocrite. His first point "Learn how to write before you graduate" is totally fucking blown away by his run on sentences. Jesus christ, I thought that I wrote bad. Looking at this guy I can clearly see that I don't need all those writing classes I planned on taking.

    The rest of his points seem to be on the "obvious" side; who the hell is this guy? Maybe I'm not up on all the writings and books but I've never heard of this guy at all. He obviously needs to go back to college for writing if he has anything to do with publications. I was disgusted after the first two "paragraphs", if that's what you can call them.

    --
    I'm f#$king magic!
  29. Is a CS degree a requirement now? by saddino · · Score: 2, Interesting

    Interesting. Even when I graduated (1991), it was still possible to get a programming/development job on basis of skills/experience alone, regardless of degree (or G.P.A. for that matter).

    So a question for those just-graduated (or about to graduate): Does anyone hire "self-taught" programmers anymore?

  30. Non-cubicle jobs by sidles · · Score: 2, Interesting

    Comments from a surfer newsgroup, on non-cubicle jobs:

    OSU Beavers wrote: Peace Corps Anyone?

    Has anyone done this? I don't think I'll be finding a job after I graduate and don't feel like bein a mooch off the parents. Besides I wanna do something to help others. I'm hopin to get into the pacific islands region...

    PNW Old Guy (me) replied:

    My son spent two years teaching in the outer islands of the Federated States of Micronesia (FSM). Then when he came back, he joined the US Marines, and saw heavy action in Fallujah.

    His scorecard: both experiences were enjoyable, but overall, in the Marine Corps he had more job satisfaction, better pay and medical benefits, and he felt he did more good for the local population.

    The point being, the Peace Corps is definitely *not* for people who are wondering what to do with their lives. Life in the third world is *much* tougher than ordinary life, and in many respects is much tougher even than life in the Marine Corps.

    This is especially true if you sincerely want to make a difference. Most likely, the third world will chew you up and spit you out.

    A smart strategy is to enlist in the Marines first, and *afterwards* --- once you are toughened up and have a clue--- do a stint in the Peace Corps.

    Burleigh (from Oz and Norway) replied:

    I have both girlfriends and mates that have done several stretches in Lebanon and Kosovo with the UN Peace Corps. All of them came from the army prior to joining and were 'ready' for what awaited in these warstruck areas. It was tough, but they all tell great stories about how welcome they felt and how appreciative ppl there were for the help. That said I can say they came back as different people - quiet and at times withdrawn and not eager to talk about all the bad things they walked into while in service.

    I think the cameraderi you get with your fellow soldiers b/c of situation is something very special that will stay with you forever. My friends are still close to the people they served with 5- 8 years ago. Now they are all rehabilitated and 'normal' and some even considering of doing it again.

    Good money, great experience, and all in all - you really feel like your making a difference. If your mentally fit for it.

  31. Oh, and one more thing by Wind+Son · · Score: 3, Insightful
    Good article. I agree about communication and people skills being valuable to programmers. I'd add one other thing that has me pulling my hair out as both a developer and as a manager of developers: the lack of fundamental business knowledge. Developers need to figure out where they fit into an organization, how organizations are structured, and what considerations they need to take into account that are based outside technology but have deep technological impacts.

    I often compare it to being a lawyer (as any analogy, it breaks down, but it's useful to consider). Like lawyers, tech people have a basic skill/knowledge set that is unfamiliar to execs. Like lawyers, we are highly specialized in our training and in applying intellect to solving complex and comprehensive problems. And like lawyers, mistakes can be extremely costly. Unlike lawyers, however, we do not give programers any kind of insight into business structures, concerns or patterns in school. As a result, many developers don't really know where they fit into an organization, how they can partner with other business units, or when to compromise "ideal" for "useful"--i.e. when expediency is required and how to evaluate trade-offs from a comprehensive perspective. That leaves us wandering a mine field with no idea that tap-dancing isn't very wise...

  32. Emphasis on a well-rounded education is the key by tyrione · · Score: 4, Interesting

    My background is a B.S. in Mechanical Engineering where upon graduating in 1993 had the lovely firsthand experience of what was a recession in my field. I returned to do a second bachelor's in computer science.

    I worked full-time at the campus IT Department while taking classes vastly ill-structured compared to my M.E. courseware. The options of languages to learn were behind the industry and this is a Pac-10 University I'm citing. Like almost all accredited programs they seem to be under the umbrella of Electrical Engineering. I ended up having to take several classes that I fulfilled in Mechanical Engineering for C.S. The smug remark was always the same, "I don't believe you guys covered this area with applied math in your EE class equivalent." My retort was always, "I don't believe you guys covered anything in your Statics/Dynamics cliff notes and Thermo for idiots equivalents but we don't make you waste time and money taking the full crap if you wanted to do a Masters in M.E."

    Needless to say, I was looked upon as a "typical elitist Mechanical Engineer" within the department. I was only there to apply Finite Element Analysis, study Computer Modeling and hopefully get my ass back into a career I had just spent five years educating myself to do. To eliminate the boredom of the classes I made sure in both degrees to have a minor outside the range of technology that may expand my mind. I declared a minor in Anthropology.

    Anthropology is where I rekindled my love of writing and love for what makes us tick inside. This diversion made studying science much more enjoyable.

    However, it doesn't improve one's odds at retaining a career of their choosing. You garner such skills through Social Engineering--a nice label for Social Networking--where one learns to manage time, alcohol and communicating with the sexes over countless hours of downtime. This set of skills matched with one's professional skills are what land you the interviews and ultimately the ability to adapt into new careers thanks to the chaos known as the Real World. It doesn't guarantee one to always be ahead of the storm--that depends on whether one is constantly cautious and through pessimism looks for such pitfalls.

    In short, expect several careers, various job titles that will most assuredly have nothing to do with your formal education and more to do with your social education and more importantly realize your needs fluctuate in life--the needs that we label as attributes to personal fulfillment.

    Thanks to this lovely recession I'm currently focused on writing short stories, novels and verse to land me a new career, while simultaneously refreshing myself in Mechanical Engineering (I put that on hold while working in Silicon Valley and the Northwest for a decade) as well as make a conscientious effort to further my technical skills in Linux, OS X, C/ObjC and Java.

    The moment you think you have learned enough to sustain a lifestyle of your choosing will be the moment you realize you've never had such a lifestyle afforded you. The promised land of telecommuting around the globe have yet to become the norm. Without this option one is always in debt upon entering the doors at the new job chosen by you which rarely is in the same town and most often requires you to relocate, at considerable expense, on your dime.

    Welcome to the Belly of the Beast, where nothing is guaranteed nor afforded to you without a price. Sacrifice, patience and an unwavering desire to be adaptable to change is the only guarantees one has of never succumbing to the blackhole of has beens, contenders, or desperate souls who have given up on all their dreams. No longer vibrant and creative over a few beers while doing their studies they now just meander along in life with the highlights being Friday at the bars, Saturday with the woman and Sunday afternoon Football as their only reprieve from a thankless life of compromise.

    The greatest falsehood in the Real World is that what was afforded to you

  33. Re:Slashdot: Comforting Lies for the Cardboard Cro by psykocrime · · Score: 3, Informative

    A high GPA score tells me that person has already done exactly that in an academic environment.

    No it doesn't. Your conclusion is just one of many that you *could* infer from a high GPA. It could also indicate somebody who cheated like hell, slept with their teachers, "played the grade game" by taking the easiest possible classes, etc., etc. High GPA is not a guarantee of strong performance in the "real world."

    There are so many factors that you have to evaluate beyond just a single number, to come to anything close to a meaningful conclusion. Who's better, the student with the 4.0 GPA who took things like "Basket Weaving" and "History of Pornography as an Art Form" as electives? Or the guy with a 3.4 GPA who took "Quantum Mechanics" and "Intro to Neural Networks" as electives?

    or what about the difference between a student with, say, a 3.8 GPA, who had rich parents to pay his way through school, and didn't have to work at all - versus a guy with a 3.5 GPA who worked full-time, 3rd shift, and followed work with an 8:00 am section of "Discrete Mathematics?" Hmmm... who is more "competitive" and has more will between those two? Which one will outperform his/her colleagues in the working world?

    Are you *really* comfortable just picking the higher GPA in either of these cases?

    Why should I take the risk that someone with a mediocre score will suddenly decide to apply himself once he's on my payroll?

    You're taking a risk either way. GPA is just one factor you should look at, IMHO. If I were evaluating a candidate, I'd want to see their transcript, and actually look at what courses the selected. I'd want to talk to the person and find out what their interests are, what motivates and drives them, etc.

    and FWIW, my own GPA is a 3.75 at the moment, so none of this is an attempt to apologize for myself.

    --
    // TODO: Insert Cool Sig
  34. GPA, degrees, et al by jd · · Score: 4, Insightful
    First off, the practical value of a degree depends on which educational philosophy the University or Polytechnic subscribes to. If it teaches subject "facts", then it's likely outdated and outmoded knowledge that is of little value in the real world. On the other hand, if it teaches you HOW to learn and HOW to obtain/evaluate information, then it is credible, even if the subject material covered IS ancient - you're then equipt to update what you know.

    Second, the "job prospect" value of a degree, GPA, certification, etc, has nothing to do with the quality of the subject matter. It has to do with the fame of the place. A Cisco certification is going to land a network engineer a job, even if they know bugger all about networks but can pass exams without trying.

    These two should never be confused. Good scientists, researchers and engineers will remain good, even if they have little or no paperwork. You can identify them because they get good results. Crick and Watson didn't need certifications in genetics to do DNA research, they needed some modelling straws, a few stolen photographs, imagination and phenominal intelligence.

    On the other hand, hiring managers and Human Resource divisions aren't equipt to evaluate candidates on practical skills, because they can't be expected to be experts in all relevent fields. They rely on test results, exams and other easily compared data. They have to.

    The best "college advice" anyone can get is to learn how to learn (important to actually DO anything) but ALSO focus on the quantifiables (because you'll never get a chance to DO, if nobody believes you CAN).

    The day and age where people with actual skills could make their own opportunities has long since passed. There are no "self-made" people out there. Success and failure depend on a twisted mess of trust and codependency in the job markets, COMBINED with actual skill in the field. You need both. (Stupid, but that's the way it is.)

    High scores only mean you can do exams of the type you were set. "Multiple Guesswork" exams are common and require no skill or knowledge beyond being able to eliminate the obviously wrong. (In a typical multiple choice exam, you're set 4 possible answers, of which two are often so far out that they're tied to the paper with a bungee cord. By eliminating those, you're guaranteed a score of 50%. If you can eliminate "unlikely" answers, you'll do 75% or better.)

    "Good" practical tests of real "real world" cases are rare. Practicals are typically simplistic and free of typical problems. However, those "problems" are often not "noise", but characteristics of the cases in question. So, eliminating them renders the case study meaningless.

    eg: Programs that can't run into memory problems, require CPU cycles, or have sync problems with threads, are not real. Everything costs, and programming is about figuring out how to maximise the benefits while staying in the costs - complexity, cycle count, financial expense, RAM, etc. The reason for the bloat in modern programs is that costs are neglected in education and therefore understanding isn't important to get a good test score.

    Other examples would be latency-free infinite-bandwidth networks. Or parallel code that doesn't consider Ahmdal's Law. Or microkernel OS' that don't consider the expense of the added layers. Or real-time systems where components are running at such disparate speeds that they cannot function together.

    If you don't know why things happen, you can't know what to do about them. Having a bunch of "facts" is merely having a religion - received wisdom with no backup or proof that all too often conflicts with what people actually see.

    You've got to be "initiated" in the religion of the job market, if you are ever going to be hired. But you cannot afford to believe in it, if you expect to do more than blindly and robotically follow a set script. Sure, many employers WANT robots,

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  35. Internship available by Animats · · Score: 2, Informative
    Joel says "get an internship", and we have one. Paid, even.

    Team Overbot, Silicon Valley's entry in the DARPA Grand Challenge, is hiring.

    Coolest robotics project in the area. Great resume builder.

    C++. GCC. Python. Geometry math. Electronics work. Field testing. Hard problems. Not boring.

    In Redwood City, CA.

  36. Re:College Question by psykocrime · · Score: 3, Insightful

    I was wondering if the university you attend matters in the long term? I'm a freshman right now at a university close to home with a scholorship. The university isnt known for computerscience and the cs classes are really easy. I was wondering if it is worth it to transfer to another (more expensive, well known) university.

    I think the answer is "it depends." Some hiring managers might put great stock in the "eliteness" of your school, some may not care at all. Myself, if I were doing any hiring, I admit I would be somewhat impressed by someone who graduated from Stanford or MIT, and might be a bit more tempted to call those folks in to interview. But I certainly wouldn't exclude someone just because they went to North Carolina Central or East Carolina (or, God forbid, UNC-Wilmington) instead.

    All said, I think that going to a more prestigious school is more likely to help, than hurt, your career opportunities. So if you are accepted to, and can afford, the more prestigious school, I'd say go for it.

    --
    // TODO: Insert Cool Sig
  37. As usual, a mixed bag by leshert · · Score: 4, Insightful

    I usually like what Joel says just enough to keep reading the essays. This is a pretty good one.

    When I'm interviewing a recent college grad, though, I don't look at GPA as much as he does. Too often, high GPA indicates that a student figured out what the professor wanted to hear, and said it in the way the professor wanted to hear it. This is even true in the hard sciences. While you won't get a high GPA without having some grasp of the material, the difference between a 3.0 and a 4.0 is often how much you pander to the professor or TA.

    But the seven points of advice are right on, especially "Learn to write" and "Get a good internship". To these, I would add "do something career-related outside your courseload".

    There are many recent CS grads who did well in coursework, can write acceptably, and don't stink up the interview. I want one who has enough drive and intellectual curiosity to do something beyond what's required.

    If you've got an industry-related blog or website, or you've written a couple of programs out of curiosity or for your own use, then you have a major advantage over your fellow students at interview time, at least if I'm doing the interviewing.

  38. 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.
  39. He had me til' the Bug tracker by Momoru · · Score: 2, Interesting

    I'm reading this and i'm like hmm, decent advice blah blah blah... i didn't get a great GPA in college but i did land a good programming job...blah blah blah and first i'd like to say I've never heard of this Joel guy, the submitter and Joel himself make it sound like he invented the first computer program ever, but i've never heard of him, and i like to think I keep on top of tech news and people. Then he ends his story with "kids one day you can make a great bug tracking software like my company does", and i look at the website, and no joke i've created a bug tracker with as many features as that in a single day, and I don't consider myself any kind of computing guru (I certainly dont have a website called momoruonsoftware.com). So i'm not entirely impressed with his guy, and his "Make sure you take C, and dont worry about logic classes" advice. Anyone want to explain who this guy is and why anyone should listen to his advice?

  40. Re:AC Gives College Advice For US Programmers by wcrowe · · Score: 4, Funny

    learn bricklaying and plastering, plumbing, carpentry, welding

    That way you can compete with Mexicans for jobs instead of Indians.

    --
    Proverbs 21:19
  41. 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.
    1. Re:while (*s++ = *t++); by WasterDave · · Score: 2, Insightful

      Well, for a start there are no buffer length limits.

      Secondly there was nothing wrong with strncpy all along.

      Thirdly I've always hated the "testing the result of an operator =" thing because it always looks like a operator == gone wrong.

      Fourth, it has no comments. The fact that we're sitting here debating what it does is a problem in itself.

      Fifth, if it's some wanker showing off because they can write l33t fast C code they need beating over the head with a copy of an Altivec book. Or a SIMD book. Maybe even a DMA book.

      Do I need to go on?

      Dave

      --
      I write a blog now, you should be afraid.
    2. Re:while (*s++ = *t++); by dghcasp · · Score: 2, 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...

      And if you can't explain why you should never use this to copy a string, then I don't want you coding at my company. (Hint: What if t isn't null terminated, or len(t) > memory allocated to a?)

      And if you think strncpy(2) is the solution, I still don't want you coding at my company. (Hint: If char a[256], *b = "string longer than 256 bytes," then strncpy(a,b,256) will leave a non-null-terminated.)

  42. I agree by hsoft · · Score: 3, Insightful

    I think this Joel guy gets far more coverage from Slashdot than he deserves (It's not his first story covered by /.).

    And I don't agree about his C thing either. If you really want to know how the machine works, why not learn directly assembly instead? And when you actually want to produce something, switch to Python :)

    --
    perception is reality
  43. Good, although brief article by tlim · · Score: 2, Insightful

    The article really does describe what hiring managers look for because it is what they did themselves. Time and time again, I look back at what I learned in college, and when I've hired engineers. It's EXACTLY what I look for when hiring. The only thing I don't completely agree is the whole C argument. C is fine, but its just another language. For you to really understand what a programming language does, take a compiler course. Now you will know what the computer does to your language, and what the assembly looks like. Who cares if its C, C++, Java, C#, Scheme, LISP, ADA, or FORTRAN if you know that semantically, they all eventually get down to the same low level assembly, and theoretically, are equally as powerful? Languages are different though, as the constructs on top of them make it more useful in certain applications than others (so let's not get into a non-theoretical argument of how powerful a language is). The other suggestion that I'd recommend is to take an operating systems course where you actually write a scheduler, memory manager, etc. That foundation will allow you understand the fundamentals of an operating system and help you extrapolate out to what modern operating systems do, and how the affect your systems as a whole. Also, it is possible, and probable that you could get a software engineering job without many of the things that Joel espouses, but to be honest, the best overall engineers (business decisions as well as technical), do most of what Joel writes about in his article.

  44. But now is not then. by oneiros27 · · Score: 2, Insightful

    If you had attempted to take classes while you believed that the degree wasn't worth anything, you would have slacked off, and possibly have subconciously attempted to prove yourself right.

    Actually caring about what you're doing, be it your work, or you school, can make a significant difference in how well you do it.

    My former boss's roommate said that he was glad that he didn't go straight to college after high school -- because it gave him a chance to appreciate how important the degree was, and if he had gone straight to college, he probably would have spent all of his time partying, and have failed most of his classes.

    --
    Build it, and they will come^Hplain.
    1. Re:But now is not then. by Poseidon88 · · Score: 2, Informative
      Excellent point. I was lucky enough to have a couple jobs in high school that convinced me I needed to get a degree. Nothing like chatting with a man who's made a lifelong career out of managing fast food restaurants to motivate you.

      Granted, 10 years ago, it was possible to get a foot in the door of the software industry without a degree if you could show a proficiency in at least one programming language. But those with degrees were still able to get better jobs and salaries. Nowadays, you'd be hard pressed to get so much as an interview without a degree of some sort.

  45. Slashdot anti-slashdotism by themusicgod1 · · Score: 3, Insightful

    The anti-slashdotism here on Slashdot is extraordinary. I must admit to being rather surprised whenever I see comments like "slashbots don't know nothin" or a recent post ...I hate slashdot with excellent spelling and descent grammar. Responses to them are generally stated that slashdot is worthless.

    Amazing.

    --
    GENERATION 26: The first time you see this, copy it into your sig on any forum and add 1 to the generation.
  46. Better Advice For Programmers... by nazzdeq · · Score: 2, Insightful

    Instead of listening to Joel, whoever he is that admits "I'm so hopelessly out of date that I can't really figure out AIM", here's some better advice from young programmers. 1. Don't go into programming. You cannot compete with off shore programmers. 2. If you are dumb enough to do anyway, always get jobs at the top notch companies, ie Fortune 100. 3. Who you work for is more important that what you do. 4. Worry about your career early on and don't just think that doing a good job is all there is. 5. Work on your own product and company along the way so you can leave the rat race behind. 6. Never stop learning. 7. Learn about selling and marketing. 8. Always think 80/20. 9. Don't confuse urgent issues with important issues. 10. Always use feedback to improve your thinking and actions. If you're still programming at 45, you screwed up big time along the way. :-) -Nazz

  47. An couple of additions by jordandeamattson · · Score: 3, Insightful

    In general, I approve of Joel's recommendations in this essay. That said, I would make a couple of additions:

    1. Take an introduction to finance
    Learn how to read and know the differences in a financial statement including a balance sheet, an income statement, and a cash flow statement. Learn the differences between operating and capital expenses. Learn how the income statement can say you are making a profit, when the cash flow for the period is negative!

    Finance (along with the law) are the programming languages for the operating system called business. If you understand them, you can hack them just fine!

    2. Take an introduction to business law
    Learn what is and isn't a contract. Learn what a tort is. Learn the differences between a patent, a copyright, and a trademark.

    The Legal System (for good or for ill) has a tremendous influence on our lives. Being illiterate in the law can result in self-inflicted wounds!

    Yours,

    Jordan

  48. What Joel doesn't know about Logic... by Anonymous Coward · · Score: 2, Interesting
    If it takes three hours of filling up blackboards to prove something trivial, allowing hundreds of opportunities for mistakes to slip in, this mechanism would never be able to prove things that are interesting.

    There is a lot Joel doesn't know.
    • Lots of mathematical propositions fall into logics for which we have decision procedures. That is, if what you want to know meets certain constraints, a computer can decide "yes, that's true" or "no, that's not true, and here's why" automatically. Look up "Model Checking," and "SAT solving," and "BDDs".

    • Even if a proposition isn't solvable by an existing decision procedure, a mature theorem proving system such as ACL2 can automate much of the reasoning. Designing automatic proof strategies is not easy, but theorem proovers are becoming invaluable verification tools to companies such as AMD.

    • The potential for mistakes to slip in is only a shortcoming of hand-generated proofs. Rigorous proofs are, by definition, checkable by a computer. Each step of a rigorous proof applies a basic rule of inference to something that is known to be true (either because it is a basic truth (an axiom) or because it has been proven) to derive something else that is true. So if your axioms are consistent and your atomic inference rules are sound (for example, if you're using some standard ones) then the computer will only accept the proof if what you're trying to prove is true (assuming the computer doesn't f**k up).

    • Has Joel ever needed to be able to characterize in an unambiguous, computer-readable way what it means for an algorithm to be correct--especially if that algorithm is asynchronous/non-deterministic? I doubt it, because if he has, he would see how useful Temporal Logics (such as LTL, CTL, etc.) (what he probably learned as "dynamic logic") are.

    Sure, bug tracking software doesn't need rigorous verification, but i wouldn't fly on any airplanes that Joel wrote the software for.
  49. Missed the point, I think. by Ieshan · · Score: 2, Informative

    His point, as far as I can tell, is twofold.

    One: You get from college what you put into it.

    Two: A guided, strong college curriculum pays higher dividends than trying to learn on your own.

    The guy who posted in a Ph.D. in neuroscience (spec., visual neuroscience). Trust me, you don't learn neuro from reading about it, you learn neuro from being in a lab, tinkering with experiments, reading the data, and trying to discover new things. You can't do surgery in the library.

    The library and internet in the hands of a motivated man are very useful, but they don't equal the experience of learning from a trusted and qualified advisor, especially if you get to be a part of his or her research program.

    The real college experience has nothing to do with being told to "shut the fuck up". Book learning is static, a college experience (by the fourth year) should be dynamic, learning the bleeding edge of things that haven't been put in the books yet. I'm sorry yours didn't turn out that way. =)

  50. Re:I agree. by Firedog · · Score: 2, Insightful

    I responded to that thread, but I did not state that a college degree was worthless.

    A college degree is supposed to represent something, namely an "education". Ideally, an "educated person" should be a well-rounded individual, with a solid understanding of civilization and how it came to be that way. This includes a basic understanding of a wide variety of subjects, from economics to biology to history to mathematics, with no major "holes" in this liberal arts foundation. An educated person should have a well-developed ability to think critically, and should have established a solid rapport with the innate self-education apparatus that all humans are born with.

    Learning how to self-educate is the most important lesson of college, because that skill will be valuable throughout life. It involves using whatever resources you can get your hands on. Those might be classes, books, newspaper articles, people, the Internet(s), trial-and-error experiences, etc. Each resource has a lesson to teach.

    In today's world, however, more people go to college than ever before, and as a result, the degree has been "dumbed down" to the point where it no longer means that a person is "educated".

    A college degree is not (and never has been) the one true path to the end result of being "educated". There are many other ways to get there, and this is what people forget in our metrics-obsessed society.

    That was my main point.

  51. Very bad advice by Stu+Charlton · · Score: 4, Informative
    This piece was an exercise in ego, with a couple of decent nuggets thrown in.

    But this line takes the cake: ...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...

    Right. Because programming is all about understanding pointer arithmetic.

    This statement has nothing to do with CS, nothing to do with software engineering, nothing to do with digital design or assembly. This strikes me purely as "my language is better than your language" elitism.

    I firmly believe in his general thesis: a great software developer pays attention to soft and hard skills. Software development is a continuum of skills: at one extreme, it's all about people -- at the other extreme, it's all about computer science.

    However, the argument that the best programmers must know C idioms can be reduced to the argument that the best programmers must know (in depth) electrical engineering, digital design, or physics. Because otherwise, it's just superstition that the machine works!

    In today's world, knowledge is the essential resource. It's more important to know how to organize your ignorance than to try to learn everything.

    Abstract languages like Simula, Lisp, and Smalltalk completely changed the way we look at computer science. It brought the "people" element back into it - the need to think and communicate primarily at the level of the problem, not at the level of the machine -- but retaining the ability to drop down to machine level when necessary.

    Abelson and Sussman explained this shift in the preface to SICP, which I think is a good way to end this rant (highlights mine):

    First, we want to establish the idea that a computer language is not just a way of getting a computer to perform operations but rather that it is a novel formal medium for expressing ideas about methodology. Thus, programs must be written for people to read, and only incidentally for machines to execute.

    Second, we believe that the essential material to be addressed by a subject at this level is not the syntax of particular programming-language constructs, nor clever algorithms for computing particular functions efficiently, nor even the mathematical analysis of algorithms and the foundations of computing, but rather the techniques used to control the intellectual complexity of large software systems.

    [...]

    Underlying our approach to this subject is our conviction that ``computer science'' is not a science and that its significance has little to do with computers. The computer revolution is a revolution in the way we think and in the way we express what we think. The essence of this change is the emergence of what might best be called procedural epistemology -- the study of the structure of knowledge from an imperative point of view, as opposed to the more declarative point of view taken by classical mathematical subjects. Mathematics provides a framework for dealing precisely with notions of ``what is.'' Computation provides a framework for dealing precisely with notions of ``how to.''

    --
    -Stu