
Ask HN: Is a computer science degree worth it or should I learn on my own? - cloudblare
Is 4 years of going to school really worth it? Or should I just try to learn as much as possible on my own and carve my own path?
======
nwallin
Both. Do not expect a college to teach you how to write good code; they won't.
You can write terrible code and still get Cs/Bs. ("Cs get degrees") It's up to
you to learn how to write good code. If you want to progress in your career,
you will need to be able to write good, maintainable code, and that isn't a
skill that's taught in college. If you're "that guy" on the team that writes
shitty code, sure, you'll get a paycheck every month because management can't
justify firing you when they're behind schedule, but you'll never get
promoted, either.

That being said, having a degree makes it significantly easier to get your
butt into a chair and have the opportunity to prove that you're a good
programmer and deserve a raise. When you don't have a degree, the burden of
proof is on you to demonstrate to the interviewer that you're a good
programmer, and then the burden of proof is on the interviewer to convince HR
that you would be a good hire. But if you have a piece of paper with the
magical words "Bachelors of Arts/Science (doesn't matter) in Computer
Science/Engineering" and there's a strong need in the organization for people,
the burden of proof is on the interviewer to convince HR that you can't
program and that HR shouldn't hire you.

It's a role reversal. It's the difference between "proof beyond a reasonable
doubt" in a criminal trial vs "preponderance of the evidence" in a civil
trial. With a degree, you can get a job just because you don't suck. Without a
degree, you'll have to convince a startup CEO that you're a
ninja/rockstar/MacGyver or whatever the buzzword is this month.

~~~
nolemurs
I'd add that there's a big difference between having a non-CS degree and
having no degree at all.

With a non-CS degree it may be a little harder to get an interview, but if you
can interview well, it's not going to count much against you. A degree in a
strong technical field (like Physics or Engineering) might even count in your
favor compared to a CS degree if you can still do well on an interview.

With no degree at all, you may find it harder to get interviews in the first
place. There are definitely still jobs to be had, and companies who will
interview you, but the options will, at least initially, be more limited.

------
KennyCason
My recommendation is to go to school if you can. In addition to getting a good
formal education in computer science, you also get exposed to many other
subjects such as math, philosophy, physics, etc. Even classes like
English/writing that may seem unrelated, all help you become a better
professional as you discover how important communication and documentation is
in the workforce. The university experience can be very fulfilling. You are
also exposed to various extracurricular activities which can further
supplement your growth. For example I was part of the game development club
and even got to lead it for a few years. That bit of experience was not only
super fun, but also helped me land my first job at Lockheed after graduation.
I also randomly stumbled into learning Japanese and Chinese and got a
scholarship to study abroad In Japan for a whole year. Absolutely amazing and
life changing experience.

I also made some of my best life-long friends, and now business partner, in
college. As you can see going to college is more than just the degree.

As others also mentioned having a degree significantly improves your chances
of getting a programming job. I’ve helped many people prep for job interviews,
both with and without a degree, there is a stark difference for better or
worse.

I’m not saying college is a must-have. But I’m saying it can be a life
changing and amazing experience, that is way deeper than just studying
computer science.

I still reflect on those nostalgic days sitting in the coffee shop or student
union on campus discussing math, philosophy, politics, programming with
numerous people, many smarter or more knowledgeable than myself. I feel that I
had a major “awakening” in college. :)

------
CyberFonic
I would suggest getting a degree in engineering! Electrical, Computer,
Software. The key to being effective in the long term is to be able to design
and then implement system of systems.

Astronomy is not about building telescopes and biology is not about designing
microscopes. Whilst CS is a very important field, it could be likened to being
like physics is to structural engineering. Physics study will teach you a lot
about how materials behave, but structural engineering will teach you how to
apply that science and build structures that will meet the requirements over a
long time.

The problem with being self-taught is that you don't know what you don't know
and can easily succumb to the Dunning-Kruger Effect. That is why programs are
so full of bugs. The coders didn't understand what they were building, they
just hacked away until something just worked (some of the time).

