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.'"

20 of 630 comments (clear)

  1. Mercenaries by asmkm22 · · Score: 5, Insightful

    The mercenary culture is a direct result of companies not sufficiently increasing wages for existing employees. If you want to avoid having talent leave, then pay them what the competition is offering, and treat them well. It's pretty simple.

    1. Re:Mercenaries by Anonymous Coward · · Score: 5, Insightful

      I think its fair to say loyalty is dead on both sides.

    2. Re:Mercenaries by Anonymous Coward · · Score: 5, Insightful

      Loyalty may be dead on both sides, but it's the business that creates that culture, because the business is (more or less) in the position of power. An employee can do little to create an organizational culture that is conductive to loyalty (short of being the CEO, but that's another kettle of fish)- the only thing an employee can do is vote with their feet. It's whoever is in charge of the management that does things like set salaries, policies for fair and timely promotions, employee development, vacation time, quality of the health care, work/life balance, etc etc.

    3. Re:Mercenaries by Anonymous Coward · · Score: 5, Insightful

      I am at the point now where if I am in an "at will" state, I will not give notice. The last place I worked that fired my entire team--and it was actually the fourth employer to do that, out of a total of five on my resume--gave us all of 3 and a half days warning before giving five dozen people the bum's rush.

      You want more than a mercenary? Treat your employees as a long-term investment rather than a profit/loss ledger entry. Otherwise, I will never stop sending out resumes, and will never stop looking for a better job. The instant I get a better offer letter, I will demand a raise, and rescind my agreement to your bullshit non-compete if you say no. Then I will burn all my accumulated leave days and resign the day I return.

      Don't give notice. Tradition be damned. If they want to hire you without a contract and treat you like a fungible asset, they need to accept the possible consequences of that. Don't. Give. Notice. If you want to be professional about it, put together a continuity plan that they can execute if you disappear.

      When *anyone* on your team is laid off, start looking for jobs. When ownership changes, particularly if purchased by leveraged buyout, start looking. When someone else jumps ship, start looking. Keep a current list of your (competent) co-workers with reliable contact info at all times, and don't be shy about trying to bring them along when you go.

      They want us to be mercenaries.

  2. Poor article. by Anonymous Coward · · Score: 5, Insightful

    Poorly written and full of absurd sweeping generalizations.

  3. CS != Coding by Strider- · · Score: 5, Insightful

    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.

    --
    ...si hoc legere nimium eruditionis habes...
    1. Re:CS != Coding by Anrego · · Score: 5, Insightful

      Personally I don't think they should be decoupled.

      My experience has been most people out of uni with a CS degree can't do either well. I'd rather someone in an architect role who worked their way up from code monkey and thus has a solid foundation in the realities of actual software projects (rather than someone spewing stuff out from their design patterns book).

  4. As a person that has hired a lot of developers-- by Anonymous Coward · · Score: 5, Insightful

    I would not hire anybody who is "Self Taught". In fact, I looked at schools, GPA, the whole shebang. I want to see that someone has the discipline to go through the process, work with others, and actually see something through to completion.

    Tattoos, piercings, etc-- Didn't matter, I had lots of good people that may look funky. Degree from a good school- Mandatory.

    Your mileage may vary, but I think you deserve to hear the truth from somebody that has actually hired developers and managed them.

  5. Computer Science degree is absolutely needed. by sageres · · Score: 5, Insightful

    Self-taught, learned Basic, Pascal, C back in High School. Got a job and career without a degree, wanted to get a degree, thirteen years after high-school eventually got Computer Science degree.
    From that perspective I can tell you that it only made me a thinking programmer (not just a coder), a program designer. Topics such as asymptotic analysis are indispensable. Those who do not have such a degree, I found them to be lacking in code quality.
    Computer Science degree is absolutely needed.

  6. Re:As a person that has hired a lot of developers- by girlintraining · · Score: 5, Insightful

    I want to see that someone has the discipline to go through the process, work with others, and actually see something through to completion.

    So what you're saying is, you're an asshole. You aren't hiring based on experience or ability, but because you went to school and therefore they should go to school. You say that you value someone seeing something through to completion -- but you can't fake ability or skillset for years on end. You can fake test scores, classes, hell -- you can buy yourself a degree online if you so desire.

    But you can't fake job references. You can't fake supervisors saying "that guy really knows his stuff." You're a bad manager because you've made an assumption, you're operating on belief. That's what bad managers do. Good managers go on instinct and experience... and maybe, if you had worked your way into your position instead of having been handed a degree and slotted into it, you'd know that.

    I have no respect for you, and I wouldn't work for you whether I had a degree or not, regardless of the pay. I work for managers who understand information technology is a creative profession, where skills change faster than courses can be designed to teach them, and experience is worth more than book smarts. I don't want to work with someone who can name all the layers of the OSI model but can't explain to me why having large buffers on the border router is a bad idea when it serves a call center.

    And that's what you get with a college degree: Book smart. Not street smart.

    --
    #fuckbeta #iamslashdot #dicemustdie
  7. Re:The answer is simple.... by Anonymous Coward · · Score: 5, Insightful

    Employers want to hire people who can do really hard things, do them well, and not charge a lot for it.

    Employees no longer receive pensions, and in the field of computer programming they expect to be completely un-employable at 40 years of age (not due to lack of talent, but to rampant unchecked agism). So, employees *need* to charge a lot for their work.

    So what is the whine here? Fresh college grads don't instantly perform at the level of seasoned veterans? Boo-fucking-hoo. If you want top of the industry talent then you must pay a top of the industry salary.

    Don't like the fact that employees aren't loyal? Take a good long look in the mirror there, mister "job-creator."

  8. Re:The answer is simple.... by mcrbids · · Score: 5, Insightful

    Employer here... When hiring, I look for two things:

    1) Can they program? Simple question, really. I don't expect them to be all that proficient in our specific langauge, so I usually leave questions open ended in terms of tools used. I'm looking for general ability to approach a problem and come up with a reasonably structured, workable solution using whatever tools he/she desires.

    2) Suitability to our company. Here, I'm looking to see that working at our company would actually be a reasonable match. If somebody's interested in big city life, they probably don't want to work at our company because we are in a small-ish California valley town. We do heavy doses of databases with SQL. So if your passion is 3D or firmware, I'm probably not thinking it's a good match, etc.

    You'd be stunned how many applicants with otherwise gorgeous resumes cannot perform a simple string replace in any language whatsoever. Also, don't put something on your resume that you know nothing about, because I will ask. Don't tell me "5 years of Enterprise database experience with SQL Server" without being able to write a query or something. If you mention Linux, you'd better know basics like how to read output from ls -l or use find or sed with some grace.

    --
    I have no problem with your religion until you decide it's reason to deprive others of the truth.
  9. Re:I'll take getting a job Alex by SJS · · Score: 5, Insightful

    However, I stay clear of Java or Visual Studio only people. They have a truly warped and unrepairable mindset.

    Stay clear of anyone who is [anything]-only.

    Anyone who will only use one language will warp all problems to that language -- and worse, warp all solutions to only those that they don't have to think about. It doesn't matter if the language is Java, C#, C++, C, Perl, Python, Ruby, or COBOL. If they are only willing to code in one language, let them go.

    Nearly every accredited university offers "language survey" courses. This is where a CS degree can be useful -- the graduates have, in theory, been exposed to other languages. Bring this up in the interview. See if they can articulate the tradeoffs of various languages.

    Entirely-self-taught developers often require a lot of basic remedial training. I'd suggest investing in them only if they will spend their evenings completing a CS degree. For an intelligent and skilled person, this isn't terribly difficult. The ones to be careful with are the "Meh, I can't be bothered to obtain/complete a degree." types. They might be intelligent, and they might be skilled. But their ego is going to make a lot of work for everyone else, as that can't-be-bothered attitude is a sign.

    (Yes, there are lots of people who could only possibly succeed in an academic environment where the problem is carefully structured to be completed in five weeks by a mediocre and distracted person. This is where "what do you do in your free time?" comes in useful. One of the best teams I've ever worked on had "What are the last three books you've read for pleasure, and when?" as a key interview question.)

    As for the 10% effect ... Sturgeon's Law.

    --
    Pick One: http://www-rohan.sdsu.edu/~stremler/sigs/sigs.html (Note - disable Javascript first!)
  10. Re:I'll take getting a job Alex by Greyfox · · Score: 5, Insightful
    Acing a programming interview isn't rocket science. Just take notes, ask questions that show you're listening and don't fuck up when they ask you to design a function that does X.

    People seem to have the most problem with the last one, so let me break it down for you: Do NOT go to the whiteboard and start coding. Do that and you have pretty much failed before you have even started. Start by asking some questions. Is it OK if X modifies its parameter(s) in place, or should it pass them in as consts and return by copy? (Usually X is something with a string.) Is it OK to allocate memory if necessary? Is it OK to return a copy or should the programmer pass a buffer? Should I worry about unicode? Should I use char*'s or strings (In the case of C++)? Is there anything else about X that I should be aware of? This is called "gathering requirements." It indicates that you're not just some code monkey. It would also be a good idea to write requirements down somewhere. Like on the whiteboard, maybe.

    At this point do not go to the whiteboard and start coding! Go to the whiteboard and a start analyzing the problem. Draw out your memory and look at what happens when you do swaps and things. Push variables around. Consider various methods of solving the problem and their advantages and disadvantages. Think about the loops you'll need to go through. Show the interviewer your train of thought. This is called "designing." It indicates that you're not just some code monkey.

    Once you've got that down a couple of them might still want you to code something, but you've already proven you're a man and not a cabbage or something. And even if they DO want code, it'll be easy at this point! You don't have to die on this question, people! Of course that still might not get you in the door at a Google or an Amazon, but that's still all you need at a lot of other companies.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  11. Re:The answer is simple.... by Scarletdown · · Score: 5, Insightful

    Sounds like those mental midgets did you a big favor by not hiring you into their little circle of hell.

    --
    This space unintentionally left blank.
  12. Re:The answer is simple.... by Xest · · Score: 5, Insightful

    "Employees no longer receive pensions, and in the field of computer programming they expect to be completely un-employable at 40 years of age (not due to lack of talent, but to rampant unchecked agism). So, employees *need* to charge a lot for their work."

    I see this complaint a lot on Slashdot, perhaps it's country specific (the US?) but in my experience it's completely and utterly false in the UK and is merely an excuse for people who just don't cut it, and simply haven't kept their skills uptodate, or are merely just crap employees which makes them useless, no matter how much they've done before. It's the IT world's equivalent of manual labourers whinging about immigrants - sorry, but if an immigrant beats you to a job despite you being native to a country with a better education system, and often a native language advantage then it's your fault for not taking the opportunities given to you whilst the immigrant managed to make himself the better candidate despite not having the advantages you did. Oh, he took less pay? tough shit, you were probably overpaid- no one thinks they're overpaid, but it doesn't mean they aren't.

    Honestly, it's tiresome to hear, if you're good at what you do and are willing to put in the hours then no one gives a fuck how young, or old you are, what race you are, what sex you are. It's the same as the women who whinge about the glass ceiling whilst simultaneously saying "Oh, but I need to leave at 3pm every day to pick the kids up" - tough fucking shit, get your husband to do it or accept that that's the price you pay for choosing to be the member of the family who opts to do less hours.

    I know plenty of 40+ and 50+ programmers and none of them are having a problem with employment because they're good at what they do, and they've kept learning continuously throughout their careers. I do know some unemployed 30-somethings who worked in software development, but they're all unemployed because they're simply shit, they are the bottom 8%. Others I know that age and younger are seeing booming careers because they're simply superb at what they do.

    There still seems to be far, far more software jobs around than there are suitable candidates. If you find yourself long-term unemployed in this field for more than maybe 3 months and think someone else is to blame, then you're probably one of those people incapable of introspection, if you're incapable of introspection, you're not going to be able to look objectively at your skills and abilities and recognise why employers don't want you. Or to put it simply, you are the problem.

    Most employers aren't stupid, if you're asking for a sensible wage, and are extremely competent, then they'll jump at the opportunity to hire you whatever the fuck other traits you have. Racists, ageists and other bigots thankfully tend to get selected out in the world of business, because their competitors that aren't bigotted will rapidly snap up the talent they didn't want, leaving them with the shit.

  13. Re:The answer is simple.... by somersault · · Score: 5, Insightful

    Um.. it's called an analogy.. and it's quite apt.

    --
    which is totally what she said
  14. Re:The answer is simple.... by BVis · · Score: 5, Insightful

    No, it's fresh college grads that can't instantly perform at the level of seasoned veterans, want to learn but are forced to work 90 hour weeks with no training opportunities, and expect to be paid a living wage.

    Fixed that for you.

    --
    Never underestimate the power of stupid people in large groups.
  15. Re:The answer is simple.... by Xest · · Score: 5, Insightful

    No, your inability to stand up for yourself and your inability to ensure you're talented enough to be able to jump ship from any such company that expects such a thing are the reasons you have to work an 80 hour week.

    I've never worked an 80 hour week, not once, I wouldn't even touch an employer who expected such a thing and you're an idiot if you do. If you do, then that also makes you the reason you have to work an 80 hour week - because you're actually letting companies get away with such absurdity. If you don't like it then walk, go get a job elsewhere, can't get a job elsewhere? skill up, improve yourself, then go get a job elsewhere. The only thing stopping you working somewhere that doesn't expect you to work an 80 hour week is you.

  16. Re:The answer is simple.... by tompaulco · · Score: 5, Insightful

    If you're good at what you do, you'll be employable (no matter what the field, no matter what your age).
    I used to believe that, too. Whenever somebody couldn't find a job no matter how hard they looked, I just said it was because they weren't head and shoulders above everyone else in the field. Then, when it happened to me, I changed my tune. I realized that just because you are really good at something and even if your last employer fought to the last tooth to keep you as long as possible, doesn't mean that you are employable, at least not in a down economy. In a down economy, a company would rather hire cheap below average performers than a guy who is expensive but could blow the roomful cheap guys out of the water in terms of performance.

    --
    If you are not allowed to question your government then the government has answered your question.