
Do Developers Need College Degrees? - technologyvault
http://www.stackoverflow.blog/code-for-a-living/do-developers-need-college-degrees
======
alkonaut
Succeed personally: no. Some dev jobs obviously require a lot of foundational
knowledge. I wouldn't want to have a colleague who didn't know linear algebra,
simply because that's important in my field. That's not important for making
Wordpress sites.

I think there are things "every good developer should know" such as knowledge
about how cpus work, how OS'es work, how some important algorithms work, some
basic set theory and complexity etc. All of this is doable without a degree,
but I'd probably be more willing to bet that someone with a degree knows it,
than someone without. Also of course - there are jobs that are doable without
knowing foundations, but I'd call those "code monkey jobs" and whether such a
job constitutes success I guess depends on who you ask. And what it pays.

Most importantly, when I recruit I don't see the diploma as evidence of what
they _know_ but as evidence that they could _learn_ , _quickly_. If the
diploma is from a prestigeous school but says they failed math 101 four times
over that would make me doubt their capacity. Being able to pick something up
is the capability I'm looking for. A curious mind, with a taste for the
abstract. A diploma is just one clue.

~~~
Kalium
One of the much-downplayed things that degrees are more likely to indicate
than personal projects is foundational knowledge. When you work exclusively on
Wordpress sites, this is irrelevant. When you work on distributed systems or
cryptography, then foundational knowledge gets pretty important.

It is completely possible for any person to learn foundational knowledge
outside of a formal instructional setting. I personally know excellent
developers who have done so. It's unquestionably possible. I firmly believe
that given sufficient time and determination and help, it's possible for any
person to learn any subject to any level.

It is, however, possibly true that not all people learn discrete mathematics,
relational algebra, and computer architecture in an ideal manner when entirely
self-directed. Or perhaps even all developers.

~~~
n0w
You don't know what you don't know.

This is what struck me about my formal education. While I also believe you can
learn anything with enough material and dedication on your own, having the
structure to ensure that you cover a set of subjects that constitute
"foundational knowledge" can be invaluable.

~~~
xiaoma
What is it about formalized schooling specifically, that you believe makes it
uniquely capable in teaching people what they don't know?

When I was 18 I spent dozens of hours pouring through a university course
catalogue, looking at the required courses for each degree, the prerequisite
trees and the requirements for graduate degrees. It felt like a bird's-eye of
the entire fractal structure of human inquiry.

Later, I realized how much sharper the view is to people who do that today.
Regardless of whether or not they're a student, they can see the course
catalogues online and, in the case of MIT (and many top institutions), even
see lectures of those courses recorded in previous years. If you're reading
this now and you don't have a very high idea what kinds of knowledge are out
there, it's probably your own choice.

~~~
dozzie
> What is it about formalized schooling specifically, that you believe makes
> it uniquely capable in teaching people what they don't know?

The teacher. Teaching/learning was always about the teacher, who knows what
and in what order to teach.

You can have the same effects with the same effort as with formalized
schooling if you have a private teacher, but how many self-taught developers
had them? And then there's this small thing that in formalized schooling
you're taught by several people, each for their own discipline. It's hard to
come by a tutor that knows seven different fields and it's hard to come by
seven tutors for each of the fields.

~~~
Nadya
_> who knows what and in what order to teach._

Plenty of courses have their general outline publicly available. Some colleges
even share older lectures [0]. There are more-than-enough resources available
for self-directed learning. Have questions? StackOverflow exists.

The #1 criticism against self-directed learning is how self-motivated the
autodidact is. _Most_ people suck at staying motivated to teach themselves. If
they aren't 100% passionate about learning the subject and can keep their
interest going, they will fail.