~~~
Latteland
If you want to be a software engineer, study software engineering, not some
other engineering area. I think electrical engineering is far less useful to
people if they are going to be general software engineers than being a cs
major. You will spend a lot of time learning things that won't matter to
software engineering. Of course if you were going tl be employed as an
electrical engineer, but if you only were trained as a software engineer, you
wouldn't be able to be proficient either. Study the field you want to work in!

~~~
CyberFonic
In my experience (a very long way from SV) a significant proportion of
excellent programmers did not do SE degree but had degrees in some other area.
My analysis suggests that critical thinking, ability to comprehend
requirements and do good design are critical skills and can be developed in
many related fields.

------
stevenwadejr
I'm 33 years old and have been programming professionally for 11 1/2 years,
and I'm self taught. I'm considered "senior". I founded and lead a user group
and I've spoken at a conference. I don't say this to brag, I say this to state
that despite my success and that a piece of paper won't advance my career,
I've always regretted not having my degree. I'm married with a kid and I just
started going back to school to fulfill my wish. I say this from experience,
go to school first. It's much easier the first time around.

~~~
Buttons840
How do you deal with classes like "intro to web development", where you will
learn what a GET request is, when you've been a senior web developer for 10
years? (Just as an example, maybe you've worked in something other than web
development?) Is cleping classes realistic?

~~~
jeffwass
Do people really need to take an “intro to web dev” class as part of a CS
curriculum? Is intro web dev included in the list of requirements nowadays?

When I was in college and grad school 10-20 yrs ago, and when web dev wasn’t
as hot as it is today, the CS folks were taking classes like algorithms, data
structures, operating system design, compilers, microprocessor architecture,
etc.

Has this changed much in the past decade? Or are you talking more about a
trade school type of degree (and do they still call that CS)?

------
seansmccullough
Get a degree. It is so much easier to get a job, and you are more likely to
complete it since you have skin in the game.

Go to an in-state school with a good CS and Engineering program if you can.
Also you can consider going to community college first and transferring in
your credits to save money.

~~~
fzeroracer
A good engineering program also exposes you to higher level maths and physics
as well, stuff you might not encounter or need if you did mostly self-study.

~~~
KennyCason
This is a really good point I’d like to second.

------
gamechangr
No one can answer this for you.

If you want the fastest path to get a $50,000 -$90,000 job - you may want to
consider self study. There are jobs in every city that could fit for this.

If you want a career path and want to work on high level engineering, then go
to college. You will need the basics and a network.

If you are asking and not sure, you should most likely go to school.

------
zfigz
There's also the middle ground of going to a reputable coding bootcamp.

I'm a 34 year old dad with two kids and a bachelor's / master's, so I'm not
really itching to accrue any further debt and I don't wanna spend 2/4 years in
school. Sure, if I had the time and money, I'd go back to school and take a
bunch of math/theory that would probably help but wouldn't be essential in
finding a job.

Anyhoo, I start a bootcamp in a couple of days. Other than a bunch of
codeacademy, mdn and other random resources, I don't have a load of experience
in programming. I'm constantly making mistakes and often hit the solution
button to fully understand the problem.

I think the biggest motivator than anything is to find a problem/type of
program you'd like to create and learn as a means to achieve that idea. That's
been the biggest motivator for me.

~~~
analog31
Just out of curiosity, why bootcamp and not a community college course or two?
I ask because my mom taught programming at a CC in the 1980s, and her students
got decent jobs. And my spouse is just about to sign up for a Python class at
the nearby CC.

~~~
zfigz
Mostly because I'm older and I have a family I need to support. I don't feel
like a course or two would benefit me as quickly as 16 weeks of nonstop
learning.

The other big factor is that the bootcamp has a strong relationship with
recruiters making it easier to land a job afterwards.

------
AndrewKemendo
#1: There is more to college than the education, education is almost
incidental anymore. It's about networking and signaling, and that is actually
pretty important even though it shouldn't be.

#2: I was just reviewing a big requirements document with a Program Manager in
the DoD and they asked me to come up with criteria for hiring SWEs. They were
specifically asking what kind of education they should have.

I told them that BSCS was good, but I would hire someone the same age with no
degree, but 4 years of experience over someone with no experience and a BSCS.

My experience shows me that even at the Senior Level this seems to apply.

There are drawbacks though.

