Settings

Theme

60% of working software engineers do Not have a CS degree

techcrunch.com

55 points by gyosko 10 years ago · 67 comments

Reader

nodamage 10 years ago

I've always wondered why we (as an industry) regard CS degrees so highly. Not because the information taught isn't useful, but it can be learned with or without a formal degree, and the way things are taught in school aren't exactly conducive to retention and applicability.

Consider the difference between:

1. The person who learned these concepts as an 18-21 year old so they could pass a test and get a good grade. They don't really know how to apply these concepts to solve real-life problems yet, and often by the time they encounter such problems they might have forgotten what they were taught anyway. How much knowledge do you really retain as a teenager in college trying to pass a test?

2. The person who learns these concepts because they need them to solve a real-life programming problem at their job. I would wager this person learns these concepts more thoroughly because they need to actually understand them in order to finish their work. Their retention will be better because what they're learning has immediate real-world applicability that they can reference back to in the future.

In many circles person (1) is valued more than person (2), which just seems kind of backwards to me.

  • BadassFractal 10 years ago

    Totally with you there. I've actually appreciated my CS textbooks dramatically more once knowing their content made a tangible difference in my ability to build our product. For me having practical needs force me to learn more about the theory has always made much more sense.

BadassFractal 10 years ago

Do you need a science degree to scaffold a bunch of Rails routes and copy and paste from SO? How many of us are actually pushing the state of the art vs being technicians with the tools we're given?

How many of you are optimizing data structure algorithms, implementing new crypto, optimizing networking stacks, or conceiving and proving new distributed consensus logic? And even if you are, how much of it will end up in production for your company rather than stay as a fun weekend toy project?