[0]
[https://www.youtube.com/user/MIT/playlists](https://www.youtube.com/user/MIT/playlists)

~~~
arielcamus
I totally agree with you -- staying motivated, especially if you are learning
alone from home, it's incredibly difficult. I have a thesis that I have
recently started to validate which is that you can considerably improve
motivation in self-directed learning environments by introducing online
collaborative learning. I just wrote about it and launched a little
course/workshop to test the idea: [https://medium.com/@arielcamus/learn-to-
build-a-backend-with...](https://medium.com/@arielcamus/learn-to-build-a-
backend-with-node-js-doing-pair-programming-b6d5a241b846#.utueveijh)

------
prions
I'm someone who graduated with a non-cs engineering degree (and worked
professionally as an engineer) whose now in a MSCS program after trying my
hand in the job market. Not for a lack of trying, but my experiences
definitely relate to an uphill struggle just to get even noticed. And before
anyone says "you should do x|y|z", I've done my part pretty well. A few decent
sized personal projects, constant studying, meetups, networking, github, etc.

I hear a lot of anecdotal evidence (mostly from professional devs who have
degrees) that they know a friend or coworker who doesn't have a degree.

The truth is that the system for recruiting and hiring is really based around
colleges, students, and degree holders. Starting from the application
requirements, you see that most applications require a CS degree (or
equivalent). Then the technical interview is aimed at fundamental CS
questions, most of which students are accustomed to.

So for someone self taught, face to face interactions are a lot better. But
even going to events/meetups, you notice a distinct change in demeanor of the
recruiter when you mention you don't have a CS degree. It really is a tiring
battle just to prove that you're competent.

Do I believe that you 100% need a degree to get a CS job? Definitely not. But
without one, your options are very limited and on top of that you'll need a
lot of luck and effort just to get past the first hurdle.

~~~
mindcrime
IIRC, the article says that a whopping 56% of developers don't have a degree.
Given that the majority of developers don't have a degree, I'm not sure I'd
agree with saying " without one, your options are very limited". Maybe
"somewhat limited"?

My anecdotal evidence, looking at both my own career and a lot of developers
I've worked with over the past 17 years, is that having a degree, or not,
isn't a big deal.

~~~
alaskamiller
What could be true with the last generation may not necessarily hold true for
the next generation.

Many are working towards abstracting schooling out of a being a developer,
great.

That also means we're moving towards making being a developer a blue collar
job rather than a white collar job. We're also making private businesses now
the trainers of labor.

The time to be a dropout rockstar developer was in the 2000s but we're moving
towards 2020 now.

The real question is meant for the generation of 13 yo now in the next 5
years. They can study software development on their own but in 10 years time,
will they be better spending half of that with expensive college education or
nah.

Everyone in this thread are giving out answers based on their own experience
surviving the past 20 years as if what happened the last 20 years in the tech
industry is where we're at right now or will be going forward the next 20.

I wrote this on hardware and software made by and improved by organizations of
highly educated and highly specialized people. It's incredulous to think the
future is only going to be built by Lucky Palmers and 16 yo hacker geniuses.

~~~
khedoros1
> That also means we're moving towards making being a developer a blue collar
> job rather than a white collar job.

We're going to make software development into a job involving manual labor?

~~~
rahimnathwani
Treadmill desk?

------
smcl
We are such a weird profession. What other industry is like "Hey, you can do
my job. It's easy, here are lots of extremely detailed courses, documentation
and guides on how"

~~~
choxi
The idea of "open source" is also unique, I can't think of any other
professions that have something analogous.

~~~
CJefferson
No, closed source is I think the more unique thing.

I can go to planning offices and see the plans of any building. Almost no-one
has "secret painting methods", or "secret plumbing methods".

~~~
DougWebb
_Almost no-one has "secret painting methods", or "secret plumbing methods"._

For plumbing, building codes dictate the range of solutions that are available
for any given problem, and they're not secret (but buying a guide can be
expensive.) However, painters, plumbers, and other trades definitely have tips
and techniques that they've learned through experience and from mentors, and
you won't find much of that being given away freely. You've got to learn it
the way they did, through hard work and apprenticeship. And that's ok, because
those skills require mastery to use properly, and that's true in software
development too.

~~~
paganel
> However, painters, plumbers, and other trades definitely have tips and
> techniques that they've learned through experience and from mentors, and you
> won't find much of that being given away freely.

Exactly this. My father is a civil engineer who's now in his early 60s, and he
recently got to work with colleagues much younger than him.

He told me that said colleagues didn't know some trade-related stuff which
hadn't got covered in university courses (like how to reinforce earth ditches
when digging in mountainous terrain with probable heavy rains) but which was
paramount in keeping the work going (not much that you can do once a ditch
collapses because of heavy rain). He told me that in this instance he had
instructed his younger colleagues on what was the correct procedure to take,
but he also told me that he's got other professional secrets that he's not
ready to share just yet.

~~~
estebank
> but he also told me that he's got other professional secrets that he's not
> ready to share just yet.

I'm curious enough to ask: why?