Generally speaking, code savants don't need school to be amazing, but a non
trivial number of them are high maintenance Divas that aren't great employees.
Genius level work though.

On the other end, the BSCS folks have a floor of competence most don't fall
under, so code is more predictable but in my experience rarely really amazing
work.

On the extreme end, PhD's generally can't code worth anything. Don't hire them
as SWEs, they're researchers and architects.

So the answer to the question is really more questions.

Are you ok losing out on positions that have a mandatory degree?

Could you maintain your desired lifestyle as a freelancer/code mercenary?

Are you sure you want to miss out on the social and network benefits of going
to College?

------
Ocerge
Like others have said, it really depends. As somebody who works-to-live and
doesn't particularly love software, I never would have achieved the knowledge
I have now on my own. I needed the real-life deadlines and stress to learn.
Additionally, I can say with quite a bit of confidence that I use knowledge
obtained from university almost every day, even if indirectly. If you do
decide to go to school (and are in the United States), I would highly consider
the community college -> in-state public university route. I went to a
top-30-ish CS program at a large in-state institution, and I don't think I
missed out on many opportunities because of it. Unless you get into CMU, MIT,
Stanford, etc. just pick a large, hopefully cheap in-state school, make good
grades, and apply to jobs through your school's network.

However, if you're the type-A/self-motivated type, you can totally learn learn
enough on your own to land an entry-level gig. I will never be that kind of
person, but I work with people who are, and they earn the same if not more
than I do doing the exact same job.

------
analog31
There's always the possibility of getting a non-CS degree. Granted, I started
college in 1982, but I ended up majoring in math and physics while teaching
myself programming and electronics. Lots of people were getting programming
jobs without CS degrees.

Then I got a graduate degree in physics, so you never know. Your interests can
always change while you're in college.

Today, I do a lot of programming, but I'm not employed as a programmer. On the
other hand, math, physics, and electronics are "domain knowledge" that have
served my career well.

------
anoncoward111
If you are paying for it in loans/cash, be very very careful about where you
go and how motivated you are.

If it's mostly subsidized at little cost to you, probably worth it

------
elvecinodeabajo
Learning your own doesn't give you a grade or diplomas to prove how much
you've studied.

Another benefit of the degree is the already plannified roadmap, taking it's
time to learn the basics in depth. And, of course, the teacher who answers the
doubts that are coming and shows the advanced tricks he already know.

Definitely, learning in your own is a good choice if you don't plan to work on
infosec jobs. But without a grade the most tech job I can find in my country
is formatting broken windows machines, installing printers and routers, and no
much else.

~~~
mtnGoat
the opposite is quite true as well... a degree doesn't mean you've learned
anything or are great at the things i need.

of the 100+ engineers i've hired in the last decade, few had degrees and all
of the top performers, aside from one, did not.

dual edged sword in my opinion.

~~~
elvecinodeabajo
To read you've hired engineers without the degree. Some brilliant people just
needs an oportunity. In tons of business they just discard the CV that don't
show degrees. A good talent chasing makes this world better in a faster way.
But not everybody can find the spark in potential genius.

~~~
elvecinodeabajo
Well, this comments starts with "I feel happy..." Sorry.

------
craig1f
In general, 4 years of school is worth 4 years of work experience. The problem
being that, without 4 years of school, it's hard to convince anyone to hire
you and get 4 years of decent work experience.

Additionally, it's harder to get jobs at larger and more bureaucratic
companies without a degree. This is because of risk. If I'm a hiring manager,
and I hire you, and you do a good job, everything is fine. If I hire you and
you're a disaster, there will be a review as to whether there were any red
flags during the hiring process that were missed. If "doesn't have a college
degree and sufficient work experience" is found, it'll be used to make me look
like I was sloppy for hiring you. If no red flags are found, it'll be chalked
up to "there were no red flags. This was just bad luck." and everyone moves
on. Knowing this, I probably won't hire you even if I think you're a good risk
because it's not worth the risk for me.

Without a college education, you'll need to work for small companies who are
willing to take a risk on you. You'll also have to accept really low pay to
offset this risk until you've built a decent resume.

All of these things might be better than accumulating student debt. Depends on
where you live, what the job market is like, and what connections you have.

