
Consider getting a “DIY” degree online instead of a traditional CS major - pashabitz
https://www.pashabitz.com/posts/undergrad-altenative/
======
kstrauser
I think the biggest disadvantage of a DIY degree is that there's no one
requiring you to take classes that don't interest you. Thing is, when I was
studying, I was grossly incorrect about 1) which classes I would come to
enjoy, and 2) which subjects I would actually use every day at work. There
were lots of things I studied only because someone was making me, but that I
found to be incredibly fascinating or useful once I had learned a little about
them.

That's the biggest thing I think someone would give up by not pursuing a
traditional degree.

~~~
ocdtrekkie
In my view, the two college topics everyone should take is Physics and
Constitutional Law (or equivalent in another country). Both will literally
radically change how you look at the world, and provide a foundational basis
for conversation in nearly any field.

~~~
p1esk
You can say the same thing about any single lower undergraduate subject.

~~~
AnimalMuppet
I took a class in Library Science. It didn't change my outlook on anything. It
only confirmed my belief in the wastefulness of certain general ed
requirements.

Economic history didn't do much for me, either. (Now, granted, that _could_ be
eye-opening, for at least some people, if taught well and with solid content.
But in my case, for that class... meh.)

~~~
agumonkey
should we (could we) compress higher education ?

I found a lot of redundancy by splitting things in modules. (uml, oop, sql
felt like 3 sides of the same hypercoin, granted the first 2 may disappear
from books soon).

algorithmics and mathematics (and other topics) may be merged into one ?

or maybe that would be pedagogically detrimental.. I feel that it would allow
more time to spend on a concept since you don't have to see bits scattered in
different courses.

~~~
tsimionescu
I'm not sure how oop and sql would be the same thing - they are famously
incompatible (object/relational impedance mismatch). UML is just a graphical
notation, I would agree it doesn't make sense as a separate course.

When you say algorithmics and mathematics, do you mean all of computer science
and all of maths? Do you think a single course should cover, say, Dijkstra's
algorithm and partial differential equations?

Usually, each course already covers a wide array of concepts. I can't think of
a single concept that was explored by different bits in different courses. The
closest I can think of are 2 courses I had, one of which was focused on
analytical solutions for linear algebra (matrices), and the other focused on
numerical solutions to the same problems. Even then, the split did make sense,
since they were focused on different concepts (mathematical objects, their
properties and how to work with them in the first case, computation and more
applied mathematics solutions for the second).

------
ogre_codes
It's easy to skip a lot of fundamental classes and classes which are less
interesting. Lots of people would skip "Boring" topics like data structures
and databases and focus primarily on just piling into learning Swift or Kotlin
to build apps on the platform of their choice.

Math is another biggie I think a lot of people would skip. While I'm not quite
sure everyone needs 3 semesters of calculus to be an effective programmer, I
think it is helpful to understand at least the basics of calculus and
trigonometry.

There are also a lot of aspects of formal schooling that help you prepare for
work/ life later on. If you see a degree on someone's resume, you know they've
done a least a little bit of collaborative work and building an app to someone
else's specs.

~~~
robbyking
I absolutely, 100% regret not studying computer science in college, or at
least learning CS fundamentals earlier in my career.

I spent years struggling to write quality code, and I couldn't figure out why:
I knew syntax inside and out, but still struggled with tasks my peers could do
while watching YouTube videos and chatting with their friends.

It's like I could spell but didn't know the first thing about grammar.

I eventually went back and took some classes online to fill in the gaps, but I
feel like I would be much further in my career had I just went ahead and done
it in the first place.

~~~
ogre_codes
> It's like I could spell but didn't know the first thing about grammar.

Love this analogy for programming...

It also reminds me that English and Public Speaking are very important skills
I picked up in college which are easily neglected in a DIY program.

~~~
ZephyrBlu
What English skills did you acquire at uni? My English has always been quite
good and I don't feel like formally studying English has helped me that much.

Perhaps I've just forgotten about how much I've actually learnt though.

~~~
freehunter
A lot of people are _not_ good at English, though. Especially public speaking.

~~~
ZephyrBlu
Yes, definitely. That's why I'm curious about the specifics of what they
learned rather than just "English".

------
pizza234
The author has a surprisingly naive vision of education, in spite of being a
hiring manager.

I've recently finished a well-known online course, with almost maximum grade,
and even if the quality of the course is good, there is definitely no
comparison with a real-world college course.

Due to the nature of online courses, grades are automated, and definitely
don't match the dynamics of a real-world course (eg. better solutions = better
grades). It's also practically impossible not to pass.

Cheating is also a factor. I joined purely for learning, but I don't doubt
that there is plenty of people taking shortcuts. I've witnessed somebody
blatantly cheating exams without even recognizing it was cheating, and against
the honor code.

Maybe, in a future where people must take the exams in qualified centers, with
the papers/projects reviewed by professors, the points above would change -
but the price would necessarily rise considerably.

Other aspects: as somebody wrote, top universitory teacher doesn't imply best
teacher; forums are polluted with garbage/trivial questions due to mass (free)
enrollment, causing valid questions to drown in the noise; face time,
community, college life, structure are all one big package, which I think it's
fundamental for the average young adult.

