Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Education Programming IT

Is a Computer Science Degree Worth Getting Anymore? 630

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.'"
This discussion has been archived. No new comments can be posted.

Is a Computer Science Degree Worth Getting Anymore?

Comments Filter:
  • Mercenaries (Score:5, Insightful)

    by asmkm22 ( 1902712 ) on Tuesday September 11, 2012 @10:10PM (#41308025)

    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.

  • Troll? (Score:3, Insightful)

    by Anonymous Coward on Tuesday September 11, 2012 @10:11PM (#41308035)


    Making grandiose claims with no actual data?

    Yup. He probably didn't go to college.

  • Poor article. (Score:5, Insightful)

    by Anonymous Coward on Tuesday September 11, 2012 @10:12PM (#41308041)

    Poorly written and full of absurd sweeping generalizations.

  • CS != Coding (Score:5, Insightful)

    by Strider- ( 39683 ) on Tuesday September 11, 2012 @10:13PM (#41308051)

    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.

  • by Anonymous Coward on Tuesday September 11, 2012 @10:14PM (#41308053)

    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.

  • by SA_Democrat ( 682459 ) on Tuesday September 11, 2012 @10:19PM (#41308085)
    The Author doesn't seem to make the point that he's trying to make. Computer Science degrees may not be a good predictor for coding in language-of-the-week, but computer scientists would not make the kind of dumb rookie errors that you see every day in the real world. I still shudder about a self-taught contractor who wasted weeks trying to write a sort. I'm surprised that an article as poor as this one made the front page.
  • Re:CS != Coding (Score:5, Insightful)

    by Anrego ( 830717 ) * on Tuesday September 11, 2012 @10:24PM (#41308141)

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

  • by Dogbertius ( 1333565 ) on Tuesday September 11, 2012 @10:28PM (#41308171)
    I'm still surprised that there are /.'ers cannot distinguish between the degree/career mappings that be. At least in Canada and the USA

    -Learn: Active directory, Windows or UNIX servers, user management, e-mail server management, virus removal, setting up routers and VPN
    -Jobs: IT help desk, corporate IT, call centres

    Comp Sci:
    -Learn: Discrete math, basic programming, databases and DB theory, algorithm design, basic physics,
    -Jobs: University/academia, entry-level programming jobs

    Engineering (Electrical and Computer):
    -Learn: Calculus, discrete math, electrical circuits, electronics, materials, advanced physics, chemistry, economics
    -Jobs: advanced programming/development jobs, embedded dev, chip fabrication, academia

    Most IT programs in Canada are 2-year full-time/accelerated programs, while CS is a full-time 4 year program, and engineering is a 4-5 year double-full-time program. I still laugh when people are surprised that comp-sci majors know shit about removing viruses from PCs, while the engineering and IT students have been removing and even MAKING viruses since elementary school (ie: before they were 13 years old).
  • Re:Mercenaries (Score:5, Insightful)

    by Anonymous Coward on Tuesday September 11, 2012 @10:30PM (#41308191)

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

  • by HapSlappy_2222 ( 1089149 ) on Tuesday September 11, 2012 @10:30PM (#41308193)

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

    Or, you know, my employer could pay me what I'm worth now that I have expertise with this new skill. You paid for the training. Great, thanks; much appreciated. Now pay me the new salary I can command, too. Them's the breaks. You needed the skill to be brought on board, and I learned it, now pay for it. Consider it an investment in a better employee.

    I went in to ask for a raise years ago, having just graduated with my (you guessed it) CS degree, and also now that I had many more responsibilities and was travelling for the company.

    I was told that "travel is a perk, and your responsibilities are the logical progression of your position. We can't afford to give you that large of a raise." So I found someone who could. Best job I ever had, but below a certain threshold, the money really did matter.

    Honest employers realize this, and while everybody likes to save a few bucks, the best employers are the ones who care. It's a rare gift when you work for one.

  • by Sycraft-fu ( 314770 ) on Tuesday September 11, 2012 @10:32PM (#41308207)

    A job requires a bachelors? Well there you go it matches. If they require one in "computers" it also matches.

    Also don't whine about keyword matching: Learn it and use it. In many big companies, resumes are filtered by HR. They don't know shit about technical jobs. So what they do is look at the list of requirements given to them, and see if the resume matches. If so, it goes in the "good" pile, if not it isn't sent on.

    So if a company asks for experience in TCP/IP and you have networking experience, don't put networking, put TCP/IP. HR doesn't know those two things are related.

    This is how it works at the university I work at. Most departments have HR filter their resumes so the manager doing the hiring isn't inundated by crap. Some people resume spam no matter how little their experience is related to the job so you can have literally hundreds to wade through. So they have HR filter. What that means is only resumes that meet the requirements are passed on and THAT means buzzwords have to match.

    Like writing code, writing resumes requires using the proper terminology. Don't bitch about it, learn it and do it.

  • by sageres ( 561626 ) on Tuesday September 11, 2012 @10:35PM (#41308233)

    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.

  • Re:CS != Coding (Score:3, Insightful)

    by Anonymous Coward on Tuesday September 11, 2012 @10:36PM (#41308243)

    If you want someone to design the software, make sure it's sane, then hand it off to a code monkey, hire someone language-agnostic with 10+ years of experience that hasn't gone down the management route. If you want someone to use state machines when an if/then/else would work and use Factory patterns for unsigned ints, hire that fresh CS grad with 4 years (Freshman, Sophomore, Junior, and Senior) of OOP experience.

  • by Potor ( 658520 ) <farker1@gmail. c o m> on Tuesday September 11, 2012 @10:39PM (#41308277) Journal

    I'm not a coder, but I did do CS in high school back in the pre-Internet late 80s. We first learned flow charts, then algorithms, then had to program functions on calculators, and finally got out hands on TSR-80s to write BASIC programs. The brilliance of this was that my education was not limited to languages, but rather to techniques and logic. And now I teach philosophy, and have a healthy fascination with computers.

    As a professor, I ask my students to do the simplest thing - writing blogs with decent lay-out. They have all the tools they need, and I offer whatever help they request. Yet, this Facebook generation often gets confused with the simplest of tasks, including uploading pictures outside of Facebook. The Internet, obviously enough, has dumbed down everything. Students no longer try to apply techniques, but rather to respond to interfaces.

    To bring this back on topic - schools need to teach the logic and the basic techniques - with those, one needs simply to learn a language, which is not that difficult.

  • Re:CS != Coding (Score:4, Insightful)

    by AchilleTalon ( 540925 ) on Tuesday September 11, 2012 @10:40PM (#41308279) Homepage

    I second too, and I would like to add the universities do not have a mission to teach about industry products. Their mission is to transfer universal skills applicable in many fields and the state of the art knowledge about a specific field. Teaching about specific products is a dead end for universities. Employers seeking for graduates with a knowledge of specific products just don't understand what a university grade is and hence, underestimate the value of these candidates by making their own judgement on unrelated points.

    Teaching about a specific product is the employer's responsability. And if your staff quit after that, as many others already said, probably you are, again, underestimating the value of your employees.

    Think about it two seconds. If universities are to teach specific products, which ones should they pick? Are they supposed to decide what products the industry must use in accordance of their own teaching or the reverse, must the industry decide what product a university must teach to conform to their own requirements? And what about the student learning specific products for which there is no job available?

  • by jbplou ( 732414 ) on Tuesday September 11, 2012 @10:42PM (#41308303)

    When I hire I find most self taught aren't very good either. I think those with a degree generally have better breadth and depth with different technologies and theories. This is partially because a degree forces you to do some things you aren't interested in. But if you're looking for corporate developers go with information systems majors. Databases design and applied programming languages are more useful to most internal business analyst/developer types than compiler design, Assembler language, and even C.

  • Re:Mercenaries (Score:5, Insightful)

    by Anonymous Coward on Tuesday September 11, 2012 @10:56PM (#41308407)

    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.

  • by Mad Merlin ( 837387 ) on Tuesday September 11, 2012 @11:04PM (#41308447) Homepage

    A CS degree is a requisite but not sufficient property to make a good developer. They also need a genuine interest in the field, which most often manifests as being self-taught before getting a degree, and continuing to self-teach after getting said degree.

    Purely self-taught developers will miss learning a lot of important topics, not because they're difficult, but because they don't realize what they don't know. In particular, data structures (anything beyond arrays), databases (and normal forms) and algorithmic complexity. I don't care how good you are with $language, if you don't understand the above topics like the back of your hand, you're going to make a mess.

    On the flip side, purely academic developers are typically going to have knowledge gaps in more practical topics like input validation, version control systems and bug trackers. Again, you can get by without these, but you're going to make a mess (or someone else is going to make a mess of it for you when they exploit it).

  • Re:CS != Coding (Score:5, Insightful)

    by nightfire-unique ( 253895 ) on Tuesday September 11, 2012 @11:15PM (#41308549)

    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.

    My friend, they are one and the same.

    There is no such thing as a "code monkey." The term refers to someone who knocks out a lot of code (of varying quality). That's called programming.

    A good coder understands what every line does, and how it expands to CPU instructions. They understand why unrolling loops can avoid pipeline stalls. They understand O(n) and algorithmic complexity, clean API design, and memory management.

    Bad coders don't.

    Don't over-complexify the issue.

  • by raehl ( 609729 ) <raehl311@yahoo. c o m> on Tuesday September 11, 2012 @11:17PM (#41308569) Homepage

    What you want a guy who went to automobile trade school and owns at least one performance car he built/maintains himself.

    Employers don't have to choose between CS degree OR self-taught. They can choose both - look for people with CS degrees and side projects. Lots of kids I went to school with wrote some other software that had nothing to do with their classwork. And we put that on our resumes.

    That's why the whole, "I have a CS degree but I can't get a real job because I don't have experience!" excuse is BS. Anyone worth their salt as a programmer who has a CS degree can MAKE THEIR OWN EXPERIENCE at ANY TIME! When you get home from your call center job, just put down the controller and write some software, and assuming you stick with it, 6 months later you'll have some experience.

  • by TapeCutter ( 624760 ) on Tuesday September 11, 2012 @11:21PM (#41308597) Journal

    My theory is it doesn't work.

    As someone who has hired over 50 programmers in his career I don't need a theory to tell me it doesn't work, experince tells me it does work. If you're not smart enough to get past the HR filter, why the hell would I want to interview you?

    The problem for many of us is we want our resume to be truthful.

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

  • by xtal ( 49134 ) on Tuesday September 11, 2012 @11:25PM (#41308615)

    ..and the point being missed is that you can be someone who worked on cars their entire life, have a mechanical engineering degree, too - those are the guys who work on F1 cars.

    The best candidates will have proper academic training AND drive. They're not exclusive!

    I grew up taking apart 8-bit machines, hacking opcodes in memory and messing with analog phone lines. First I wanted to know how stuff worked.. then I wanted to know WHY stuff worked.

    YMMV. It's not black and white.

  • by psperl ( 1704658 ) on Tuesday September 11, 2012 @11:26PM (#41308623) Homepage
    I manage software developers for a large tech firm and have done significant hiring.

    My experience is in direct conflict to the ideas presented here. I have found the best results with pure CS graduates. The vast majority of self-taught developers I've worked with have huge gaps in their fundamental CS knowledge, while CS graduate rarely make poor algorithmic choices that we come to regret when our projects scale. Their code is often of higher quality so code reviews are less cumbersome and require less rework. CS graduates are usually nerds from an early age, and to a large degree self-taught before they reached college. These people are generally "serious" about computers, general nerdiness, and their work.

    Some self-taught people may be brilliant developers with less student loan debt than CS graduates, but they are not a reliable source of talent. If you are a professional bulding a team, stick with CS graduates, or you take a big risk. That well-spoken self-taught programmer might seem like a great candidate, but wait until you come across real CS problems.

    PS - There are a few engineering degrees which I think are just as good as CS
  • by Sycraft-fu ( 314770 ) on Tuesday September 11, 2012 @11:40PM (#41308707)

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

    Precisely. When I got my current job at the university I work at the situation was one of HR filtering. I knew this (particularly having worked there as a student before getting a staff job) and I tailored my resume accordingly. I did not lie, I didn't exaggerated, I just made sure my terms matched the terms asked for. If I recall correctly (it was 8 years ago) one of the things they asked for was experiencing with "routing and switching" not "networking". I had this in spades, and I made sure to phrase it as that.

    Yes, this does mean you need to customize your resume per job. Guess what? You should do that anyhow. When a resume is spammed, it tends to show. What it shows is you really aren't that interested in that job, it is just one of very many you are applying for. A customized resume means that the candidate might actually want that job, and just just a job.

    Regardless of it it works or not, it is the way things are at many places. At some places, there is no option. HR filters all resumes, period, the hiring manage has no say. So that being the case you should assume it is always the case and write a resume accordingly.

    It doesn't hurt you with the actual tech people who review you. I don't care if you put "networking experience", "routing experience," "TCP/IP experience," "Cisco experience," or whatever. I can reason out you mean that you've done more with a network than just use it. However an HR person can't, they can only match what is asked for with what you claim to have.

    Also, as the parent mentioned, it is something of an indicator. If you are unwilling or unable to play HR's game, that doesn't speak well for you. Being good at a job is more than just technical skill.

  • by Pseudonym ( 62607 ) on Tuesday September 11, 2012 @11:48PM (#41308767)

    Comp Sci:
    -Learn: Discrete math, basic programming, databases and DB theory, algorithm design, basic physics,
    -Jobs: University/academia, entry-level programming jobs

    Engineering (Electrical and Computer):
    -Learn: Calculus, discrete math, electrical circuits, electronics, materials, advanced physics, chemistry, economics
    -Jobs: advanced programming/development jobs, embedded dev, chip fabrication, academia

    I love it how a CS degree gets you an "entry-level programming" job, but an engineering degree gets you an "advanced programming/development" job, as if someone will hire you as a team lead straight out of university.

    If you want an "advanced development" job, a CS degree will do just as well as a SE degree in the long run. The advantage of CS is that it will work marginally better for you if you want to do R&D rather than just D.

  • by girlintraining ( 1395911 ) on Tuesday September 11, 2012 @11:52PM (#41308785)

    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.

  • Re:Mercenaries (Score:5, Insightful)

    by Anonymous Coward on Tuesday September 11, 2012 @11:52PM (#41308787)

    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.

  • by frosty_tsm ( 933163 ) on Wednesday September 12, 2012 @12:12AM (#41308919)
    At least from my observation, self-taught developers tend to stick with higher languages such as Ruby or Python rather than C or assembly (not a bash on their skill, just the tool they favor). Following this tendency, they would rarely run into a problem with C that requires them to call assembly code and they wouldn't miss this skill-gap.
  • by Anonymous Coward on Wednesday September 12, 2012 @12:24AM (#41309003)

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

  • by jd ( 1658 ) <imipak@@@yahoo...com> on Wednesday September 12, 2012 @12:56AM (#41309191) Homepage Journal

    Some nations provide grants and, arguably, a superior education as a result. It is my contention that educational systems that are driven by "market forces" must, by definition, offer the least at the greatest price that they can. (The more you offer, the greater the cost of providing the service. The lower the price, the less the return. Profit is return - cost. Market forces maximize profit and the only way to do that is to reduce what you offer and raise the price.)

    It is also a truism that beancounters aren't very good at deciding what services are actually important to the consumer. They're very good at telling you the price of everything but the value of nothing.

    What is wanted is to abolish student loans, switch universities to grant-based systems, fund students via grants, and pay for it by demanding that the universities so-funded provide education of high enough quality that the fraction of the increase in profits that go into taxes covers all those grants. That doesn't mean any individual line of education needs to pay for itself, only that the system as a whole be in dynamic equilibrium. The cost of one course must be covered by the benefit of another.

    By eliminating market forces, universities can focus not on fund-raises and PR stunts but teaching and research.

    Oh, that's another thing. I'd argue that all universities must do both as must all lecturers. (How the hell else are the lecturers to stay current, if not by research? How the hell else are the researchers to improve their communication, if not by teaching? Have different ratios for different jobs, since not all people are good at both, but breadth of experience shouldn't be limited to students. Fossilizing is how you ruin a good lecturer.)

    Since most kids enter university with inadequate education to actually DO any kind of real degree program (universities often waste the first year teaching remedial maths and English), I'd contend that schools should also be forced to pick up the pace. This, of course, requires adequate funding, but it also requires a serious look at what is being taught. Creationism and ID are distractions. Standardized exams may be cheap, but they allow teachers to teach to the syllabus (ie: teach the least) and to avoid teaching any understanding. Schools should be 100% about understanding, facts should be on formula sheets. I'd also abolish leaving school before completing a BS/BA rather than at a fixed age. It means the best can leave at age 15, so it doesn't change school-leaving ages, it just means those leaving early are competent to.

  • Re:Derp? (Score:5, Insightful)

    by ranton ( 36917 ) on Wednesday September 12, 2012 @01:26AM (#41309347)

    [quote] that's because the scarcity of talent[/quote]
    Hogwash, no such scarcity exists. There is a scarcity of talented programmers that will work for minimum wage (inside the U.S.). But that's not really the same thing now, is it?

    Whenever someone claims there is no talent scarcity in the software development industry, I am reminded of the poker proverb: If after ten minutes at the poker table you do know know who the sucker is, you are the sucker.

    If you work as a developer and you do not notice the severe level of talent scarcity, you are probably not talented enough to notice. I don't know you at all so I could be way off base in this one case, but I have never met a skilled developer who wasn't frustrated with the lack of talent in the industry.

  • by melted ( 227442 ) on Wednesday September 12, 2012 @02:04AM (#41309515) Homepage

    >> "I don't have a computer science degree"

    Found this sentence and did not read the article. The guy lucked out by being in the right place at the right time, and now he's spouting his confirmation bias to anyone who would listen. I'm also pretty sure he doesn't know what "confirmation bias" is. :-)

  • by mcrbids ( 148650 ) on Wednesday September 12, 2012 @02:15AM (#41309553) Journal

    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.

  • by SJS ( 1851 ) on Wednesday September 12, 2012 @02:30AM (#41309637) Homepage Journal

    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.

  • by Greyfox ( 87712 ) on Wednesday September 12, 2012 @02:43AM (#41309699) Homepage Journal
    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.

  • by Scarletdown ( 886459 ) on Wednesday September 12, 2012 @03:23AM (#41309867) Journal

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

  • by Xest ( 935314 ) on Wednesday September 12, 2012 @05:45AM (#41310401)

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

  • by somersault ( 912633 ) on Wednesday September 12, 2012 @06:12AM (#41310513) Homepage Journal

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

  • by TheRaven64 ( 641858 ) on Wednesday September 12, 2012 @06:25AM (#41310575) Journal

    So what is the whine here? Fresh college grads don't instantly perform at the level of seasoned veterans?

    No, it's fresh college grads that don't instantly perform at the level of seasoned veterans, don't want to learn on the job, and expect to be paid at veteran salary levels.

  • by RabidReindeer ( 2625839 ) on Wednesday September 12, 2012 @08:00AM (#41310999)

    >Anyone worth their salt as a programmer who has a CS degree can MAKE THEIR OWN EXPERIENCE at ANY TIME! When you get home from your call center job, just put down the controller and write some software, and assuming you stick with it, 6 months later you'll have some experience.

    This is the best advice you can give prospective CS students. Seriously, new CS people - follow this advice.

    And even if you like games, there's still a lot of projects you can do that are relevant. Some AI code I wrote for a game got me hired at a defense contractor called Cyberdyne or something (I kid, I kid - it was a lot more fun than ending the world), and also wrote programs to calculate optimal tactics / AI for my favorite board games, and modded Quake extensively.

    Actually, no. Coding is all well and good, but a lot of what makes me (allegedly) superior comes from having read other people's code. Learning style and technique from real-world applications.

    I received college training, but - to parapharase Mark Twain - my education neither began there nor ended there. And, in fact, a lot of what I learned at college wasn't learned in the course, but in the course of plundering the college resources. Back when I didn't yet have a PC at home, but the college computers were freely available.

    I learned from my classes, I learned from reading other people's code, I learned from writing and debugging my own code. I joined a computer book club and as a result obtained not only books that in some cases were being used as actual college textbooks and in others introduced me to concepts that to this day haven't yet found mainstream application (but in some cases probably should).

    A lot of the comments I saw on TFA were highly critical of this idea that you could have a "proper" grounding without formal education, and I'll agree that one advantage of such a venue is that you get exposed to more than just the topics that interest you, but I think they protest too much. While I'm really rather tired of the old "the best programmer I ever hired was a Music Major" meme, I do happen to know more than one person who actually literally were. Although being Music Majors, starvation probably played a role there, as well.

  • by BVis ( 267028 ) on Wednesday September 12, 2012 @10:07AM (#41312037)

    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.

  • by Fallingcow ( 213461 ) on Wednesday September 12, 2012 @10:16AM (#41312103) Homepage

    Man, if I had a nickel for every time I'd had to design a query language that doesn't allow queries which will have EXPTIME complexity...

  • by Xest ( 935314 ) on Wednesday September 12, 2012 @10:57AM (#41312537)

    "Taking a wild guess here, but are you male?"

    Yes, but what exactly does that have to do with anything? Being male doesn't mean I'm unable to see the hypocrisy in the feminist equality argument where what they actually mean is equality, but only when it suits them. If you have a male, and a female, in a relationship, and one of those necessarily needs to work shorter hours and in said relationship the couple decide that it is the female, then the female cannot complain that she is less favourable to her male counterparts when it comes to promotion due to the fact that she spends less time at her place of work and is hence less able to contribute to the company. There is nothing preventing her discussing with her partner that he instead be the one that works the shorter hours so that she does not face that barrier and he, like her, will then face the same issue vs. female counterparts. There is without a doubt a historical bias towards the female taking this role in a family, but I would wager from my personal experience of having discussed exactly this with many female colleagues that given the choice, many females would rather keep it that way, than be given the alternative of having to work longer hours to support the family financially. Absolutely this isn't universally the case, but then, that's why there is a trend towards more women being the breadwinners of the family nowadays - things are on the right trajectory, so what is the problem? For what it's worth, in our family, we don't have kids, both me and my girlfriend have been able to pursue our careers, she's certainly not found this apparent glass ceiling yet, but again, maybe that's because she actually puts in the hours like everyone else who fails to find this glass ceiling?

    So again, what exactly was your point? I'm all for equality, but equality is equality, it's a two way thing.

    "Yes, that is the line always used by people who oppose anti-discrimination legislation. Because obviously, the market sorts out all problems as long as you leave it alone."

    On the contrary, I fully support said legislation and believe it's yet another reason why cries of ageism are largely FUD and merely a good excuse to cover for incompetence/lack of suitability for a role. I'm not much of a fan of the free market being left to be completely free largely because I think no ideology is absolutely perfect and balance is needed (hence why I believe a healthy blend of socialism/capitalism is far superior to extreme socialism ala Greece or extreme capitalism ala the US). That doesn't preclude me from recognising however that in some systems many theorised problems are never born into fruition due to the fact many such systems have emergent properties that naturally deal with those problems.

  • by Xest ( 935314 ) on Wednesday September 12, 2012 @11:01AM (#41312587)

    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.

  • by tompaulco ( 629533 ) on Wednesday September 12, 2012 @01:00PM (#41313765) Homepage Journal
    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.

Man is an animal that makes bargains: no other animal does this-- no dog exchanges bones with another. -- Adam Smith