~~~
homie
My 4 year degree sure doesn’t look like 4 years of experience to any HR
staff/hiring managers I’ve ever interacted with.

------
agitator
From what you see on social media, in the news, etc. it might seem like "wow
there are people out there who are self taught and made it big! I can do
that!" But keep in mind, these stories are out there because they are rare.
Most people who don't go to school, even those who shared the dreams of making
it big, end up failing. The ones that succeed are unicorns. The inherent
structure of school forces you to follow through with learning, projects, and
eventually completing a degree.

There are multiple benefits to this. First you have a base to fall back on. No
matter what you do from that point on, you have a degree that declares that
you are at least somewhat competent in your field. You can't go any lower than
this new platform you made it to.

Secondly, having gone through college for a degree in a field that I do not
work in now, I can say there is still immense value in getting any degree,
especially a science degree. The most important thing you learn is how to
think logically, think for yourself, and how to problem solve logically. These
are things that are often taken for granted, or overlooked.

Thirdly, you learn about a multitude of topics that you may not have bothered
to investigate, which broadens your horizons, and makes your a more informed
and intelligent person. Same goes for meeting new people. You meet people that
you may never have had the chance of interacting with. Universities aggregate
people from all over the world. You will make lifelong friends and connections
that can be just as important in a career as technical skills. This also
results in learned social skills and emotional intelligence which is immensely
beneficial.

------
blihp
Depends on what you mean by 'worth it' and what you would like to do if/when
you got a degree. Assuming you mean monetarily/career-wise, there are some
career paths/types of companies where you'll have a very difficult time
getting into without one. (primarily large companies and 'gated' industries
whether by professional associations or regulation) However, you can generally
be a contractor/vendor for nearly any company as the business relationship is
different and if they like you enough they may offer you a full time position
despite the lack of a degree. But something not to discard is the life
experience factor: I've met some people who just loved the whole college
experience and that alone made it worthwhile for them regardless of the career
aspect.

I'd highly recommend you at least try it for a while so you'd understand what
you'll be passing on. One thing that _isn 't_ worth it is regretting down the
line that you didn't go and having neither an understanding of what you passed
on or a good reason why you did it. You don't even need to go to a 4-year
college: take some Community College classes if you're unsure or money is an
issue. (if you're careful to take classes that transfer, you can eliminate a
big chunk of the cost if you decide to go for the degree) The downside is that
2-year schools really don't give you the same experience as the 4+-year
schools. Bonus points if you take classes while trying to carve your own path:
it's hard but then you'll get the experience from both sides to inform your
decision.

------
tropo
It can be worthwhile, even though you are getting ripped off very badly. That
4-year degree gets you about 1 year of valuable education, 1 year of nice-to-
have education, and 2 years of disinformation.

If you just got the 1 year of valuable education, you'd still need 2 years
(only part-time though) due to long chains of prerequisites. This is easily
demonstrated at some schools by the fact that a person with an AA degree
(totally generic liberal arts, like repeating some high school classes) can
upgrade to a BS degree after 2 more years. Since half of those classes would
be outside the major, the clear conclusion is that the 4-year degree only
gives you 1 year worth of valuable education.

So there you are, giving up 4 years of salary and paying 4 years of tuition
and living expenses, to get just 1 year worth of valuable education. It sucks,
but it might still be your best option.

Higher education is sort of a cartel. You are offered what they feel like
selling, even though the customers are really annoyed, and every place is
roughly the same. It's like dealing with De Beers or OPEC. The colleges even
exert control over the accreditation organizations, ensuring that no college
can cheat.

------
syntaxing
Going to school make's it easier to become a chef rather than becoming a cook
[1] (“reasoning from first principles” vs “reasoning by analogy”).

There's nothing wrong with being a cook but it depends on what you are aiming
for for your career.

[1] [https://waitbutwhy.com/2015/11/the-cook-and-the-chef-
musks-s...](https://waitbutwhy.com/2015/11/the-cook-and-the-chef-musks-secret-
sauce.html)

[1] [https://waitbutwhy.com/2015/11/the-cook-and-the-chef-
musks-s...](https://waitbutwhy.com/2015/11/the-cook-and-the-chef-musks-secret-
sauce.html)