~~~
paganel
For job security, I think. We're lucky enough as programmers not to have to
worry about that too much, but when you're a civil engineer in a quite poor
part of the country and the continent (I'm talking Eastern Europe) you do not
have much better other options.

------
notadoc
No.

Some people are self taught and self motivated, and they are often more
capable than someone whose primary exposure to development (or technology
beyond consumer use) was through a CS program. That is not to suggest that CS
degrees are unnecessary, but once you understand the entirety of someones
experience and knowledge you will often find their degree or lack thereof is
entirely irrelevant.

Of course there are some employers who won't even acknowledge someones resume
exists without a degree, which I have always found silly.

~~~
u_wot_m8
>Of course there are some employers who won't even acknowledge someones resume
exists without a degree, which I have always found silly.

It really is stupid, I would hire a software engineer who dropped out of high
school over a PhD if he's better. Never understood why people care about
degrees, the whole point of college is to learn, not get a piece of paper.
Only excuse I can think of is that it's a sorting mechanism for lazy
businesses to filter applications.

------
ghettoCoder
Define succeed. Nice job, nice wife, etc... or FU money level of success?

I can only speak from my experience hiring and getting hired but all things
being equal that piece of paper will likely get you hired over the other
applicant(s). For inexperienced folks it also makes getting those critical
first positions easier, which will allow you to quickly move up, or out, in
the field.

I question the validity of their claim that by omitting a degree over 60% of
the job postings didn't require a degree of some sort (see my previous point).
Hiring staff is a real pain when you're not one of the big boys so casting a
wider net is somewhat necessary.

~~~
FLUX-YOU
>I can only speak from my experience hiring and getting hired but all things
being equal that piece of paper will likely get you hired over the other
applicant(s).

It may take you 10% more applications to get a single job, but that's not much
if you live in an area with a lot of jobs. I have read about struggles from
both sides of the fence (degreed/not) to the point where I can't take common
advice of degree advantages seriously any more.

We really need to find a way to assess skills and make a great interview
process that many companies can adopt, and that will solve the problem because
then the CompSci curricula will have to switch over if they want to keep
incoming students and graduate hiring rates high. "Who cares about your
degree? Take this test to see if you're actually worth employing at a given
career level!"

10% better hiring speed just does not seem attractive considering you spend
tens of thousands plus the opportunity cost of working somewhere and
contributing to your retirement (which for millennials is apparently very far
from previous generations). Student debt is only increasing. Number of
graduates are only increasing. Degrees make you stand out significantly less-
so unless you are able to attend a prestigious school -- and at that point,
the decision may not even have to do with the technical rigor involved. The
hiring managers are playing the same risk aversion game everyone else is, only
they can sometimes afford to be picky or not.

The only time a degree will become super-important is if the middle and low
level jobs suddenly start disappearing. I haven't heard any doom and gloom
about that, but if it was actually happening, it'd be the biggest sleeping
giant of a news story for our industry.

Even then, most of the hiring that gets done will shift to people with
experience and/or a degree. It's just that there will be less hiring overall.

Plus, you can always move laterally to another portion that still uses Excel
as its backing store and probably automate your job away and do 30 minutes of
work per day -- I'm seriously thinking about doing this because it seems
easier to reduce the amount you work than to increase your salary for the same
40h/week.

------
brudgers
I responded to a recent 'Will quitting school hurt my career?' type thread. I
banged my head against the wall of youthful perspectives about what
experiencing a career will be like across several variations of 'you play the
odds and take your lumps when you lose' until I ran out of steam. Later,
having thought about it (by writing) I recognized a very distinct benefit that
pretty much _only_ a college degree will provide.

It comes up on 'Ask HN' from time to time that a person without a degree is
looking for a way around a degree based work visa requirement in order to
immigrate for a software job. Now for a lot of developers in the US, this is
probably less of a big deal since they don't have to emigrate for a high
paying job at sexy company. Probably not as big a deal within the EU either.
But there are a lot of other places in the great big world where it can matter
and not having a degree does curtail access to jobs that a developer might
want and opportunities that a developer might want to pursue for professional
or other reasons.

Except in pretty rare circumstances where a person qualifies for a 'snowflake
visa', a portfolio does not fill that gap. Likewise graduation from a coding
bootcamp probably won't be an alternative visa qualification any time soon.

Despite their drawbacks and for better or worse, credentials provide an
objective criteria for decision making and in contexts with legal implications
that is very useful -- not just visas but for complying with employment laws
and any other CYA context.

------
stpe
Rhetorical question: Am I the only one who did get a degree to actually learn
stuff?

I was self-taught, had programmed as a job for 4 years but wanted to make a
leap in my skills. Dedicating 5 years to just focus on learning stuff,
practicing, all in a structured way (courses) was really, in hindsight, pretty
amazing in terms of accelerating my learning. I did get an MSc in CS, but the
main motivation was to learn stuff, not to get a degree on paper.

Disclaimer: EU-citizen. Studied in Sweden. No tuition fee.

~~~
Feld0
I'm in the same boat. My self-taught experience inspired me to pursue a CS
degree. The degree did put me in a serendipitous position that led to a number
of great industry opportunities but personal growth was my main reason for
starting it.

FWIW, I'm studying in Canada and paying my way through school with
internships.

------
sevensor
No, but it helps. Autodidacts are rare (possibly not on this site, but in
general), and few people who haven't been to college even know what they don't
know. Unfortunately a large proportion of college grads are equally clueless.
College is a place where you can get an education, but nobody's going to
insist, and neither degree nor GPA is any indication one way or another.
What's worse, people who learned next-to-nothing in college don't even know
that they don't know anything, and they can interview quite well. As the
numerous HN threads about hiring and interviews attest, it's murderously
difficult to separate the wheat from the chaff.

------
JonathanAgosto
[College drop-out here]

TLDR: A degree is not completely relevant, but it gives you an edge.

Im my experience, a degree is not necessary, but demonstrating skills is
harder than it sounds; a lot of interviewers at non-tech companies are not
technical and rely on typical CS material for interviews (algorithms and the
like). As a self-thought, I rarely paid attention to this sort of stuff (I
started as a web developer) until I had a few interviews. Salary has an impact
as well; even though Ive performed better than colleagues, my salary was
ALWAYS lower.

~~~
mark-r
Your salary is lower because it started lower, and there's an unwritten rule
in the industry to never hand out disproportionate raises. I was lucky enough
to have a couple of jobs that broke the rule, and as a result I believe my
salary is in line with my degreed contemporaries.

The degree gives you an edge in two important ways. First it qualifies you at
those places who absolutely demand a degree, whether you believe in their
reasoning or not; having a smaller pool of opportunities will always be a
handicap. Second, if a hiring decision ever comes down between you and a
person with a degree, the degree will become the tie-breaker.

On the flip side, the places that won't consider you without a degree might be
the places you wouldn't want to work anyway.

~~~
hajile
That's one more issue with the industry. Everyone says they don't want to
train because the devs will just leave, but they refuse to give them the raise
to keep them there. If a company won't give a disproportionate raise to a
person who deserves it, then some other company will hire that person.

My first gig paid only around 30K/yr, but I became aware that moving jobs was
a good way to get a raise. When you already have a job (and genuinely have the
ability), it's pretty easy to negotiate aggressively. My next job was 70K and
within two years, I was in the top 10% of dev salaries.

If I weren't willing to jump companies, it would have taken years more because
(as you point out) companies don't like giving raises.

------
dpweb
No. I've found the college degree can be important in getting your first job,
and its importance decreases over time. When you get to about 10+ years of
experience, it has minimal value.

So don't let the lack of degree stop you if you are pushing ahead with making
a career of it.

------
cdevs
Jumped into programming as soon as I could around 13, I'm in my 30s now and
have been reading every night since. I'm a self tought system admin/dev
ops/code monkey and on the side a security enthusiast. I did a year Of college
in late 20s and couldn't stand the pace/starting over.

Lately I've been going through a lot of resumes and interviews. Out of 50
resumes and interviews not one was female so I'll just throw that statistic
out there. Most are out of college but are grabbed by government contractor
work eventually if they are good and the rest need to be open to learning or
think they know everything and get fired a lot. We finally snagged a junior
from college we like and training him but you'd be surprised the mistakes he
can make or get stuck on but he just wasn't the type to learn on his own
outside of his college classes and I think that's the problem.

There's also a lot of big data stuff these college grads aren't getting
exposed to and then they some how jump into a job for 3 years working with a
database and still don't know after 3 years how to create a index let alone
scale something despite having it on their resume.

------
HoppedUpMenace
Its been my experience that a non-degree developer can crank out CRUD apps
quickly whereas a developer with a CS or engineering degree will struggle with
the idea of a CRUD app since its never taught in school from a modern
perspective. That being said, the theory learned in school can help a
developer see the bigger picture and provide them with tools for creating
solid code with few performance issues while those that are self-taught or
went through the boot camp will probably have to Youtube and Google their way
out of trivial or ambiguous problems, such as null-pointer exceptions and data
type mismatches.

------
wirddin
In the latter part, this post stresses on 'keep learning'. That's the only
thing the people who have this doubt in their head need to know.

I have met great developers who never went to college and some developers who
can't even ship a small segment of a product with Masters.

------
Steeeve
There are doors that close when you do not have a college degree. That's the
plain and simple way of things.

That being said, a diploma from whatever institution with whatever major,
honors, or other kind of augmentation is simply a very expensive piece of
paper. Getting a good grade in a course, or doing well in a series of courses
brings about precious little practical knowledge in and of itself. And that
piece of paper says very little about things that matter a good deal - like
character, work ethic, and the ability to work well with others.

Relevant experience trumps everything. Barring that, near experience and a
desire to learn come next. I'm big on people having a solid foundation, but my
experience tells me that even the best schools turn out people with shaky
foundational knowledge. People without degrees suffer the same analysis. Some
are good, some are bad.

~~~
flukus
> There are doors that close when you do not have a college degree

The question then is, are those doors worth opening? Most jobs ads I see with
"requires degree in CS" are for large boring companies and government
agencies.

~~~
hajile
Large, boring company job used to coincide with stability. That seems to be
far less true now than 25 years ago. The gig economy of today is far different
than what last generation grew up with.

~~~
flukus
I'm at the stage in life where that stability is appealing. But large boring
companies are synonymous with awful code bases, decades of accruing technical
debt and teams of onshored developers (partly because of requirements like CS
degrees). When I'm job hunting a rank "not wanting to shoot myself in the head
every day" higher than financial stability.

~~~
Steeeve
> teams of onshored developers

You prefer working with off-shore developers? That's honestly the first time
I've ever heard that.

------
euph0ria
I suppose it also depends on what type of development you want to. A lot of
fields won't require it, such as front-end, apps etc.. Other fields, such as
AI/ML/advanced graphics etc a lot of the people working there usually has a
college degree and more.

------
hellofunk
My degree is as unrelated to maths or sciences or computers as is possible but
I've been working remotely for many years as a developer, despite not having
looked into it until I was out of college for many years. So college really
has nothing to do with it at all, in my experience.

College might get you contacts and job prospects, but I've interacted with a
lot of developers who do have college degrees but because their training was
relatively recently, they didn't get a lot of important knowledge about things
like memory management because a huge number of schools only teach GC
languages now, so I still have an edge against those with degrees since I made
it a point to learn C++ really really well.

------
yeukhon
> But when it comes to getting a job as a developer, there are simply more
> important things than a degree. Who is more hirable: someone with 3 years of
> work experience and no degree, or someone with a degree, but with an
> internship experience?

Depends on the job and the type of work applicants have done. If I want a
senior engineer working on a whole new networking stack at Facebook, I don't
expect a fresh graduate will fit the role. There are exceptions, but I bet
that number is so small I will neglect it.

If I were to look for a junior-level software engineer, I still expect some
projects he/she can proudly show off. It can be a class project, or an
internship project. Having an internship in the resume is a major triple +.

Some people have 5-10 years experience but they aren't the great fit perhaps
because they don't know the technology we use. I want to find people who can
pick up the stack quickly but I prefer to find someone who already have the
experience so we can get the most out of the new hire right away.

I only have a few years of piratical experience in the area I focus on, but I
am already considered senior. In the end your ability to grow as an individual
is very important. Having 20 years under the belt is great advantage, but that
doesn't mean a young engineer with 3-5 years experience isn't as strong.

When I consider hiring someone, I look at

* the resume (long resume is a negative, because I really don't care what you did 10 years ago, you can tell me that during the interview, not during the resume screening. Please also have a consistent formatting).

* internship / project

* experience and technology familiar

* ability to interact with me like we are building a tent together

I encourage people to get a college degree. As a student get involved in
either a research project, or join / start ACM club, or do anything to help
yourself marketable like giving talks or volunteering at tech meetup which
will allow you to use your technical skills. College degree is not a
necessity, but it does provide an unique experience.

------
technologyvault
I've talked to developers who have said that it can be a strike against you if
you have a college degree, because it implies that you wasted time that could
have been better spent learning real life coding.

Have you ever seen a situation where having a degree counted against you when
applying for a job?

------
jv22222
No degree here. Left school at 15. Started coding in my 20's. Been at it for
20+ years and loved every minute of it. Currently CTO of a well funded and
successful ed-tech company.

------
eloff
I'll share my experience here for anyone who's considering the tradeoffs.

It's harder without a degree, especially getting the first job. And your jobs
might pay less in the beginning (mine did not, but that might not apply to
everyone.) After that it gets easier, but even now in my mid thirties I get
turned down because of that - but it doesn't bother me much. There's a lot of
developer jobs out there and I still end up getting to pick among several. I
was making six figures by my second job, but I have no idea how common that
is.

A degree costs a lot of money and 4 years of your time. You should give that a
good hard look, because if you're dedicated and you love the work you can
progress much faster on your own and it won't cost you anything - in fact you
will likely earn a lot of money during that time. If you prefer to veg out
after work every day with your choice of drug or tv, forget it. You're going
to need all the help you can get, go for the degree. If you're going to put in
the time and effort you'll quickly surpass your peers and get the best jobs -
with or without degree.

But the biggest thing I did for my career was move to Panama where there's no
tax on foreign income. I worked five years in a remote job and paid off my
mortgage.

------
keithnz
Need? no.

Do you need a good working knowledge of what a degree covers? Ideally yes, in
practice only parts.

Do people with degrees come out "knowing" what they covered in their degree?
often partially, bits are almost completely forgotten as the significance of
concepts wasn't really understood till much later.... even if you got A's

But, ideally, if you go in to a degree, highly engage with the content, it
gives you a structured approach to many ideas and is a great basis for many
kinds of programming applications.

Can you get the same through being self taught? sure. Though I do see that
people won't teach themselves things that don't seem relevant, perhaps some of
the mathematical foundations, etc. Which they often don't directly need, but
it does limit the brains innovations about possible ways to attack various
problems (to be fair, this is the stuff some people with degrees tend to
forget). Then, of course, some people teach themselves many things, beyond
what a degree would give them.

------
ChicagoDave
Anecdotal, but given my case, a resounding NO.

32 years and counting as a developer, architect, and dev manager. Not one hour
of college.

I'm mostly self-taught, but did go to a magnet computer science high school in
Milwaukee.

------
imgabe
"Need" for what?

To get any job? No

To get some specific jobs? Yes

To learn how to program? No

To learn computer science? Technically, no. But may be an easier path for most
than self-study.

------
leovonl
I sometimes find it hard to discuss some subjects with some of my co-workers
that don't have some degree directly related to computer science.

For instance, it's very common for electrical engineers to work on software
development and they tend to have a good grasp of how things work in the lower
level, but when you start moving up in the abstraction ladder, the discussion
starts to become harder. Compilers, types, and generally anything that is more
related to math or "formalization" is not within their standard knowledge.

It could be argued the same could be said about some with CS degrees as well -
category theory, what? - but that usually is a sign of a lacking education. A
good electrical engineer does not need to know about context-free grammars,
same cannot be said about a good computer scientist.

This is usually a problem when discussing solutions: "How are we going to
solve problem X?" tends to be approached by a computer scientist from the POV
of algorithms and the concepts involved (for instance, CAP for distributed
systems, and how to deal with conflict resolution, etc) and then search for
tools that match the criteria. OTOH, most of the time people that don't have
the understanding of this area would want to choose a tool that best fits the
problem by its description, without thinking about the underlying algorithm
and the implications or trade-offs.

I also had some issues when discussing languages and paradigms - it's hard to
evaluate the available options when you can't see the concepts and understand
what they provide you with. Most engineers don't have the slightest idea of
what is logic programming, though it is essential to a good number of fields
in science and industry.

Either way, I don't think anyone should be forced to have a degree to be able
to work with software, only reservation I have is when people say it doesn't
make any difference, as "programming is easy, anyone can do it and understand
anything without formal education". Sure, surgery is also easy... the hard
part is to keep the patient alive.

~~~
haywirez
Can you elaborate (more) what would be required to "fill the gap" to an 80%
sufficient extent? Perhaps a list of links / topics / keywords that should be
checked out and read about? Perhaps it's possible to get up to speed with ~6
months of self-study...

~~~
leovonl
Usually anything that deals with theory of computation, formal languages,
formal methods, compilers, graph theory, functional programming, logic
programming.

I assume numerical analysis, probability and even assembly are subjects most
people from engineering would already have some familiarity with.

More specific subjects include relational algebra (for relational databases)
and AI concepts like neural nets.

------
rm_-rf_slash
If a hiring decision comes down to two equally qualified candidates, and one
has a degree, that one gets the job. CYA, plain and simple.

However, if both candidates have several years of relevant experience, it is
more of a toss-up.

~~~
tomtompl
How often it's the case that you have "two equally qualified candidates"?

------
drblast
Will you learn more in college than you otherwise would on your own? Probably,
especially if you dedicate the same amount of effort in each.

Will having a college degree hurt your chances for getting a job? Not likely.

I'm a developer, and I have a post-grad EE degree in addition to undergrad CS.
It's surprising to me how often the EE material and math is useful in my job.

I wouldn't tell anyone to go get a Masters in EE in order to be a good dev,
but if you have a realistic option to get a degree without saddling yourself
with crippling debt, get the degree.

It's likely to help and unlikely to hurt.

------
njharman
I didn't. Although 1) I do have 3-4 semesters worth of college heavily focused
on CS. 2) Back when I started, 30years ago. it was much less of a thing (to
have CS degree) 3) I've been programming since I can remember. I grew up
reading Byte (before it sucked) and Dr. Dobbs, I taught myself C in 6th or 7th
grade from my dad's copy of K&R. I've spent inordinate amounts of time, way
more than time spent getting a degree(or several), learning, studying and
practicing the art of software development.

