Slashdot Mirror


Is a Computer Science Degree Worth Getting Anymore?

snydeq writes "Self-taught technologists are almost always better hires than those with a bachelor's degree in computer science and a huge student loan, writes Andrew Oliver. 'A recruiter recently asked me why employers are so picky. I explained that of the people who earned a computer science degree, most don't know any theory and can't code. Instead, they succeed at putting things on their resume that match keywords. Plus, companies don't consider it their responsibility to provide training or mentoring. In fairness, that's because the scarcity of talent has created a mercenary culture: "Now that my employer paid me to learn a new skill, let me check to see if there's an ad for it on Dice or Craigslist with a higher rate of pay." When searching for talent, I've stopped relying on computer science degrees as an indicator of anything except a general interest in the field. Most schools suck at teaching theory and aren't great at Java instruction, either. Granted, they're not much better with any other language, but most of them teach Java.'"

14 of 630 comments (clear)

  1. Engineering was always a better bet.. by xtal · · Score: 5, Interesting

    If you've got the chops for a real CS degree, you have largely the same options open for you with an electrical engineering degree, and a lot of other ones you'd be excluded from, too.

    If you want to do applied math.. well.. I'd get a math degree and take some CS courses to bolster the programming. Discrete mathematics is just that. Math degrees aren't that common, and IIRC, sought after, especially in finance and statistical analysis.

    CS is in an awkward spot. It never was meant to be a trade degree.. somewhere along the lines it was expected to be one. Hilarity did not ensue.

    YMMV.

    --
    ..don't panic
  2. Description of most of my CS classes by Anonymous Coward · · Score: 4, Interesting

    I'm doing Bachleor's of CS now. In most CS classes I do the following: Look left, look right, look at palm, apply palm to face. I know most of these clowns won't make it to the end, but the fear of some making it is what keeps me up at night. To put it gently, the piece of paper is not enough. CS seems like one of the fields were you always need to take the concepts you learn, apply them, and take them further. You also learn more things not covered in the course, but that are in your book. Then you learn things not in the book. If you expect the average CS curriculum to turn you into a genius, then you have a problem. In addition to my studies, I provide supplemental in class tutoring in several CS courses at local community college. Now in their defense a lot of people in those classes are not CS, usually you get Engineers, and those that are usually have dreams of making video games because playing them is all they do with their time. But the most bizarre question I get after they learn a simple program is: "What can I do with this?" It's like you show a cavemen how to make fire, and they ask you: "What can I do with this fire?" It's like showing a cavemen the wheel and having them remark: "So what?" I just don't know how to answer this question properly. I have tried several responses.

  3. cost by girlintraining · · Score: 5, Interesting

    Of course it's worth getting; assuming the cost of the education is low enough. I believe the average person goes through 3 career changes in the course of his/her life. That's about 16 years in the field, give or take. We'll say the average income in the field is $50,000 -- just for comparison's sake. And let's say your education costs $80,000 (a not unreasonable sum, considering how quickly costs are ballooning). Now obviously because of interest rates and taxes and whatnot, this is an overly-simplistic estimate and I won't consider those -- but given the above, you'd be paying 10% of your income back over the expected life of your career.

    The real question you have to ask is -- is the increase in income greater than the cost of the education? Now, obviously, the above numbers are overly simplistic, but it's a starting point to a more in depth analysis. I think you'll find that when all the variables are taken into account, a college education only delivers a marginal benefit to your overall quality of life compared to either trying to get your foot in the door without one, or doing a job that doesn't require one. At least in my country (the United States), with the middle class rapidly imploding due to greed and other factors... you probably want every edge you can get. Work the numbers carefully; If you miscalculate, your financial future is grim.

    --
    #fuckbeta #iamslashdot #dicemustdie
  4. Re:I'll take getting a job Alex by White+Flame · · Score: 4, Interesting

    To pull out my standard Slashdot Car Analogy(tm), it's like a mechanic who knew nothing about cars before deciding that fixing cars looked like a stable career and went to trade school but doesn't tinker on his own vehicles because "that's work", vs somebody who's been under the hood of a cars since they were 13.

    Sure, those who enter the field later in life might be great at it, but your average worker in that position won't hold a candle to the one who was self-taught through driven interest, especially if they then went on to formal education in the field.

    Disclaimer: On the flip side, too many solo hobbyists don't know how to convert their hobby into professional work when it comes to demands, tradeoffs, and communication on the job.

  5. Re:CS != Coding by mooingyak · · Score: 4, Interesting

    People are making a fundamental error in terminology here. If you're looking to hire someone for a programming job, then you shouldn't be looking at someone with a CS degree. Computer Science is not about coding or programming, it's about the practices behind it. If you want a coder, go hire a code monkey from your local technical college. If you want someone to design the software, make sure it's sane, and then hand it off to a code monkey, then hire a CS grad.

    I've met some guys who were decent coders but not very good designers, but I've never once encountered the opposite. I haven't seen much in the way of correlation between lack or presence of a degree.

    --
    William of Ockham had no beard. The most likely explanation is that it was chewed off by squirrels every morning.
  6. Self taught often have gaps in their knowledge by perpenso · · Score: 5, Interesting

    Self taught and degree aren't mutally exclusive ... Also university isn't just about learning a trade (that's trade school). It's about getting a rounded education in stuff you probably don't give a shit about ...

    I can't agree more. Learning on your own **and** learning as part of a formal degree program is probably the best. Most purely self taught tend to have gaps in their knowledge. They are just as smart, possessing the same raw talent and I have worked with many and would be happy to work with them again ... but occasionally gaps are evident. There are classes in a degree program that a person has no interest in and they are unlikely to study on their own. However these "uninteresting" topics are sometimes important or may provide an unexpected solution or insight into something you are working on.

    I have only met one person who is purely self taught, reads computer science textbooks or the equivalent, and reads such books covering a wide variety of topics comparable to what one sees in a traditional computer science program. When I was working on my degree I borrowed Knuth vol 1-3 from this person, these were not vanity books for a bookshelf, they were all obviously read.

    Most people do not posses the discipline to do it on their own. They will benefit from a formal program that forces them to do things they would not otherwise do.

  7. Re:I'll take getting a job Alex by frosty_tsm · · Score: 5, Interesting

    This is just the once-a-month self-taught vs CS-degree article to start a flame war. Seriously, enough is enough.

    Self taught people are effective, but sometimes they do things that are traditionally dumb like build their tree upside down. They can come up with creative solutions (because by their nature they think out of the box), but stumble on things a university graduate would find basic because we studied it and they didn't. Many can't do pseudocode or understand what big-O notation means because you never encounter it unless you've taken an algorithms class. On the flip side, non-CS-degree people are behind a large part of the CouchDB and no-SQL movement because they weren't constrained by traditional thought.

  8. More than just the language de jour.. by dthanna · · Score: 4, Interesting

    The professors at the university I went to specifically told us that they were not there to teach us how to program in a particular language. But to give us the fundamentals to program in any language that we needed to. If you need to program in x, go buy a book on x and learn the language. And, to make that point, we were thrown at Pascal (all the data structures classes), ADA, C (networking, operating systems), C++ (OOP) , COBOL, databases, a couple flavors of assembler, file systems (I can still do block calculations) computers and law, and, to top things off, PostScript. I also was able to pick up a minor in mathematics, classes on Russian history, Western Civ., communications, economics, physics, chemistry and all that other 'crap' that is to make you a well rounded egghead. Because of that expanded world-view, I can actually work with my counterparts in India and treat them like human beings. (For everyone that is bemoaning the fact that jobs are going over there - don't blame the Indians - they want the same thing for their families as you do - food on the table, roof over their head, clothes on there back and a better life for their children. Blame your local politicians and business leaders).

    Because of the way they designed the CS environment, and how they approached the material, I was able to build stuff that ran circles around the 'self taught' folks. Sure, we can build a linked list and tree in COBOL 85 to do fast data lookups (COBOL didn't support pointers in that release, but it has this really good array system). I understand the multiple tree structures inside of a PDF - and how the file actually organized as it is written to disk.

    I have a CS degree.. I work in IT... and to be honest, I rarely use the programming skills to actually program - most of what I did was in PostScript when I did program. But, I've also had to learn Python, JavaScript, Visual Basic, 370 Assembler, JCL, and SAS when the need arose. Lately what I've needed to do is advise other folks on good practices vs. bad. Talk to the engineering departments at my vendors how their systems work (or don't) .. sometimes with an uncanny insight into how their systems were actually programmed (I'll bet Bob wrote this at 3AM) hopefully with some great ideas on how to make their better. I can translate business rules into software rules (four years coding pension plans) and generally understand why business operates the way they do. Finally, I made some great friends there. The kind of friends that are still friends 20 years later.

    Yea, at least for me, the CS degree was worth it.

  9. Re:CS != Coding by Pseudonym · · Score: 5, Interesting

    If you want to understand how and why a compiler works, and how to build one, CS is for you.

    If you just want to use one, it's probably not.

    "If you want to understand how English works and how it came to be, linguistics is for you. If you just want to be a writer, it's probably not."

    "If you want to understand how music works and is put together, music theory is for you. If you just want to play an instrument, it's probably not."

    Do you see the problem here? You can't call yourself a professional writer of English (or any other language for that matter) without some knowledge of the grammar, morphology, semantics and pragmatics of it. No, you don't need to be a linguist to the point that you can diagnose speech delay in children, or construct your own conlang. But you need to know how your language works, and you need to know it well.

    As for your specific example, even if you never consider writing a compiler, many (if not most) programming tasks involve at least some work that is compiler-like. For example, any time you need to write code which reads a file which has some structure, or implement a network protocol, you're writing a parser. If you don't know you're writing a parser, you'll inevitably write a bad parser which will either cause your code to die an obscure death, be a maintenance headache for years to come, or require a rewrite by someone who did study CS.

    --
    sub f{($f)=@_;print"$f(q{$f});";}f(q{sub f{($f)=@_;print"$f(q{$f});";}f});
  10. Sad degradation of expectations by tranquilidad · · Score: 4, Interesting

    I started programming in 1976 while I was still in high school. I went to a university and signed up for computer science but did not do at all well in the non-CS courses - probably because of the arguments I used to get into with the professors. I took as many CS courses as I could and quit school and started working. I retired at 43 in 2004 after ending up running a lot of very large product organizations within a pretty large company. The lack of a degree almost kept me out of the company but I had advocates within the company with whom I had worked who championed my cause.

    A VC called me to visit one of their startups in 2006 to see about joining at a fairly high level. Things went well until I interviewed with their head of HR and had the following conversation:

    HR - "You left education off of your resume. Why?"
    Me - "I didn't finish school and felt that a couple years of college weren't important compared to the rest of my resume."
    HR - "Don't you feel unfulfilled?"
    Me - "I'm sorry, unfulfilled in what way?"
    HR - "Don't you feel unfulfilled in not having a degree."
    Me - "Not really. I'm retired and your investor asked me to come see if I could help out. If it's not a fit then we can both walk away happy."
    HR - "Well, we'll need a notarized affidavit confirming your level of education."
    Me - "I'm not claiming to have a degree in anything and I'm willing to say I've had no schooling whatsoever if it will save us this process."
    HR - "No, we'll need the affidavit."
    Me - "I swear, I'm not hiding an advanced degree in nuclear engineering. How are you going to confirm that I'm not hiding advanced degrees?"
    HR - "It's policy."

    I never went back but I tell the story often about how the hiring process has degraded to a point of near uselessness. It's extremely difficult to find good talent to begin with and when we do find it the processes and legal jiu-jitsu we force the good applicants to endure makes it very difficult to bring them on board.

    The successful companies will continue to be those that get the processes out of the way and hold accountable the individuals who make bad decisions - be they hiring decisions or others.

    When you want to hire someone a good HR person will say, "Let me see how we can make that happen." Likewise, when you want to fire someone that good HR person should have the exact same response. Too often the HR and legal departments just become wielders of the veto pen and don't provide good support to the underlying mission of the organization.

    As a result, we end up with sadly degraded expectations where hiring becomes a check list of acceptable and non-acceptable gates through which our candidates pass and out the other end of the process is a mealy mash of homogeneity that does little to promote diversity of thought within an organization.

    The degree is still important but only as a single component in an overall tapestry that represents any particular candidate.

  11. Re:And it can keyword match by AK+Marc · · Score: 4, Interesting

    Nobody is asking you to lie, they're asking you to jump through a hoop.

    I've been asked to lie. A job required a computer science degree and 5 years experience (it was an entry level help desk position doing phone support). HR called me. I had a B.S. in an unrelated field and 12 years experience. I was asked to say that the experience is equivalent to a degree, so that I could be considered for the position. I'm guessing there was a shortage of people with a degree in computer science and 5 years experience looking for a low-paying phone support position for a crappy bank website. Given the requirements and the fact that they were so high, despite not being able to find suitable candidates, it was a clear sign that I didn't want to work for a circus master who finds it amusing to make others needlessly jump through hoops. Have a test in the interview. Don't have a hidden test in the form of hoops before getting there. That's just mean, and I wouldn't want to work for a prick like you.

  12. Re:Mercenaries by Grishnakh · · Score: 4, Interesting

    This kinda reminds me of those women who refuse to date a man unless he's married, and their goal is to get the man to leave his wife and marry her. And then, when the man cheats on her with yet another women, she's shocked!

  13. Uh, no. by symbolset · · Score: 5, Interesting

    You don't even know. MIT grads can be excellent, or not. I've known a few I wouldn't trust to do my laundry.

    Dude, I had a BA in computer science and a decade in the field when I was washing dishes in a cafe and deli many years ago. That's a vast understatement of my qualifications then. I've cleaned the same grease trap over, and over, and over. Do you know what a grease trap smells like? It smells like fragrant death. I had to deal with the owner's daughter, whose sole gift to humanity was that she was born rich and thought that was a reason to beat me down. I used to pause while walking the mile to work in all weather here and there to vomit.

    And at that time I had implemented LZW, designed my own operating system, programming languages, popular BBS forums, a platform for magazine distribution through self-executing e-zines, a streaming graphics protocol and a number of other things. Had been a Unix admin for a decade. Everybody involved knew I shouldn't be there but that did not change my life. And I guess that's OK. I had to survive to find the opening I needed to get out of that hole, and they needed things too. I'm not afraid of honest work. I managed to learn some useful things: I'm still a killer chef and baristo. I had to fight my way out of that hell.

    Eventually I got lucky and got back in the tech game, and have since found a good spot for me. Ever since I don't assume things about others, no matter their situation or education. They have only to show me they can and will do the work, and they suit.

    --
    Help stamp out iliturcy.
  14. Re:The answer is simple.... by bluestar · · Score: 5, Interesting

    "yes, but those were all hobby projects, not actual industrial experience, we can't accept that"

    That's why I created a "company" and registered a domain. I credit all my "hobby" work to that company. It at least gets you past the HR idiots and then you can explain things better to an interviewer. I don't "use Linux at home", I build HA web clusters for fun.

    --
    "The cost of freedom is eternal vigilance." -Thomas Jefferson