------
sloaken
It depends on what part of IT you are looking at, and what your objective is.
If you need money now - then get a job and use what you have learned. The more
you have a passion for the topic the more likely a degree is needed. Because
after you get a bachelors, you are likely to want a master etc.

Programmer / Database - definitely - I have been developing code for a long
time, I have worked in many positions. When I work with people I can usually
tell if they have a degree in CS or some other topic. Part of it is the mind
set of the person, and their ability to comprehend issues. A math or
engineering major will understand recursion when explained. Most math majors
will be able to do recursion after an explanation. A history or business major
will nod in agreement, but still have no idea what I explained. That being
said I use recursion to distinguish better programmers who can / could be
great and those that are on the B team.

Like others have said, not all CS majors are great programmers, and many are
just bad. But the chances are better, but I think it has more to do with
passion than anything else.

If desire to be a systems administrator, a CS degree can help, especially in
scoring the interview, but is often more helpful to have certifications.

It is easier for a boss to justify a raise / promotion for someone with a
degree than not. Take this extreme scenario: you have 2 developers, one with a
few programming certs and one with a CS PhD. A manager slot opens up... whom
do you promote? How hard would it be to explain either promotion to upper
management? If they screw up in the new position who will they blame (if its
the PhD person they blame them. The other guy they blame you for promoting him
beyond his skills).

If you want to do web pages, then I think the learn it on your own is the best
tactic.

I would avoid a CIS degree. That appears to be a degree for people who cannot
do CS but think a computer degree would be real cool. Last I looked there were
a lot of unemployed CIS people.

The one advantage of starting work now, is you might be able to get the
company to pay for your CS degree. But they almost never provide a good pay
raise.

------
meritt
There is a massive amount of high quality and completely free material from
universities available online. Use it to your advantage.

------
mwnorman2
In my opinion, the industry wavers back and forth on CS degree or just 'git-
er-done'. I remember the early computer 'craze' (1970's) when all you had to
do was open a company called "Compu-NNNN" and money would flow. Later, people
wanted to see diplomas, degrees, certifications so then lots of folks when to
school: undergrad, or grad-school if you already had undergrad degree. Now,
things are a bit different: information as well as the opportunity to acquire
skills is global, no one place is 'ahead' of the other

My advice: choose a path you are comfortable with in terms of time, money.

------
tastyham
My experience hiring lots of engineers is that people with comp-sci or other
stem degrees are on average much more successful at software engineering. Yes,
there are great self-taught and code-schooled engineers, but on average they
are less successful. Plus even the great ones seem to get started later with
their careers instead of getting hired straight out of college like comp-sci
majors.

I imagine it will also be difficult to network and build relationships in the
industry without attending a 4 year school unless you are very outgoing. Who
you know is often more important than what you know.

------
fzeroracer
Yes, I would say worth it. Not just for the degree itself, but the networking
and internship opportunities being a student gives you. If you live in an area
with a strong tech scene you can get high quality paying internships which
give you a strong foot in the door at many companies.

It's possible for you to carve your own path but from my experience companies
are looking more and more with people that already have professional
experience even for entry-level jobs. As long as you can afford it without
going knee-deep into debt then I would say it's a good idea.

------
bordercases
There was a time where the software industry was booming and immature so that
someone with enough time on their hands to teach themselves what was
necessary, could end up being as good as the other guy.

Now systems have become more mature, more complex, and companies expect more
from an individual that they only want to train on the details of their own
system rather than the basics of the craft.

Gradually that's meant that at the very least, you ought to be credentialed to
have an advantage now if you want to be hired by larger companies. There is an
exception to this, and that's if you manage to be front and center in a large
self-sufficient software project. But getting to that point can be just as
difficult as getting a degree, and leaves you with the burden of communicating
your value even if you have learned a lot in the process of maintaining this
codebase. See the story with the Homebrew guy failing his Google test.

From my experience a university program emphasizes theoretical material which
gives you a bit of every domain in software engineering. You are still given a
lot of room to direct your learning outside of this, but it would be mainly to
keep current as to what tooling industry uses as well as maintain your
network. What you are paying for is structured material plus access to the
wisdom of professors, which can often be quite mind-expanding in its own
right.