College degree is the easy way.

------
aries1980
Degree is a certification, not the knowledge.

For me it is useful to understand how a computer architecture, operating
system, complexity theory, discrete math and calculus works. It doesn't give
tangible knowledge for the everyday work, but transformed my view so I make
different decisions that I would make without these skills.

But there are wast amount of quality materials that are accessible for free on
these topics, so no, you don't need college degree (whatever it means;
Bachelor?) but you need the skill to be a good software engineer / developer.

------
systems
well, i would say for the average person (and nothing bad about being
average), a college degree will make it a lot easier to get a job, and getting
a job is a very good start in my opinion ..

even if you define success as being the owner of a business, starting in a job
will help you learn a lot about doing business

------
lr4444lr
Maybe I'll be down voted for speaking against the grain, but one of the
benefits of someone who has the degree is that you know they have some minimal
grasp of the basics (yes, there are exceptions) which make adapting to changes
in the tech stack or industry practices less painful.

One of the obstacles with he thing hired out of the coding schools is that
employers don't know even if you're "current" that you aren'the just equipped
for their ephemeral needs.

------
AbstractCache
I'm a student at a top 5 CS school. I feel that the majority of the value of
my degree does not comes from lecture, homeworks, or exams. I feel the acess
to opportunities on campus is where much of the value comes from. We have many
bright, talented, and diverse people on this campus. Not only my fellow
undergrads, but also the professors, grad students, researchers, employees of
companies with a campus presence, etc. There's huge opportunities for
collaboration on programming projects, both in class and out of class. There's
a great startup culture, with a lot of campus resources. There's a slew of
companies that employ students for part-time co-ops on campus. Almost every
professor talks about research they would be interested in getting students
involved in. We have very active IEEE and ACM student orgs. We put on a great
hackathon everywhere. I could go on, but to put it short, you almost have to
try to avoid opportunities to not develop yourself as a computer
scientist/engineer. If you're teaching yourself, you have to be proactive in
working with projects online, motivating yourself to work on personal
projects, seeking out opportunities, where as on campus, the opportunities
basically come to you.