I'd venture to say that's it's something that far less than 1% of the developer population has to bother with.

  • walshemj 10 years ago

    Err can we not belittle technicians here as some one at my first Job said its the technicians who still remembers how ohms law goes :-)

    A few years ago I had to correct some bridge calculations that the Engineer had done :-)

    • slavik81 10 years ago

      As an engineering student, I was told that technicians often have a better grasp of their domain than the engineers. It's the result of a narrower focus than the engineers get.

      Actually, the shop floor often can have valuable feedback as well. They know more about the actual assembly than the engineers. Sometimes the engineers make things unnecessarily difficult to assemble simply because they don't know that something simple on the wiring diagrams is hard in real life. Like thick cables that can't bend easily.

    • Mandatum 10 years ago

      Great. You're smart. You're probably a great dev. But let's face it, we're the builder's, they're the architects. They're the researchers, we're the lab assistants. I'm OK with that because I like building. Occasionally I'll try to plan and design my own house, but I'm certainly not as effective as those who've gone to study this. Maybe after 5 (YMMV) years I will be with self-study, but they'll have 5 years more experience by that point.

      (Don't take that "you're smart" comment as an insult, I genuinely meant it.)

      • walshemj 10 years ago

        Having worked at a top 5 Civil consultancy I think our "Engineers" might have seen "Architect" as a bit of an insult.

        A case in point is the wobbly bridge across the Thames designed by a high profile Uk architect - that had to have a lot a rework done.

  • golergka 10 years ago

    Well, you might want to know a little bit about database normalization and algorithm complexity if you want this scaffolded up not to completely break down when it appears on the front page of TC.

    But having CS degree has usually very little to do with it.

  • lgleason 10 years ago

    Nope, and these skills are slowly losing their value in the market. Rails isn't as lucrative as it was a few years ago as a engineer.

    • BadassFractal 10 years ago

      I'd argue these people will train themselves to be technicians in another stack and continue that cycle.

Clive_Robinson 10 years ago

First off can we stop calling programmers "engineers" they are not, they are much closer to being "artisans".

Secondly in my long experience it's not the "engineering managers" that have a degree fixation but the "Human Resources" dept, that usually insist on being in charge of recruitment policy, even though an even smaller percentage of them have a job relevant degree or diploma.

Further if you want decent programmers try looking at people with other types of degree in engineering and science. The thing is CS projects are usually "not real" where as those doing engineering and science degree projects have to design and build real tools in software to do their projects. The difference between CS theoretical and other degree practical programming really stands out. Which was one of the points this article could have gone into more thoroughly.

  • OrionSeven 10 years ago

    Your programmers != engineer issue brings up a larger issue I'm always wondering about when people/companies/etc say we have a software engineer shortage.

    Just what type of developer are they talking about? There are many types of engineers/developers: front end, back end, write algorithms, do data integration, automate systems, write database queries, real time, graphics, embedded systems, and on and on and on.

    So which ones are we talking about? What types of background do they need? The discussion on "the shortage" is always lacking in details.

    ~ Bryan

    PS: I think this issue is also why some say developers != engineers.

bigethan 10 years ago

about 3 years ago HN was about 50/50 https://news.ycombinator.com/item?id=3785277

I'm always amazed at companies that don't train their people. It's easier to say "they couldn't use HAVING in a query, pass" than to say "I believe I can teach them SQL effectively." But the freedom to think the latter lets you build a very strong team.

It's the genius of Facebook's OSS policy. Let everyone use their stuff so that new people can pop right in, learn on your own time before we're even paying you...

  • dikdik 10 years ago

    Best reasons I can think of is projection and pride. If I couldn't do this job without a PhD and 10 years of experience then of course NO ONE else could possibly do it without those credentials.

    Then there's the, if I HAD to have all these credentials to get a decent paying job, then everyone else should have to jump through those same hoops to or it won't be fair to me.

    • danieltillett 10 years ago

      It depend on the problem. Some problems really do require you have a lot of knowledge depth to be able to solve.

      • wcummings 10 years ago

        You can tell from the tone of some other comments that pride is a pretty big factor.

        • danieltillett 10 years ago

          It might be, but it is also a shared culture. People like to work with people who have a shared background and understanding.

          The natural sciences are similar in that you have to have a PhD to be taken at all seriously even though most of the time there is really no difference between a person with a BSc and 5 years of experience and someone with a PhD.

          • wcummings 10 years ago

            >It might be, but it is also a shared culture. People like to work with people who have a shared background and understanding.

            This is clearly the case for many people, judging from the complete lack of diversity at many tech companies.

            For a "meritocracy" Silicon Valley sure loves credentialing.

  • walshemj 10 years ago

    Companies don't want to spend money on training unfortunately and this has been the case for decades.

golergka 10 years ago

I've read several articles about how US doesn't actually has a software engineer storage, and I slowly begin to realize something. Do journalists that write these articles actually think that if you open up engineering position and get, say, 10 to 20 resumes, there is a high probability that even one of these people would actually be worth hiring?

After maintained code made in outsourcing shops, hiring and helping others hire, I slowly came to realize that more than 50% of programmers out there put in a steady negative input into projects and organizations they're part of. The fact that there are millions more "programmers" who are looking for a job than there are job openings doesn't contradict with the fact there are too few good developers out there, in any country that I know.

joshmn 10 years ago

I've always wondered this: would you necessarily trust a food engineer to make you dinner? Does that qualify them?

droithomme 10 years ago

I'm not even sure that CS is the best degree for software engineering. People with maths, physics, computer engineering and software engineering degrees seem to get more done and be more likely to be qualified.

  • ivanjr0 10 years ago

    I'm curious. Why do you think that's the case? Do you have any evidence to back that claim?

    • natch 10 years ago

      I suspect it's anecdotal and based on experience. It wasn't even a claim, but more of a statement of how things seem.

      One example: Google is known to have a lot of people with CS degrees. Yet often, their software is astoundingly lame. For example, their voice transcription seems to have no awareness whatsoever of the names of people in my contacts, data that Google has full access to. This results in a horrific user experience for anyone who attempts to rely on the results. The problem here isn't what degree the engineer had. The problem is more about conscientiousness. Whoever did that system, does not care.

      Myself, not having a CS degree, am keenly aware that people perceive that to be a weakness. So, partly in order to make up for that, but also just because of my personality, I care a lot about the quality of what I do, and I assess quality from many different angles, not only the angle of am I using the most efficient algorithm. I'm not saying CS people can't care, but non-CS people do have more reason to.

      • zaphar 10 years ago

            The problem here isn't what degree the engineer had. 
            The problem is more about conscientiousness. 
            Whoever did that system, does not care.
        
        I can see how you might have gotten that idea but having worked at Google in the Past let me suggest an alternative explanation. Personally Identifiable Data is heavily policed at Google. It's possible that the problem was less how much the engineer cared and more a lack of access to that data for some reason.
        • natch 10 years ago

          Thanks. I actually did think of that explanation. But it doesn't hold up under scrutiny. Google Voice, of all services, is exactly the kind of service that should be able to access the user's contacts, for things like dialing and showing the names on incoming phone calls. Super hard to believe that's an issue. And if the permission isn't there, it's easy to ask for it. And if not, just use a generalized list of names.

          Yes silly me for focusing on contacts. They could have just built a general name dictionary for various languages. If they cared to. But (judging by the poor recognition performance of the system) that doesn't seem to have happened, at least the last time I used the service, which admittedly was some time ago.

    • michaelt 10 years ago

      You can get the /impression/ people without a CS degree have great skills - but there's a selection bias because if they didn't have a CS degree they had to have those great skills to get into the industry in the first place.

      I only speak English and 100% of my German friends have great English skills. But that doesn't mean 100% of /all/ Germans have great English skills - it just looks like that because my sample is biased.

vinceguidry 10 years ago

As a web developer, I don't think of myself as an engineer. I think of myself as a craftsman. An engineer learns to manipulate the rules of nature and does so in repeatable ways to make things that are primarily functional. A craftsman learns the rules of his tools and uses them to make things of beauty rather than of function.

I would be bored to tears with engineering, web work offers me an outlet for my creativity.

  • dikdik 10 years ago

    I have a few friends that are civil engineers. "being technicians with the tools we're given" is exactly there job title. They aren't coming up with insane new concepts for bridges or new mixtures for concrete to improve roads, they're just doing what they are told with the tools they are given.

    ie Design a road that is x feet long, has proper water drainage for the area, and meets safety standards for typical vehicle weight, etc, etc. Yes, SOME civil engineers are probably pushing the limits, most just design standard parts that fit into the required schematics.

    • vinceguidry 10 years ago

      > They aren't coming up with insane new concepts for bridges or new mixtures for concrete to improve roads, they're just doing what they are told with the tools they are given.

      Coming up with new concepts is the domain of the architect, which lies square in the middle of the engineering / craft spectrum.

      Otherwise you are just reiterating the basic idea I tried to articulate using different words. You can't engineer or craft without tools. The difference is in the focus. Engineers, because they are building primarily for function, need to know the invariant rules of nature so they can design the most economical solution. They may not need or use them frequently, like your friends, but you need to know them to be an engineer.

pekk 10 years ago

What percentage of CS graduates are capable of writing code to any useful extent? 40% seems like an optimistic estimate, from my experience.

  • RealityVoid 10 years ago

    You are implying an overlap between the people that write good code and the people that finished college, and that is not always so.

  • lgleason 10 years ago

    Agreed, but requiring no engineering degree throws out the baby with the bathwater.

hitekker 10 years ago

I had a friend who worked with a front end engineer, the very first employee of the startup.

One of the things, my friend's coworker said:

"We don't do computer science on the front end. If you want to do computer science, talk to the back end people."

.. To this day, I don't quite understand how a person can think engineering exists independently of science.

  • brianwawok 10 years ago

    It is a little bit sad, but a little bit true. You can have an amazing artistic mind and know nothing about math or science or logic, and do some cool stuff on the front end. Sure after they write some html all kinds of stuff happens to it that involves computer science, but the dude writing the HTML doesn't need to do that.

    • Gibbon1 10 years ago

      In other fields it's well understood that it's important to encapsulate the real science and engineering bits inside standards and well characterized components. There are a lot of engineers and technicians that confine themselves to applying those to problems. Which is totally proper. And engineers that do the hard stuff tend to confine themselves to very narrow domains.

      Somewhere someone is carefully designing the plumbing for a rocket engine the better to carry cryogenic hydrogen and oxygen. And somewhere a plumber is using a saw to cut a piece of ABS pipe the better to carry sh*t. Somewhere a computer scientist is working on a lockless database widget. Elsewhere a high school dropout is setting up a web page for a diner. It's all okay.

slavik81 10 years ago

My coworkers with Software Engineering degrees are working software engineers that do not have a CS degree. It seems misleading to only include CS degrees.

Also, that question on the Stack Overflow survey saying that 40% of devs are self-taught was a 'pick all that apply' question. Some of them may have a degree and checked the box because they continued learning.

Mandatum 10 years ago

There's very few front-end jobs at the moment that require hardcore CS thought. You're best to get a job in WebGL or WebAssembly work if you'd like that.

lgleason 10 years ago

Something tells me we are due for a correction with field. If it's that easy and and the barrier to entry is that low we should quickly end up with a surplus and lower wages.....that or we will automate these things and/or offshore these jobs to $15 an hour locations. Then the good jobs will be with the harder things that do require math etc.. I personally think that the degree is valuable, but there are good graduates and bad ones....seems like raising the bar to graduate might be a better approach.

  • zaphar 10 years ago

    I think you may have missed the point. It's not easy at all to become a software engineer. It takes a lot of work. But the very fact that it isn't easy makes it all the worse when a company disregards more than half their pool of potential hires.

someguydave 10 years ago

In some states in the US you actually need an engineering license to call yourself an 'engineer' in public - but usually there are exceptions for people who work for large companies.

Government licensing of engineering isn't the answer, but on the other hand calling oneself an 'engineer' without any formal or informal training seems like equivocation in the best case and outright lying in the worst case.

  • __derek__ 10 years ago

    Who said people without CS degrees have no formal or informal training? It would be difficult to work in a software role with no training. Pulling that off for any amount of time would be an impressive feat.

    • someguydave 10 years ago

      As far as most state law in the US is concerned, 'formal training' for engineers is generally defined as having an accredited degree. 'informal training' for engineers is generally defined as having a documented apprenticeship under someone of known competence.

      • __derek__ 10 years ago

        Ah, that "informal" was referring to a particular body of training. I took it to mean its standard English definition, which would extend to self-study and working as a junior developer.

  • ozim 10 years ago

    In eastern europe you can get engineering degree in computer science and then you can call yourself engineer. Also it is nice if you have testers and developers and you do not want developers feel superior to testers or just reduce tensions between those two groups just call them "software engineers". Everyone is happy because it sounds nice and team spirit is better.

    • someguydave 10 years ago

      > Also it is nice if you have testers and developers and you do not want developers feel superior to testers or just reduce tensions between those two groups just call them "software engineers".

      Indeed this practice is generally the case in the US.

      It seems that there are many who feel free to redefine the title 'engineer' as they see fit. I would ask those people: Why isn't it also the case with 'doctor' (medical)?

      • icebraining 10 years ago

        Why isn't it also the case with 'doctor' (medical)?

        In some cases, it actually is. In my country, to get a driving license one needs a certificate from a doctor saying they don't have any medical condition that makes one prone to sudden fainting, seizures, etc. Recently, the veterinarians have been demanding the right to pass those certificates, since they're legally doctors too!

rodgerd 10 years ago

I end up with two conflicting feelings to a story like this.

"Engineers". Hah. Title inflation at its finest.

No CS degree? So what? How much day-to-da programming in the world requires an actual science degree?

  • seivan 10 years ago

    Depends, my lack of deeper CS knowledge does impact stuff related to game-dev and math.

    I took some time off recently to fill in the gaps missing though I wouldn't say it's something CS degree would have fixed. It would be nice to have a degree to show for it though.

    • loopbit 10 years ago

      As someone that got to fifth year of a computer engineering degree[0] to drop off with only 2 classes left, I agree: There's stuff you learn in uni, thinking that you'll never use it again and, suddenly years later, it's the stuff that saves your ass (sometimes even vaguely remembering that there's something that might help with a specific problem helps).

      So on that side, yep, studying a CS degree will give you a breadth of knowledge that you won't get learning 'on the job'.

      On the other hand, I very much prefer working with someone that is able to see a gap in their 'mind toolbox', identify it as an issue and fix it to someone that just follows blindly a CS degree coursework.

      [0] Hey, don't look at me, it was called like that in my country and, to be honest, it did have quite a bit of computer engineering (electronics, circuits, processor design...) as well as all the usual CS stuff. And maths, loads of maths.

      • seivan 10 years ago

        For me, a CS degree is mostly math. I've met CS graduates who had the same gaps I had outside of math. Stuff that the degree wouldn't teach you.

        But as I said, having the degree helps. It's easier to get jobs. I regret dropping for only that reason. I can fill the gaps myself.