------
iliaznk
I'm a Russian citizen and have no degree, self-taught, never had a problem,
until recently when I was offered a job in Berlin. As far as I understand, in
order for a foreigner to be able to live and work in Germany (and that should
apply to many, if not all, other European countries too) one must obtain a
Blue Card, and that requires one to have a degree in the field they're going
to work in.

~~~
muliwuli
even that can be bypassed if the company is really interested in you, they
need to offer you yearly salary greater than xx000 EUR and give you contract
for 1 or 2 years and you can get a blue card without university degree. i dont
know the details, but im working in berlin and i know many friends with that
issue

~~~
iliaznk
Wow! Sounds great if true... Could you, please, connect me with one of those
friends of yours? I'm really willing to go, meet people, make some friends, if
possible at my age, maybe, even, try to launch a dev studio. I was also
considering buying a degree, but, of course, I'd much prefer a legal way.

Where are you from, if you don't mind? How is it in Berlin? I stopped
following any news a while ago, but the last thing I heard was that a lot of
refugees were coming to Germany and not all of them were behaving. To the
extent that native Germans started leaving some cities. Is that true? Is it
safe in general?

------
oldgun
I think it really depends. A degree requires more commitments, both time and
efforts, but it'll give you more: fundamental theoretical knowledge, network,
career consultancy and vision. But if you already have good fundations and
need to get started in CS, there are so many resources available these days.
You just need to be much more self-desciplined and dedicated. Good luck!

------
PurpleRamen
Learning is like gardening. You plant seeds, maintain their growth and hope
one day they become something beautiful. In schools you will find many well
skilled gardeners who know how to growth some beautiful parks, though this
strongly depends on the soil they get, meaning you. If you don't work with
them, or just don't have or get what is neccessary to grow well, then even the
best gardener can't help you.

On the other side, not every one want's to be a park, some people are happy
being a bush, sometimes people are better with being a jungle and maintain
their own beauty.

Nobody can predict the future, nobody can tell what person you will be in 10
years, in 20, 30.. But probability-wise it's always a good idea to learn from
those who already mastered the skills you seek to learn. Having a teacher,
someone who can guide you, someone who forces you to learn the boring but
still important stuff, is usually a good thing. Especially in a highly
knowledge-drowning field like computer science.

------
BjoernKW
It probably very much depends on the school and the courses you take but most
will provide you with at least some foundational knowledge of computer science
(e.g. data structures, complexity theory, some linear algebra, software
engineering), which is incredibly useful.

You can certainly learn this all by yourself but that takes quite a bit of
discipline. Moreover, having an actual teacher and peers to help you with your
learning is an enormous benefit.

That said, foundational computer science education can only ever be part of
the equation. If you really want to excel in your field you have to learn on
your own anyway. So ideally, it's a combination of both.

As for the degree itself, that totally depends on what you're going to do in
the future. What you learn is much more important than the degree itself. You
can still drop out later if you feel you'd better continue on your own or your
time (and money ...) might be put to better use in other ways.

------
JamesBarney
I wouldn't get a degree. They're not needed and you'll make far more with an
extra 4 yrs of experience. There will be some jobs that will be harder to get,
but it doesn't make up for the fact that you're not working for 4 years, and
paying through the nose for school.

------
zfigz
There's also the middle ground of going to a reputable coding bootcamp.

I'm a 34 year old dad with two kids with a bachelor's /master's, so I'm not
really itching to accrue any further debt and I don't wanna spend 2/4 years in
school. Sure, if I had the time and money, I'd go back to school and take a
bunch of math/theory that would probably help but wouldn't be essential to
finding a job.

Anyhoo, I start class at a bootcamp in a couple of days. Other than a bunch of
codeacademy, mdn and other random resources, I don't have a load of experience
in programming

------
funfunfunction
3 years ago I made the decision not to get a CS degree and haven’t had a
problem getting interviews. There are other things to consider. If you’re
interested in talking reach out to me at samheutmaker at gmail

------
countystan
If you do it to make more money down the line, then it's less about learning
anything and more about having the right names on your resume, so shop around
for brand names. The more Ivy-league sounding, the better.