------
gremlinsinc
I've seen degrees actually set people up for failure, or not prepare them
enough.. My brother went to school for 'interactive design/dev' and 2 years
later hasn't found work.. they taught php/javascript -vanilla no frameworks,
he learned css/html but no bootstrap. For basic web dev, I think if you're a
go-getter and self-taught you're more likely to succeed than a college grad w/
the basic college curriculum.

------
alaskamiller
Continuing on to college back in 2000 was a big deal. A college education was
the underpinning of the American dream, the promise is that it leads to a
stable and steady job, which leads to stable payments of a house mortgage,
which leads to a stable marriage, which leads to a family.

Then you die.

The promise was bolstered by the returning GIs of WW2 who took advantage of
the GI Bill to go back to school. Every generation there after took to that
prototyping.

Earn a degree, get a job, buy a house. Repeat.

But in 1996 a very curious thing happened.

The folks that commercialized the works of academics and scientists started to
take off and get attention.

Thereafter the work in the industry started to outpace the output from
academia.

You want to build a dot-com business? School wasn't going to teach you that.
You have to go learn it yourself. You would be stupid to stay in school.

This held true so much that in the early 2000s, when the risk of NOT having a
college degree made dropping out to pursue your tech dreams an actual
proposition.

But we're flipped now.

In 2017, schooling has caught up. What's discussed in the latest industry is
discussed in the class rooms. And not only caught up but been condensed to
mere months. You want to build a website? It makes more sense to go to a
technical school or college, participate in the college level entrepreneur
safe space, or leverage networking.