jdimov9 10 years ago

And 100% of the "software engineers" with a CS degree are not actually engineers.

  • walshemj 10 years ago

    I bet at least a few are Charted/Professional Engineers and remember that not all countries really consider Engineers as proper professionals like Doctors or Lawyers.

    I actually stated down the track to charted status but in the end gave up as it has no value to me.

    • someguydave 10 years ago

      Yeah I'm not sure it's such a good idea to get the government involved in certifying programmers. On the other hand, many who call themselves engineers are confusing themselves or the public.

analognoise 10 years ago

They sure as hell aren't engineers.

Code monkey != Engineer != Computer Scientist

All this BS about "Anyone can code!" has had seriously detrimental effects. Now everyone who can do some website bullshit and say "Agile" a lot thinks they're Carmac.

  • merb 10 years ago

    I have no CS degree and I'm would call me between Code monkey and engineer. But I know people with a CS that are only code monkeys. A CS degree doesn't say anything.

    • buckbova 10 years ago

      It definitely says "something". Maybe not that the degree makes the person immediately better than one without but that the person is classically trained in the discipline.

      They have a breadth of knowledge in programming languages, compilers, cpu architectures, data structures, complexity, computational math, graph theory, and much much moore. Not to mention other things that come with a well rounded education like history and literature.

      Can one learn that on their own or from career experience? Probably unlikely they will pusue each topic. Do you need all that to do your typical software job? Probably not.

      • merb 10 years ago

        I tried to study, but not just CS, I tried a mixed degree, financial and CS. I failed in the financial part. Still I didn't learn anything new in the first 3 semesters for CS.

        The most things you will learn from your colleagues in your first job. Especially about TDD and Testing. You have like 1 semester about testing in the most colleges, that is way too less.

        Btw. I live in Germany so maybe the Bachelor degree in CS here is a joke.

  • pavlov 10 years ago

    John Carmack doesn't have a college degree. According to Wikipedia, he dropped out:

    https://en.wikipedia.org/wiki/John_Carmack

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection