
60% of working software engineers do Not have a CS degree - gyosko
http://techcrunch.com/2016/01/12/unlocking-trapped-engineers/
======
nodamage
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
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
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
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 :-)

~~~
Mandatum
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
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.

------
Clive_Robinson
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
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
about 3 years ago HN was about 50/50
[https://news.ycombinator.com/item?id=3785277](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
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
It depend on the problem. Some problems really do require you have a lot of
knowledge depth to be able to solve.

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

~~~
danieltillett
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
>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.

------
golergka
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
I've always wondered this: would you necessarily trust a food engineer to make
you dinner? Does that qualify them?

------
droithomme
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
I'm curious. Why do you think that's the case? Do you have any evidence to
back that claim?

~~~
natch
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

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

------
vinceguidry
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
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
> 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
What percentage of CS graduates are capable of writing code to any useful
extent? 40% seems like an optimistic estimate, from my experience.

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

------
hitekker
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
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
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
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
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
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
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
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__
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
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__
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.

------
rodgerd
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
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
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
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
And 100% of the "software engineers" with a CS degree are not actually
engineers.

~~~
walshemj
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
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.

~~~
walshemj
The professions self regulate in the main

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