You would be stupid to not have a college degree.

But now the high cost of college is more of a privilege than anything else.

Good luck.

------
psyc
I've been in the software industry for 20 years. To my knowledge, there has
never been a time when there wasn't a significant number of professional
programmers without degrees. It's a field that attracts people who love to do
it - aka "amateurs". Many people love it enough to delve into CS of their own
accord.

I didn't go to college. I've _never_ been asked about my education during any
hiring process. I've worked on several phenomenally successful products, and
I'm quite sure I've been considered a high performer at every job I've had.

I've worked with a dozen people like this, often at big companies with highly
technical developer cultures. I know a few no-college developers whose
knowledge of our mutual specialization is so deep that I have a hard time
following them.

As long as demand for talented devs is like it has been so far, the industry
as a whole can't afford to exclude any.

------
aphextron
I got into web development about 5 years ago as a self-taught developer with
no degree. Since I was laid off at the beginning of 2016, I decided to take
the entire year (all of 2016) off work for personal reasons. Now that I have
started interviewing again in the last few weeks, I've found my lack of degree
to be a serious sticking point for interviewers. I think the industry is being
flooded with "bootcamp" grads and other self-taught developers now, and it's
becoming much harder to get your foot in the door without a BS.

If you're wondering whether you need a computer science degree to build your
own iPhone apps or launch a SAAS, the answer is no. But if you want to work
for large corporations or SV startups as a Software Engineer, then it's almost
a hard requirement.

------
rezashirazian
I would not hire a software developer if he/she does not have a CS degree from
an accredited university.

I could care less about what people learn at colleges or how someone without a
degree could know more than them. It's not the knowledge that I'm after, it's
the person.

Someone with a college degree has shown they can make a long term commitment,
take on a large and complicated task and see it through. I know that for at
least four years they have been exposed to individuals who are at the top of
the industry and have learned about CS with peers who share the same interest
and are now their close connections.

Although all of these might be true with an individual without a CS degree but
the odds of that is so miniscule that I believe it's not worth taking a
chance.

Just my opinion

~~~
falcolas
I appreciate your optimism about the value of your average CS degree, though I
think it's completely unfounded. There are hundreds of thousands of CS degrees
handed out from over a hundred accredited universities every year.

> I know that for at least four years they have been exposed to individuals
> who are at the top of the industry

The chances of all of those students being exposed to "individuals who are at
the top of the industry" is pretty much nil (I'd even argue that folks who fit
that description are not to be found in most, if not all, universities).

> peers who share the same interest and are now their close connections.

Those close connections with their peer groups is going to provide, IMO,
pretty much zero value in the short term. That's a recipe for an echo chamber
where programming memes are passed around and mistaken for wisdom.

In the long term, as they gain experience and learn about the real world,
that's when those peer groups are going to be valuable. But by that point, if
you're still looking for that CS degree, you're looking for the least valuable
part of their experience.

~~~
rezashirazian
> I appreciate your optimism about the value of your average CS degree,

It's not perfect, but when you're hiring you're taking a chance and have to
hedge your odd for success.

> The chances of all of those students being exposed to "individuals who are
> at the top of the industry" is pretty much nil

It's higher than someone who is plowing through online courses and YouTube
videos.

> Those close connections with their peer groups is going to provide, IMO,
> pretty much zero value in the short term.

I would have to disagree with your opinion. Being exposed to other individuals
who share the same value and aspiration has plenty of short term and long term
values for the student and the individual that hires her.

In short term, when you hire a new grad who is a great fit, odds are his
friends from college would also be a great fit.

In long term these individuals and their network "gain experience and learn
about the real world" concurrently. So their network expands much faster than
someone who is picking up the trade on their own.

------
blablabla123
It's quite ironic, I have a degree in (Theoretical) Physics but it's is waaaay
easier to find work on pure programming/Web projects and not something with
numbers involved. And the latter is basically what I've been drilled for in my
studies.

~~~
maus42
Yes. I also have major in a math-y subject, with extensive minor in CS, but
all the jobs seem to be in building shiny webapps with the latest JS framework
to sell people stuff or services. Data Science that is much talked about seems
to mostly about glorified statistics for advertising. Chances of getting into
the R&D department of BigCo's moonshot project (think about self-driving cars
or something) are 1-in-million.

As far as I know academia has no pay and no stable career prospects for a
student like me because I'm not the top-of-the-top of my class, just slightly
above the average, but at least there is a promise of a chance of doing
something _interesting_ that might wider humanity's perspectives and maybe
even _help_ us. With real technological progress.

~~~
blablabla123
Exactly... Well at least working there are startups (at least in Berlin) which
offers good working conditions, 40h or less and it's even possible to work
then apart from the job...

------
ThrustVectoring
There's also a huge difference between "how much does a college degree help an
individual programmer" and "how much does a policy of requiring CS degrees
improve programmers as a class". I'd argue that there's more of the first than
the second - a college degree is a largely a positional good in that having a
more impressive educational background gets you hired only as much as other
folks have less.

I don't think the program is worth the massive investment getting put into it.
There's obviously superior alternative structures - proctored algorithms tests
to filter for IQ/ability, which qualifies you for a year-long apprenticeship
with a working programmer.

------
compiler-guy
'a Boolean search for “degree OR bachelor OR BS OR BA OR B.S. OR B.A.” yielded
1,760 matches.'

Thus missing jobs that include "Masters" or "Phd". In certain fields, (such as
compilers) jobs that require an advanced degree are quite common.

------
krlnk
Having a college degree can be a requirement for work visas. I moved to SF
from Europe, and this would have been a real problem without a master degree.
Not sure about requirements for european visas, but that's probably true too.

------
7ewis
Instead of going to college, I did an apprenticeship and have now been working
for three and a half years in the tech industry.

I have also been doing a college degree part-time online, it will take six
years in total, but I am working full time so I don't _need_ it, but just
_want_ it to maximise my potential.

I am three years into the degree already, so only have three left. I am 21,
and my friends are all still at college, so feel like I already have the upper
hand.

Just need to get some good content on my GitHub profile!

------
guilhas
Succeed is not just getting a job. I have not finished a bachelor. And I had
no problem getting in jobs requiring a degree. But the future is unknown. Am I
just a good cheap worker? How about career progress? How about when I'm 45
with less energy/interest and stuck in some low uninteresting position?
Because although many companies relax on hiring they might not on promotion. I
am definitely considering long term finishing my bachelor at least.

------
jorblumesea
Probably as people flood into the field my guess is those with formal
education will be picked purely because they check somewhat arbitrary boxes.