If you actually want to lean something, you have to check some available lit
and see if you actually care about the problems CS people are trying to solve.
Just because CS has something vague to do with all things Valley, programming,
six-figure salary, hacking the Matrix and other shiny stuff doesn't mean
you're gonna like it or end up valuing it.

------
DoreenMichele
Trivia: Someone in a hiring position once told me they no longer hired self
taught programmers because such people didn't understand essential
architecture. They had tried it and it never worked out.

~~~
spc476
What is "essential architecture?" I'm having a hard time searching on it as
everything comes back as either "essential computer architecture" or
"essential architects' architecture" (aka building and city design).

~~~
DoreenMichele
I'm not a programmer.

Maybe some actual programmers will kindly weigh in.

------
xte
Well... Talking as European my answer is "it's depend".

Degrees and school solve different problems: degrees serve as a way to "know
enough" about someone otherwise unknown to assign a job, also solve some legal
problem in that process; schools are a way to spread not only knowledge per se
(notionism) but also to transmit a paradigm, a way to grow personal knowledge.

So, without a degree you may encounter "bureaucratic" problems/obstacles or at
least "suspect" in your work's career. Without a school you can learn MANY
things, perhaps more than that you can learn at school in the same time, but
it's hard to say if you can learn them with a good ontological method or not.
At school it's the same: if you encounter a good teacher you may learn good
paradigms not only "know how", otherwise you may only lost time and eventually
money (depending on your's country education system).

Also even if you are lucky you still need experience, not only paradigms and
mere knowledge.

The way and the order/time you'll follow to get them... Well it's really
individual, not standardizable, so you can't IMVHO get ANY generally valid
answer. You know ingredients, how to combine them it's your's personal recipe
to be build accordingly to your personal taste, kitchen, tools and time you
have and want.

For the rest, in my experience USA/UK/English-world school in general tend to
be too notionistic, they tend to form "skilled Ford model workers" not real
"technician" or "autonomous thinking guys, European ones tent to be too
detached from the real world so they form "autonomous thinking children" they
need to grow in the "outside"/real world for some years after. Also in the
USA/English world it's generally more valued experience/history than
competence mostly because it's easier to check than really get to know
someone. In EU world it's more valued traditional qualifications...

As a bottomline: it doen't really matter how much effort you put if you do not
really want to do something so if you force yourself in a school or in
autonomous learning results will still be poor. You need to desire and need
something to really accomplish it. So to say that if you can, as you can, it's
better to follow your dream not a pre-defined path by someone else. it may not
be ideal, it may not produce better result but being you'r own path it will
make you more free and happy than anything else.

Sorry for my English, not my motherlanguage...

------
leowoo91
I have both coded before and after the cs degree. Degree is not about making
money but gets you to the level of understanding that nobody can sh*t talk you
about how important learning 'x tech' is. Learning that much without degree is
really tough as trying to pull your teeth without going to the dentist. Only
danger is, you become so deep about the knowledge part but business doesn't
care how good scientist you are, so there is that.

------
arthev
Most CompSci programmes around the world are utterly bollocks and not worth
the time investment from a learning perspective as you'll have to waste time
on the tedious and unproductive coursework.

So the question really boils down to:

1\. Do you want to work in academia? If so, get degrees.

2\. Do you want a piece of paper showing you're a good cog in the machine? If
so, get a degree.

3\. Do you want to learn as much as possible? If so, skip the degrees and
focus on learning.

------
wslh
My two cents: in my relatively small sample of developers that I know, I see
differences in the ones with and without degrees in the topics that require
more study and discipline like operating systems, complexity, and formal
theory. For example, people without a degree in general does not have a good
background for developing multithreading systems or understanding that the
problem they are trying to tackle is NP hard.

------
getaclue
If you are in it just for having a job and an income - then having a degree is
not necessary. If you want more then it is also not necessary but helps a lot.
Make a pros and cons list and decide for yourself. But make a decision. I
picked engineering instead of CS and do not regret. But I was looking into
application of CS. Be mindful that engineering is not particularly easy but
definitely doable.

------
ngokevin
Going through school also helps you build a network and gives to access to
peer groups that will have you learning a lot quicker and be exposed to new
things.

------
martin_
I moved from the UK to the US when I was 20 with no degree, just self taught.
Have been working in senior engineering roles for ~8 years. I do feel as
though I’ve struggled more with the academic side of CS but the practical side
is what you’re measured on post-inverview. You can’t go wrong by going to
school, but it is becoming decreasingly necessary

~~~
acchow
under what visa?

This would be hard to do today.

~~~
martin_
An O1, which yes has gotten harder but is achievable

------
sushid
How young are you? If you're around an average college student's age, you
should definitely get that degree.

------
lechiffre10
I'm 31 and considering getting a degree. Wondering if I should go for a
masters in CS or do a bachelor's. Coming from a non-cs background and doing a
career change at this point isn't easy. Master's would be much shorter and the
Bachelor's obviously would take much longer. Any suggestions?

~~~
bocklund
Usually Masters degrees require Bachelors first. Maybe you mean Associates?

~~~
lechiffre10
Some programs in Canada allow you to get a masters in CS without having a CS
background. It would require taking certain prerequesites.

~~~
mcguire
The (reputable) programs I am familiar with in the US are the same.

------
comesee
A math degree is worth it. Learn graduate level statistics and machine
learning. Then apply it to something.

------
raegis
If you're in the U.S., take 1-2 intro programming courses at a local community
college. If you get an A, and like the course content, you will be in a much
better position to determine if you should go it alone or get a degree.

------
tluyben2
Both. An education is worth it if it is a master; I do not think, speaking
from experience myself and people I have hired, a bachelor is worth much of
anything.

A master will give you thorough theoretical understanding, it shows you can
get through difficult and boring phases but did not give up and you learn to
learn and reason systematically. Outside that networking, social life and
having fun should be a big part imho.

If you have to build up student debt (I am from the EU; it was basically free
for me as long as I wanted, so I got several degrees) then it depends what you
want with it; I would say for IT compsci is definitely worth it; other fields,
you might struggle to pay back debt for a long time so then it would need to
be something you _really_ want. As you are not sure and asking here I assume
you mean compsci.

~~~
leetcrew
> An education is worth it if it is a master

ymmv here. the company I work at offers the same starting salary to fresh
bachelors, masters, and phds, unless your scholarly work happens to directly
pertain to the business. in a lot of cases you will have missed out on 4-5
years of raises and experience. a lot of companies will be calling your peers
"senior devs" by the time you get your first job.

~~~
tluyben2
ymmv indeed; probably depends a lot on the field and region, hence the ‘in my
experience’ ;)