Finally, I'm very skeptical about the impressiveness of the DIY degree. I have
the suspicion that only a few "learning freaks" (I don't mean it in a
derogative way) would end up taking it - motivated people who decided not to
take a degree [in their past], within constraints of limited time, would
likely choose different, but still valid, learning routes.

All in all, I'm actually a big fan of MOOCs (loved the course I took), but
they shouldn't be compared to traditional education.

~~~
person_of_color
What course did you take?

~~~
pizza234
NAND2Tetris, Part I :-)

The difference I mention between real-world and MOOC is that in the former, [I
suppose that] the teacher(s) will give better grades to students who come up
with better chip designs.

I paid the course for financial support, and challenge, but it can be finished
identically without certification; as I wrote, specifically for this course,
grades are practically - but not theoretically - binary: the projects work, or
not.

------
legerdemain
Regarding the lack of a degree, the author writes "I believe it matters less
over time." This is a narrative I've been hearing for twenty years.

Can we point to any published stats about tech companies, in the US or
elsewhere, hiring a higher fraction of engineering candidates with less than a
bachelor's degree?

Similarly, can we point to any published stats illustrating the growing
ability of startup founders without an exclusive education background to get
funding? (No, "dropped out of Stanford to go work with Joe Lonsdale" doesn't
count.)

~~~
weego
CS degree demands are absolutely quite biased towards US company mentality. I
self taught at 18 and have never had anyone from a European company, some of
which would certainly be called globally known, mention my CV doesn't list any
education, ask about it in interviews or subsequently mention it during
employment, and i know a fair few people at those jobs had similar stories.

To be fair I'd note a number of people I got to know did have degrees in other
STEM fields.

My only run in with a similar issue was not being suitable to be presented as
CTO for one company because it was STEM related and everyone else has PHDs.

~~~
yardie
In my experience it has been the opposite. US companies are quite liberal
about education requirements: lots of experience + no degree, some experience
+ unrelated degree, STEM degree, or CS degree. My experience (French and
German companies), you either have the degree that matches the position or you
have an overwhelming amount of experience they can't ignore you. I was turned
down many times over not having a CS degree from top US university (majority
of Americans go to local state colleges).

~~~
skinnymuch
Majority of Americans don’t have a degree. Though yeah of the subset that do
have degrees, most aren’t going to top ranked schools like you said.

~~~
yardie
A lot of it comes down to familiarity. Most French companies know of Ivies,
Stanford, and MIT. Most Americans couldn’t tell you of a French university
beyond La Sorbonne (Paris IV).

In my time there I learned a lot about the difference between university and
grand écoles.

------
wiz21c
Unless you want to work in internet facing stuff, there are many places where
IT is part of another domain. For example, bioinforamtics, simulation,
finance, etc. Many of those requires computer science + a good understanding
of maths (calculus is useful in many geo stuff, discrete maths is useful in
many computing tasks, entropy is useful to understand where you are when you
compress data, etc). So, many of the maths courses that usually go with a
computer science degree are helpful. Unfortuntaly, understanding maths by
oneself is not easy and online courses quality greatly vary (I've tried to
understand expectation-maximization algorithm using various online courses and
it's not easy : sure, you'll get the big picture, you'll understand how to
apply the algorithm, etc. but if you want to understand _why_ (not how) the
algorithm actually works, then that's another story, maths are necessary and
the way they're explained is very different from courses to courses, and with
different level of quality.)

It also helps to not reinvent the wheel : many problems were analytically
solved long before most of us were born.

~~~
throwawaygh
Indeed.

My advice for a career in computing is "either become world expert in some
durable technology with a high barrier to entry, or else find a secondary
specialty" (math, finance/econ, natural sciences, an engineering discipline,
pre-law are all good choices).

My advice for a career doing generic undifferentiated software development is
"don't", or at least "move into management during your 30s".

~~~
waldohatesyou
As someone who more or less did a generic CS degree in their undergrad, how
would I go about correcting for the lack of a secondary specialty? Would I
have to get a masters later on? Focus on taking jobs at companies in specific
domains?

~~~
joshvm
Most job requirements specify a suitable undergrad degree _or_ equivalent work
experience. At some point what degree you have doesn't make any difference any
more. It's what experience you have, be it through research or on-the-job.

So either route is open to you. Do you have something particular in mind?

~~~
waldohatesyou
I see. At the moment, I'm not super sure hence why I'm hesitant to say that
I'm going full throttle on anything but in terms of domains I'm interested in
exploring further:

1) "Civic tech" which I hesitate to define since it's so nebulous that I
imagine my definition differs from that of other folks but the way I think
about it is that it either involves government modernization (a la the
Canadian Digital Service), companies that provide services to the government
(a quick Google search brings up [https://home.promise-
pay.com/](https://home.promise-pay.com/) as an example), or companies that
help communities/cities function better (this one is probably the most
controversial criteria but when I include it I'm thinking of Sidewalk Labs). I
suppose the secondary "specialty" would have to do with public policy but from
perusing the careers pages, it seems that in general experience is all they're
ultimately interested in (at least for the software engineer positions I would
be gunning for) but I would suspect some domain knowledge is what they would
prefer in addition to that. So far, I've just been exploring this domain via
involvement with open-source projects within this space.

2) Cybersecurity: I'm not sure if this qualifies as a secondary domain since
it's still very "computer sciencey" and is quite broad in and of itself but I
suspect that it's a much wider space than civic tech which is why I find
myself torn between which one is worthy of further exploration. Within this
space, I would probably be either be interested in application security
positions
([https://www.facebook.com/careers/jobs/123558231663498/](https://www.facebook.com/careers/jobs/123558231663498/)
as an example) or "secure software development" positions which I understand
are positions that involve building software that operates in the context of
improving the security posture of a company (ex. software that conducts static
analysis of source code to find potential vulnerabilities). To determine
whether I am interested in this domain, I've just been going through
application security resources (currently, the Crypto 1 course from Stanford
but I'll be following that up with other resources from
[https://github.com/paragonie/awesome-
appsec](https://github.com/paragonie/awesome-appsec)). With regard to next
steps after that, I've been thinking of [https://www.edx.org/masters/online-
master-science-cybersecur...](https://www.edx.org/masters/online-master-
science-cybersecurity-georgia-tech) but I'm a bit conflicted given that I've
received conflicting opinions on the usefulness of a masters within the field
of cybersecurity.

TL;DR: "Civic tech" and cybersecurity are the 2 I'm considering. I'm unsure
which domain is worthy of my entire attention but I've been immersing myself
in each to a varying degree via related activities.

~~~
joshvm
You can look at our equivalent, the UK Government Digital Service which hires
a lot of tech people. You could probably learn the relevant stuff on the job.

Cybersec I have zero qualifications in, but it seems also like a lot of
practical jobs (e.g. pen testing, white-hat stuff) are also more experience
focused. Presumably it does help to have some background on the theory, which
you might get asked in interviews. But presumably there's a large spectrum of
work here, from very theoretical audit/provably secure-type stuff, to more
practical work where you try and identify obvious holes in software.

~~~
waldohatesyou
With regard to the GDS:Is the GDS available to Canadian citizens? I know that
we're classified as Commonwealth citizens but I saw that Commonwealth citizens
only have access to non-reserved posts and I'm not sure if the GDS is reserved
or not.

With regard to cybersec:Yeah, that's more or less in line with other folks
have said to me. I think with this I'll just keep reading books until I get a
sense of what my niche is.

Thanks for your advice!

------
lucasgonze
As a hiring manager, I can tell you that degree standards are going up and up.
When I was starting as a dev a quantitative degree was totally optional -
fortunately for me. Now it's common to have an MA/CS, somewhat likely a BS/CS,
and the absolute least a BS in any quantitative field.

In fact I recently hired a dev with an associate's degree after interviewing
many people with much better educations, but his chances on getting the job
were very small. My inbox was flooded with resumes and filtering out weak
educations was an efficient use of time.

Seriously, you will have a much much harder time making a living with a DIY
degree.

~~~
morgtheborg
Huh. I'm surprised to hear this. I have a liberal arts degree, and I had zero
issue getting a job after going through a bootcamp 6 years ago. My brother-in-
law did the same 3 years ago. My husband last year. He literally doesn't even
have a degree...

~~~
lucasgonze
There are oceans of people with those same bootcamp credentials. For hiring
managers willing to hire bootcampers, but you are just one drop in that ocean.

Over time you will have a harder time finding work, you'll get lower salary
offers, and you'll be passed over promotion.

If that's the credential you have, it'll have to do. But if you're choosing
whether to pursue a full-blown degree, the answer is clear. Yes, absolutely,
yes.

------
parsimo2010
They glossed over some really big considerations. First, you have to be really
self motivated to accomplish this. I don’t know too many 18 year olds that
would push themselves enough to get as much out of a purely online program as
compared to an in person program. Second, a DIY degree is not a “real” degree
and will be looked down upon by many employers. That’s not to say that you
won’t learn as much in a DIY program (if you are self motivated), but you’re
going to restrict your job prospects.

I do agree with the idea that you might as well try it now. I wouldn’t
recommend someone pay full tuition for an online class that was created in a
hurry by a professor that didn’t want to do an online class. But you have to
be prepared for the idea that you won’t like a DIY degree and will end up
starting a regular degree next year. If you’re smart about it, you’ll make
sure the classes you take note can transfer the credits- these types of
courses are more expensive (hurting some of the DIY value proposition) but
it’s a good insurance policy against having to start at square one next year.

------
lhorie
Another disadvantage you should consider if you're international wanting to
work in the US is that it's hard to qualify for the H1-B visa if you don't
have a degree. The alternative to a degree requires work experience, but the
equivalence is to the tune of 3 years of work experience for each year of CS
education.

~~~
uniclaude
This.

A lot of countries have immigration policies that still require degrees for
visas. Given how global the world is becoming, it's important to have the
option to be geographically flexible.

------
omarhaneef
I agree with almost all the comments here. The standardized curriculum (or, as
some people put it, making you take even the classes you think you won't
enjoy), and the coaching (having someone hold you accountable to deliver) is a
key aspect of schools.

I will add that so is the job pipeline. I think having companies come, sign up
dozens of students and recruit wholesale completely changes your odds of
ending up at one of the top companies (for whatever your definition of top is:
whether you want to write algos at a hedge fund, perform tech diligence for a
consulting firm, work at the big tech companies, etc)

------
rybosworld
I have a hard time buying into this idea. I do agree that traditional college
is prohibitively expensive. But it's also a requirement of most companies that
you have a degree. That's because it's hard to prove to an employer that you
have the skill set they need and a diploma is good proxy.

~~~
isochronous
I'd argue that this is less true for the specific field in question (computer
science). Most companies looking to hire a developer aren't looking for a
jack-of-all-trades hacker, they're looking for someone with a specific
skillset, and in my experience it's not very hard for one good developer to
recognize another good developer, especially with the way most CS interviews
are conducted: problem solving, whiteboarding code, mock design sessions, etc.
If you're a developer and you can't satisfy yourself that another developer
being interviewed has the skills you need, you need to work on your interview
questions.

That being said, it's almost certainly easier to land an interview in the
first place with a good degree. I'm in Atlanta, and every company I've worked
for here has almost automatically granted an interview to anyone with a degree
from Georgia Tech.

------
amrrs
Many Indian companies (basically US companies with Indian Dev Centers) are
still hell-bent on Degrees. I personally know people who have either not taken
into consideration because they don't have a Masters (Data Scientist role) /
Bachelors (Web Dev role) or their Salary was negotiated below Market-salary
due to this fact.

These things are definitely good for knowledge but for employment (Local or
International) - Degree - that too from a _prestigious Institute_ (as most Job
requirements mention) is very much required!

~~~
908B64B197
From what I've been told the quality of education varies enormously from
institutions to institutions in India. [0][1].

I suspect the diploma is used as a filter for the large amount of applications
companies receive.

[0] [https://restofworld.org/2020/india-engineering-
degree/](https://restofworld.org/2020/india-engineering-degree/)

[1] [https://economictimes.indiatimes.com/jobs/only-6-of-those-
pa...](https://economictimes.indiatimes.com/jobs/only-6-of-those-passing-out-
of-indias-engineering-colleges-are-fit-for-a-job/articleshow/64446292.cms)

------
ModernMech
Better teaching is dubious to me. First, it’s not a given that instructors
from Harvard or Stanford are necessarily better teachers. They are hired and
promoted in large part due to their research agenda and history of funding
projects with large grants. You can be the worst teacher ever, but if you are
pulling in millions in grant funding (of which the University gets a
significant percentage) then you are likely to get tenure at many top academic
institutions.

But let’s just say the best lecturers really are at these places and you can
watch their lectures via a MOOC. Remember the M stands for “Massive”. How much
time do you think the average student gets to spend 1:1 with the instructor?
The best students that graduate from from my department are those who seek me
individually for 1:1 help, who put in extra effort over summers and the
semester to join my or other research projects, and who stand out by becoming
involved with department activities. They tend to get glowing recommendations,
and connections to startups and industry partners with which t he faculty
member has contacts.

There are a number of projects being worked on in my department with inroads
to Facebook, Microsoft, Google, etc. When I pass a recommendation over for a
student I know well, they get seriously considered. Is there an equivalent
benefit for a MOOC?

~~~
haditab
I don't think anyone is arguing that taking MOOCs and taking classes in person
are exactly equivalent. I think the argument is that you may be able to get
what you wanted by taking the correct online classes and not attending college
(which is incredibly expensive).

From my personal experience in academia, both as a student and as a lecturer I
honestly think most students don't really benefit from being present in
person.

Also, about the inroads to places like FAANG, almost all of those companies
require you to go through the entire interview process even if someone
recommends you and landing interviews isn't that hard. I actually know plenty
of people who self-studied their way into those companies without degrees.

If you do manage to stick to the program and go through everything on your own
(which requires an incredible amouunt of discipline) in my opinion the biggest
issue you would face right now is bias and stigma.

------
908B64B197
Maybe DIY degrees using MOOC make sense to replace "amphitheater style"
universities but I really don't see how it could be any better than the
education at most serious institutions.

Courses in sciences are often split between lectures, that might be
"amphitheater style" for introductory courses (think 8.01 or most introduction
to programming), lab work and recitations that are typically done in much
smaller groups with a T.A to work on problem sets. MOOCs have no obvious
alternative to the last two. In my experience it's relatively easy to work
through a course by skipping lectures and reading from the textbook than to
skip recitations and lab work.

That and group projects, that are often a requirement to graduate, makes MOOC-
only a tough sell for me.

~~~
ghaff
Lectures in big rooms can be trivially replaced. And, arguably, are improved
upon by even a relatively modest digital effort. You get time shifting,
acoustics and video can be better, you can rewind, and you can get the best
lecturer to do it. 8.01 or 18.01 or 6.001 (Intro to
physics/calculus/algorithms) doesn't really change YoY.

You could do that on VHS tape if you wanted to.

The hard part is problem sets, recitations, grading, peers, etc. And MOOCs do
very little there. Automated grading is _better_ with programming than it is
wirth other things. But it's still just looking at the result.

~~~
908B64B197
There's always MOSS to spot suspicious entries. [0]

[0]
[https://theory.stanford.edu/~aiken/moss/](https://theory.stanford.edu/~aiken/moss/)

~~~
ghaff
I'm not even really worried about cheating in this context (although that
matters when you get to certification--a lot). I'm thinking more of: It gets
the right result but it does so in a really crappy way. (And, yes, in some
circumstances you can measure CPU time but you still mostly in RIGHT/WRONG
grading.)

~~~
908B64B197
It's an other reason I wouldn't trust a fully DIY degree.

------
austincheney
I disagree with the article. Universities already offer DIY degrees. They are
called _General Studies_ or _Liberal Arts_ degrees. They offer, in my opinion,
a much better education than a CS degree.

CS should be a trade school because programming is an unlicensed skill like
carpentry or plumbing opposed to a licensed profession like medicine, law,
engineering, or even truck driving. You can teach yourself programming and be
just as employable as somebody with a CS degree, so why not get a real
education while also teaching yourself the necessary technical skills. Why
spend that kind money on something you can teach yourself? I don’t have a CS
degree and it hasn’t prevented me from getting any job or from being a senior
developer.

------
f00zz
I think you can go a long way towards grokking data structures and algorithms
by solving problems on competitive programming sites. I don't have a CS
degree, but some time ago I became somewhat addicted to SPOJ (an "online
judge" with problems taken from ICPC and the like) and solved hundreds of
problems, filling the many gaps in my knowledge with lecture notes from .edu
sites.

Definitely made me a better programmer (even though I've never actually used
stuff like dynamic programming in the "real world").

------
hackermailman
YMMV, but if you find a real university course and not a mooc that does not
have public solutions, and you complete it, if you email the instructor they
may give you a sort-of letter of competency, if you approach them straight and
show them you have completed all the work, and tell them why you need need
their recommendation. I hesitate to write this from frauds spamming professors
demanding letters but somewhere is somebody who was me 10 years ago who had no
legitimate work history, no university class credits but put in the work, and
might need this advice. It has to be an esoteric theory subject that does not
have easy to find answers, in my case it was the experimental dbms that a well
known professor was designing that I had contributed to with PRs. He provided
this recommendation and it was responsible for where I am today. Just saying
if you really are a self-learner, and not some fraud doing bare minimum effort
and just wanting money, specifically you are actually interested in the
content of these kinds of courses and solving the hard problems in this field,
you can indeed become successful teaching yourself ... to a point of course,
you need to work somewhere and learn from people who have been to school but
getting your way in, it is possible.

------
etothepii
Sadly the certificates matter.

After 3 years I've finally convinced my employer to drop the "bachelors
degree" requirement from all our job ads but I can't see it making any
difference. The way people are hired is totally broken and being able to flash
your credentials hugely increases the salaries of most people.

If you don't agree look up how much actuaries get paid. The maths isn't all
that hard and 5/7 of the exams to qualify as an associate are just maths and
stats.

~~~
908B64B197
Would you care to elaborate on how hiring is still broken?

Has anything actually changes with the pool of candidates and hires the
company is making?

~~~
etothepii
Very few of the metrics that are assessed during interviews are quantified
(making bias correction very hard).

It's highly unusual (except maybe at Google) to compare how well someone is
doing in a job to how well they were thought they would do that job.

The idiosyncratic nuances of most jobs is hugely underestimated (in the sense
that the more specific the prior experience the more it should be discounted).

My suspicion is that we'd all do a lot better if we took all the candidates
that applied that we thought "would do" and then drew lots.

We'd probably do even better if we agreed "no fault" severance packages in
advance that could be triggered by either party.

------
Pete-Codes
You'd be in good company. Honestly for lots of people especially those who
want a career change and aren't 18, going back to college for four years and
the debt that goes along with it doesn't make a while lot of sense.

Heck, even if you are 18 you could learn to code in a year or two and then be
earning good money by the time you are 20.

I've published over 90 success stories of devs without CS degrees over at
www.nocsdegree.com if you wanna take a look

------
rikroots
I don't know what degree courses are like elsewhere in the world, but in the
UK they tend to be single-subject (eg "Applied Biology") studied over 3 years.
Depth, in the UK, is more important than breadth - a view I strongly disagree
with.

Luckily, I failed my A levels so was spared the trauma of studying
Biochemistry for 3 years. I finally got my degree with the Open University -
an 'Open' degree[1] which allowed me to pick and choose my education from a
wide variety of subjects[2]. The OU have been practicing distance learning
since they started in 1969[3] - I have fond memories of watching their
broadcasts on BBC2 when all the other channels were closed down for the night.

[1] - What is an open degree - [http://www.open.ac.uk/courses/combined-
studies/degrees/open-...](http://www.open.ac.uk/courses/combined-
studies/degrees/open-degree-qd)

[2] - In the end I settled for equal measures of computer science and creative
writing - perfect for writing job specs.

[3] - Wikipedia -
[https://en.wikipedia.org/wiki/Open_University](https://en.wikipedia.org/wiki/Open_University)

------
bruceb
This is what we attempted with
[http://www.coursebuffet.com/degree](http://www.coursebuffet.com/degree)

It is somewhat on hiatus right now. Goal was first eliminate most of the
searching. Here is a path laid out, with a some choices but still don't have
to think how to replicate a degree, its done for you.

It needs major update, sorry for broken links.

------
baron816
Some time ago, I looked at my alma mater’s course list to complete a CS major
(I was an Econ major) since I was curious to see how useful those classes
might have been to me now as a SWE. Not very much, IMO.

If I were to mentor someone entering college right now (or lets say in 2 years
when the pandemic is over), and they _knew_ they wanted to become a software
engineer, I’d recommend only taking maybe 5 CS courses at most, and taking a
number of courses on art/design, psychology, statistics/data analysis,
creative writing, anthropology, and communications.

They may later decide they want to be in a leadership position, so having a
background that would allow them to be able to talk to product leaders,
designers, marketers, etc. would be valuable.

------
jmchuster
If cost isn't as much of a motivator, and you just want the fastest way to get
into the industry, I would recommend a brand name coding bootcamp instead. The
time span is much shorter, many companies already have a sense of your
expected skillset, your salary hit on your first job is often not that much
(maybe nothing) and should be gone by your second job.

Getting a brand name CS degree definitely has its advantages, allowing you
easier access to even higher-paying engineering jobs, and can really help
build the foundation for you to become a much better engineer. But it's really
just a better starting point (assuming financial aid), and your path from
there is much more dependent on how you invest in your own career.

~~~
swyx
what exactly is a "brand name coding bootcamp"? i dont have a particularly
high opinion of General Assembly and its one of th ebiggest.

~~~
jmchuster
Hack Reactor, App Academy.

------
jeffreyrogers
Don't do this. The value of a degree is largely in what it signals, and you
have no signal if you don't have the degree. I know some very smart people
without degrees. I also know a lot more losers who didn't have the discipline
to finish school because it bored them or just weren't smart enough to finish.
And when someone only knows that you don't have a degree and knows very little
else about you, they are going to automatically place you in this latter
category.

------
mcguire
Tech career tips for the 21st Century:

* Skip the degree. It's expensive and you'll never recoup the cost.

* Choose a sub-field carefully.

1\. Avoid dead-end niches. An expert in the Linux kernel or Rust compiler is
just that; there's nowhere to go from there.

2\. The same goes for embedded systems and the like. Nobody cares if someone
knows everything there is to know about car engine management systems.

3\. Check the job openings. Some things are hotter than others.

4\. But don't count them too much. Five or ten years ago, being able to spell
"Hadoop" or "TensorFlow" meant that everything that came out of your pie-hole
was gospel. Now, not so much. Look for things that are hot, but relatively
unknown.

5\. Bonus: UI/UX is a dandy choice; everyone needs them and the framework
developers have gotten the formula down: change things often and deprecate
fast.

* Remember, it's a career, not a job.

1\. Always be hunting the next job.

2\. Never stay at one place too long. If you can't change projects every 6-8
months, make sure you change jobs every 12-18 months.

* Network, network, network. No, not that HTTPS/BGP/OSPF crap. See point A1. Remember, who you know trumps what you know every time.

~~~
sinsterizme
Wow I think I disagree with all your points. Whatever works for you I guess
but this is definitely not genetically the advice

~~~
mcguire
From me, it's sarcastic. I've done pretty well doing the exact opposite of
each of those points.

On the other hand, that's a collection of suggestions I've seen often here on
HN.

------
ipnon
If you study and make 1 project for each subject of
[https://teachyourselfcs.com/](https://teachyourselfcs.com/) you can go toe to
toe with any Stanford or MIT computer science undergraduate. You will have
spent an order of magnitude less and will have an order of magnitude more
experience. But you won't be able to slack or coast through, and you will
mostly still be excluded from elite institutions just as you were before you
began.

If your only interest is studying computer science, even at the expense of all
the privileges university education incidentally provides, then I don't see
any downsides.

~~~
throwawaygh
_> If you study and make 1 project for each subject of
[https://teachyourselfcs.com/](https://teachyourselfcs.com/) you can go toe to
toe with any Stanford or MIT computer science undergraduate._

That better be a hell of a sequence of projects.

------
reportgunner
I don't get the point of calling it a "degree" if one of the cons is "you
don't get a degree".

How is it different from just "learning online" ?

------
paulie_a
I've helped hire people and I might be in the minority but after you worked in
the industry for a few years, your degree is meaningless.

~~~
tarentel
Agreed, I removed where I went to college on my resume a few years ago to make
room for actual work stuff, no one has even asked me if I went to college. I
also review resumes and unless it's a junior position I don't even really pay
attention to where they went to school.

------
readme
As someone who's very gainfully employed with no degree, but went back to
school anyway, here is my perspective:

If you're really good hacker you'll find a lucrative job, as long as you have
the basic soft skills to work with people, even without a degree. If you're
just an average coder you're not going to get a job that pays well without
one, and if you do get a job it will not pay as well, and you will be the
first on the chopping block.

I have managed to secure some pretty lucrative and rewarding jobs, but I went
back to school at a brick and mortar anyway, because I want the education and
I want to do academic research. I'm currently working full time while I attend
part time and also do research, so it's working out.

For the DIY degree: I can promise you that even if you do enroll at a 4-year,
you're going to end up doing this DIY degree in your spare time. You're gonna
sign up for courses that make you facepalm and wish you were just reading
Ed-X. I studied for a lot of my classes by watching the OCW lectures on the
same material.

Now, with school going online, you're also gonna find some schools don't have
high quality lectures on video. Some professors are passionate and do... one
of mine has a fully loaded youtube channel. Others don't even get the basic
mechanics right, and you can't hear them during the videos because they don't
have a good microphone.

The difference is the 4-year gives you connections to research, academia, and
industry, as long as you do it right. You show up and talk to the professors
after class and during office hours, be a good student, and ask good
questions. You can even do this with online courses: go to the office hours on
zoom. You can't do that with MOOCs as well, the professor probably isn't going
to have that much time for you (it is called massive for a reason.)

If you are the rare person who actually does what I'll call "homeschool
college" and finish an entire degree worth of MOOCs, more power to you. If you
have the gall to put it on your resume, you already know you're eccentric. If
the stars align and some weirdo hires you for it, congratulations, you won.
You are in the statistically improbable category and for the amount of time
you're going to spend on this DIY journey, you could have popped by the local
university and met a lot of interesting people while you did this.

IMHO, you are best off if you do all of the following (any order is fine)

* become a really good programmer who can build incredible things and make awesome contributions on teams, writing great docs, help and lead others

* get a 4 year degree and do it right: don't go there to check a box or go to a diploma mill, meet the professors and network, find something you are truly interested in

* never stop learning, reading, working on projects, or perusing MOOCs etc

There shouldn't be a significant obstacle to doing all 3 in my experience. I
started in a a really deep rut and if you manage to bang out 1/3 the other 2
start to become easier. For example, you can find yourself in a career that
pays for school, or a school that helps you find a career. The possibilities
are endless.

~~~
ZephyrBlu
> get a 4 year degree and do it right: don't go there to check a box or go to
> a diploma mill, meet the professors and network, find something you are
> truly interested in

The academic environment of university is extremely bland and uninteresting to
me.

Especially the way you're tested. It doesn't promote understanding, it
promotes memorization.

~~~
readme
Going through the boring stuff was worth it to me to get into research. The
stars can align and you might meet a professor with interests that are exactly
the same as yours. I'm really fortunate to have that, and I never expected it
to happen. I thought I was going to have to suck it up and learn to love
something.

What you're describing with being tested and memorization sounds mostly like
the first 2 years of college to me. What lies at the end of the road is
literally the total sum of human knowledge and the advancement of it. I think
2 years of drudgery is a small price to pay for that.

~~~
ZephyrBlu
Funnily enough, I lasted 2 years before deciding it was a waste of my time.

What do the final 2 years contain that makes up for the first 2?

------
bollu
So I actually went ahead and decided to build "curriculum" that I would be
happy to study, instead of trying to take potshots at the idea. For reference,
I'm a to-graduate-undergrad who's studied a pretty theory CS-heavy course
curriculum. I work [in terms of research] in compilers, formal verification,
and dabble with some NLP on the side. I personally find knowing pure math,
theory CS, and algorithms/data structures (the ones that are derided often
here on HN as "leetcode") to be an _insane_ force multiplier.

If I had to recommend online courses, here are the ones I would recommend.
Unfortunately, one does not get access to exercises and folks who are willing
to verify your work. Math.stackexchange is unfortunately far more active than
cstheory.stackexchange. I don't really know of an effective way to "bootstrap"
this, except for implementing a lot of the things that show up in computer
science.

I'm collecting links of courses that have videos, lecture notes, and
exercises, which I would be happy to learn from [or have learnt from in the
past].

 _Theory courses that are must-know:_

\- Linear algebra: [https://ocw.mit.edu/courses/mathematics/18-06-linear-
algebra...](https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-
spring-2010/)

\- Basic Combinatorics:
[https://www.coursera.org/learn/combinatorics#syllabus](https://www.coursera.org/learn/combinatorics#syllabus)

\- Introduction to Algorithms by Erik Demaine:
[http://courses.csail.mit.edu/6.006/fall11/](http://courses.csail.mit.edu/6.006/fall11/)

\- OR, Introduction to Algorithms by Robert Sedgewick:
[https://www.extension.harvard.edu/open-learning-
initiative/a...](https://www.extension.harvard.edu/open-learning-
initiative/abstract-algebra)

\- Complexity theory/theory of computation:
[https://web.cs.ucdavis.edu/~rogaway/classes/120/spring14/](https://web.cs.ucdavis.edu/~rogaway/classes/120/spring14/)

\- Structure and interpretation of computer programs:
[https://ocw.mit.edu/courses/electrical-engineering-and-
compu...](https://ocw.mit.edu/courses/electrical-engineering-and-computer-
science/6-001-structure-and-interpretation-of-computer-programs-
spring-2005/video-lectures/)

 _Computer engineering courses that are must-know_ : I do not immediate know
of good online courses, so I list the topics below

\- Operating systems:

\- Networks

\- Computer graphics [Is a great applied course to see linear algebra in
action]

\- Distributed systems

\- Compilers

\- """Machine learning""": Scarce quotes since there's a divide between old-
school machine learning and newfangled deep learning. Is useful to know ideas
from both.

 _Advanced good-to-haves:_

\- Advanced Data structures:
[http://courses.csail.mit.edu/6.851/fall17/](http://courses.csail.mit.edu/6.851/fall17/)

\- Graph theory:
[https://www.coursera.org/learn/graphs#syllabus](https://www.coursera.org/learn/graphs#syllabus)

\- Abstract Algebra: [https://www.extension.harvard.edu/open-learning-
initiative/a...](https://www.extension.harvard.edu/open-learning-
initiative/abstract-algebra)

\- Nand2Tetris, where one builds a computer "from scratch":
[https://www.nand2tetris.org/software](https://www.nand2tetris.org/software)

\- As much math, physics, and computer science as can be learnt!

~~~
emmelaich
Is Linear Algebra that useful to the typical working programmer? Or is it
perhaps only particularly useful for machine learning and similar?

To me, combinatorics, probability and statistics are much more used day to
day.

------
Ologn
With Covid prevalent in the United States, I don't know what the situation
would be for students looking to take the fall 2020 semester.

In college, we were told to spend at least three hours studying for every hour
in the class. So I am not sure what people mean when they talk about "DIY
degree". Over 75% of a standard BSCS degree is already "DIY". What we get in
the other 25% is lectures, office hours, discussions with the professor before
and after class, discussions with other classmates, access to a library with
many volumes on math and computer science, access to computer labs. Also
verification that someone had learned these things. We can look at their GPA
and transcript as a loose indicator.

I have worked with programmers who went to boot camps, did "DIY degrees" etc.
None of them would be able to tell me what a pushdown automata was, or how to
deal with critical sections, or had ever written programs in Lisp, or could
derive 8x, and so forth. I am sure there are a few out there who could, and
there are certainly a number of people who somehow got a BSCS and who don't
know these things. Nonetheless, people without a degree usually don't learn
about the pumping lemma, or

> you’ll end up with a very impressive “DIY degree”. As a hiring manager, if I
> saw this on a resume (I haven’t yet) - I would be very impressed.

Well, with the US unemployment rate, this is a great time to test this
hypothesis. From personal knowledge, only one of the college graduates in IT I
worked with is unemployed (he has a specialized role, does not live in a major
tech hub, and his job search has locally been in his local area), several of
the boot camp grads I worked with are not working in IT at the moment. In
times like these, when you're sending your resume in to the position alongside
one or two dozen people who have a degree, it is better to have a degree.

------
peterwwillis
> No college life: you will be missing on the college experience. This one is
> a big one.

This is the biggest one.

After dropping out of high school, I never attended another school. The amount
of socialization and long-lasting human connections that I missed out on is
incalculable. Not to mention exposure to different subject matter. Macintosh
had great fonts because Jobs took a calligraphy course on a whim. You might
discover a hidden passion for entomological forensics. You might join a friend
for a gap year trip, meet an amazing person, get married, move to Spain, get
divorced 3 years later, become an accountant. Or experience the rush of unity
and purpose from joining your classmates at a protest march. Or attend your
dorm mate's band in some dinky basement and fall in love with beatboxing to
electro swing. Screw education; go to college to wade hip deep into new
experiences.

$40K to be totally immersed in innumerabile possibilities that will effect the
next 80 years of your life? Compared to ~$15K for an economy car, or ~$250K
for a house? Sounds worth it to me.

...that said, if you have economic hardships, self-study is _completely_
feasible, and you can have a great career with no degree. It will still take
you years to really get going, but it can work.

------
blackrock
I don’t understand the requirement for college degrees for most jobs.

Regardless of your major, a college education will now cost over $100,000.
That is at least $25,000 per year.

Unless you get grants, scholarships, or some financial aid, then the brunt of
this is going to be paid in loans. Loans that cannot be discharged in
bankruptcy.

Now, do you want a 19 year old to be making a life decision to go into such a
heavy debt burden, of which they cannot escape?

Some low level business jobs earns less than $50,000, but yet, these jobs
still require some college degree. Simply because the company is lazy, and
wants the best worker they can get, without having to actually pay for it.

The low earnings, the tax rate, and the cost of living to pay for an apartment
to live near that job, makes the numbers illogical.

I think America, and the world, would be better served, if we went towards
some kinds of journeyman and tradecraft system instead. Businesses can instead
hire people with a minimum of a high school education, and train them for the
jobs. Those businesses can apply for some kind of federal or state assistance
if they need to, to get credit for doing this.

~~~
mesa8
Loans can be at least partially discharged in bankruptcy, so that is
incorrect. They are more stringent, but with the current public perception of
college loans, judges are more likely to agree that the conditions this must
meet are true.

Secondly, college is free for a lot of people, as in some states anyone making
less than $20k/yr goes to a state university for free. This isn't incredibly
obvious, and some grants received may be relatively unknown, such as a grant
from a college that's not on their website of $7k a year for low-income
students.

You also can't generalize everyone's feelings. Some people aren't compatible
with trades.

~~~
non-entity
I would be so much more supportive of the recent trades push if it wasnt
riddled with misinformation.

Saw a guy I knew in school post a pic where there were two people. On the left
was a person who was clearly supposed to represent some sort of business man,
perhaps and executive. The image claimed this man made made $120k per years
and had $100k in student debt. On the right was a linemen. The image claimed
there made $130k a year with 0 debt.

The average salary for a lineman? Decent, but definitely nowhere near $130k.
Both BLS and Glassdoor have it around $65k. There seems to be some myth going
around that certain trades are an instant path ot size figures. Sure, after
many many years of experience, in a specialized trade and/or in an expensive
state with strong union protections you can maybe make six figures, but most
trade apprenticeships I've seen dont pay much better than entry level office
admin jobs I see.