------
jack9
No. Definitively. That's not the same as not needing an education. Some US
college is optimal imho. US High school is specifically socialization now
(thanks to the teacher's unions). Nowhere was this more evident than in
pursuit of a teaching credential where the filters are stark and narrow for a
specific mindset allowed to be a teacher.

------
denvercoder904
The key here is "developer". A web developer can learn to write code for a
pretty website. This only requires very basic knowledge and essentially no
math is involved.

In contrast, an engineer or computer scientist capable of working as an
applied mathematician definitely requires an advance degree. I laugh when
webdevs call themselves engineers.

~~~
runT1ME
>In contrast, an engineer or computer scientist capable of working as an
applied mathematician definitely requires an advance degree. I laugh when
webdevs call themselves engineers.

Why would you think this? Do you think everyone who has a degree in CS
understands algorithms, compilers, type theory, PL design, or operating
systems at a deep level?

Why would it be impossible for a self taught dev to learn these things? I've
been in the industry for over twelve years and have found no correlation
between degrees and deep understanding of CS concepts. Some with degrees have
it, some without... _shrug_

~~~
8fGTBjZxBcHq
It's just simple gatekeeping. People are finally having to admit you can be a
developer without a CS degree so they're moving the goalposts.

"Fine, you're a webdev, but you'll never be AN ENGINEER."

------
pklausler
Maybe. I know excellent (software) developers without formal degrees, and I
know many incompetent developers with them.

------
mml
I did it my way, but I wouldn't wish that path on anyone. Stay in school kids!

------
eng_monkey
Do health professionals need college degrees?

It depends, as it is not the same to be a first aid officer to a dentist, a
physiotherapist or surgeon. In some cases you need a higher degree than in
others.

The same with software development, IT, etc.

------
ganfortran
Yes, they do. Having a degree opens more doors, there is no denying that.
Degree doesn't offer enough proof of your skill, but this doesn't mean it is
pointless.

~~~
amorphid
I do not agree. It's nice to have options, but one doesn't not need, and
practically speaking cannot take advantage of, infinite options.

If maximizing the number of doors opened were the best choice, then a logical
extension to "Do Developers Need College Degrees?" is "Do Developers Need A CS
Degree From <'best' CS school(s)>?" Clearly they don't. When we're given
infinite time, energy, and other formerly finite resources, I might feel
differently.

~~~
ganfortran
But the truth is a bachelor degree is not a very difficult option, for 40% of
US population, it is very PRACTICAL.

Having a degree definitely helps me get a lot more interview opportunities
than my friends who come out of a coding bootcamp.

~~~
amorphid
If I am hearing you correctly, you are saying that a CS college grad (maybe
with STEM grad with programming) is more likely to get the opportunity to
interview than someone with only bootcamp coding experience. I agree with
that. The former has been coding for at least a few years, and the latter a
few months. There's no substitute a the right kind of foundation built from
experience.

That being said, when hiring for a junior role, it's hard to spot the "right
stuff" on a resume. If you figure out how to spot that, let me know :). Or
keep it a secret and sell me that as a service! There's a reason that
currently most recruiters can't charge a commission for placing junior
candidates. It's hard enough for you to spot the junior dev you want to hire
in a sea of applicants you've never spoken to. A recruiter who isn't you will
have an even harder time figuring out what you want.

------
jaequery
for developers, i think in some ways it hurts you if you had college
experience. and drop out students are considered accolades in a bizzarre way.
sad but true.

------
debt
Elon Musk started a space and a car company. I'd say nah you don't need the
degree.

~~~
UK-AL
Elon has a degree, and was a PhD candidate.

------
ChuckMcM
The discussion here shows the three main aspects of this question; as a pre-
requiste for getting hire, as a mechanism for learning skills, and as a limit
on what I can do.

Is it a pre-requisite? Generally no. But the word 'developer' is very broad.
Putting up wordpress sites? Definitely not. Developing real time systems in
rockets? Definitely helps. Mostly though there are a lot of developers out
there looking for the next big thing and having a degree differentiates you
from people without a degree. It says you can take a multi-year project and
see it through to the end. Shipping a fairly complex product has the same
credentials, there is a lot of scut work you have to do when you ship a
product just like there is a lot of crap you have to do to finish a degree,
the big signal here is that you can do _all_ the work to get the project done
and won't stop when you get push back.

The second aspect is skills learning, here again a shipped project will help
you get through a lot of the challenges for that particular project. A CS
curriculum puts you through a bunch of material that is known to be
fundamental. So people who have shipped a wordpress site or a Heroku project
have an understanding a some of the things that have to be done when shipping
such a project but no idea about the things that have to be done to build a
new interpreter (for example). It is faster to develop expertise on a single
topic by shipping product related to that topic, it is faster to develop tools
to let you handle a broad range of topics by learning from a curated
curriculum that is designed to be as wide as possible.

And then there is the limit question. In my experience people are mostly self
limiting, which is to say the tell themselves "I couldn't figure that out,
especially not on my own." So a college program typically has some history
about how people went from not knowing something to it being part of the
curriculum. And if you're lucky that rubs off on you and you develop a sense
of how to get from not knowing to knowing. (that is the essence of science,
getting to the right answer when there is no textbook to tell you what the
right answer is.) As a result I've found people who are curious and stubborn
and refuse to believe they can't learn something do well either way, but a
college degree can sometimes indicate training in how to figure out the
unknown. Whereas people who are self taught at one thing may become stuck when
that thing is replaced by a new thing.

I often rail against "milestone" thinking as in once I have this milestone
_then_ I can make the next milestone. Especially when it comes to learning.
Humans are a bunch of experiences and learning wrapped up in a personality.
Their ability to learn new things is unparalleled but only if they have the
right tools in the toolbox.

If you work to develop those tools, you will always be able to learn new
things and be relevant in a changing world. If you learn only a few things and
don't change you will become irrelevant as the world changes. Does anyone
'need' a degree to learn something? no.

------
LyalinDotCom
No.

------
CriticalSection
This is not the time to ask that question.

The time to ask that question is when you're 38 years old, married with two
kids and the wife home raising the youngest one. Then you're laid off. And
it's 2000 or 2001. Or 2008 or 2009.

Companies need people now so it's in their interest to tell you to leave
school and work. You're on the hook for your future, not them.

------
tbrowbdidnso
Do any engineers need degrees? Does anybody? Before you go too deep down that
philosophical rabbit hole just consider one thing.

Is it a job that requires a lot of skill?

Any job I've seen that is highly skilled and not in the "get your hands dirty"
kind of way usually has a degree behind it.

I've seen many kind of engineers without a degree. It's not like you couldn't
figure it out on your own for any kind of engineering. The two main problems
are commiting enough time to learn it on your own and getting a company to
take a chance on you.

You can do it without a degree but it will be a lot harder to learn enough and
to get your foot in the door. If someone takes a risk on you, you'll probably
get paid like crap for a few years too.

Is it worth it to do that or just spend 4 years on a degree? Most of the time
the answer is a degree.

Computer science isn't any different from any other branch of engineering even
though developers like to think it's so special

~~~
hajile
If you are an engineer, you need to take the PE exam. In most states, you
cannot take it without a BS degree. Not really comparable to computer science
where such things don't really exist.

------
crestedtazo
No.

A person can go from zero knowledge to landing a full-time non-entry software
engineering position in 3 months. Many of my friends have done it and I am in
the process of doing it right now. I just started learning in December and I
am in the final stages of an interview for a Software Engineer job at Big Name
Tech Company that I fully expect to receive an offer for.

Coding is the easiest and highest paying profession in the world today.
Everyone should do it.

~~~
jrm2k6
Define non-entry software engineering position? I really don't thing _good_
code is easy to produce, so it is not definitely the easiest in my mind. I
think there is a distinction to be made between becoming a good software
engineer, and get a job as a software engineer. The first option takes more
than 3 months.