Many companies we work with throw bachelors straight on the do not hire or
maybe-if-no-master pile. This is also related to that in my generation and my
country, bachelor basically meant dropout. You always got the equivalent of a
master and hiring managers from my generation and region still feel it is
basically not finishing.

------
leesec
Depends on a lot of factors, age, savings, debt, etc...

Recently had to make this choice for myself as a 24 year old.

Reach out to me if you want to discuss it further and I may be able to provide
some insight.

~~~
takyons0
Hey leesec, you don't have an email listed. I'm a 25 year old making similar
decisions. If you wouldn't mind quickly sharing the factors that went into
your decision, I'd appreciate it. Included my email address on my prof.

~~~
kbenson
You might want to put an obfuscated version in your profile and edit it out of
this comment. I imagine email harvesters are happy to crawl HN, and you might
even get some more... _targeted_ emails.

~~~
takyons0
Updated...appreciate the tip!

------
alphaoide
Yes, for reasons everyone has said, and to collect those life experience
badges (going to college, college friends, etc). You wanna try a lot of things
once.

------
pedrorijo91
going for a CS degree will give you an overview of existing topics, meaning at
the time you finish you degree, you will know things, and you will know which
things you don't know. Without a degree, you will know things, but you won't
know what else is there

~~~
lolitan
great answer

------
avoidwork
both

~~~
lucidone
Seconding this. My degree comes in handy all the time conceptualizing software
and architecture problems into computer science problems, which are much less
murky to solve. My practical experience comes in handy all the time with the
day-to-day usage of libraries and frameworks, and "hands-on" skills ie
debugging, deploying, etc.

------
purplezooey
Do the first two at a comm. college.

