
A Self-Learning, Modern Computer Science Curriculum - hacknrk
https://functionalcs.github.io/curriculum/
======
chrxr
For those like me, and like many in the UK, whose maths education ended at 16,
I can definitely recommend Khan Academy for learning or relearning pre-calc
stuff. The videos are short, the exercises are well thought out and numerous,
and importantly the UI is great.

For example:
[https://www.khanacademy.org/math/algebra/](https://www.khanacademy.org/math/algebra/)

~~~
alexgmcm
It's good for calculus too - I remember watching his videos on calculus before
I went to uni 10 years ago so they may have improved even more now.

~~~
chrxr
I remember looking at the site a few (maybe five?) years ago and everything
was a bit of a mess. They've really pulled it together since then. It's really
great.

------
jbenn
Phew, that's an overwhelming list. A less exhaustive alternative that I
recommend is [https://teachyourselfcs.com](https://teachyourselfcs.com). It's
tailored to those who never studied CS in undergrad, like myself.

~~~
ModernMech
I wouldn't say this list is exhaustive, more like a good start. It's missing
some of the breadth that you are likely to find in a good CS program. I'm not
seeing much in the way of OS, networking, undergraduate machine learning,
robotics, software engineering, or mobile application development. Adding the
above topics would make this list more comprehensive.

~~~
bobbyT314
Agreed! Also missing HCI, Systems Analysis... But a good start, nonetheless.

------
lnsp
I don't really see Abstract Algebra as a super relevant topic for modern
computer science. I agree on Linear Algebra and basic abstract algebra (like
group theory, cyclic groups etc, stuff needed for understanding topics like
RSA), but stuff like Galois theory and other advanced topics are just not
relevant. They still teach you a different way to think about problems (which
is good) but rather belong into a math curriculum than a CS one.

~~~
madhadron
I've gotten a lot of use out of group theory and lattice theory, and
particularly semigroups and semilattices. What most programmers don't realize
is that design patterns (a la Gang of Four), when they aren't working around a
language's quirks, are implementing some algebra.

~~~
hikarudo
Could you give us some pointers on where to learn more about this connection
between design patterns and abstract algebra?

~~~
madhadron
You know, I don't have any. It's something that I've thought about writing
about for years now, but haven't gotten around to doing, and I'm unaware of
anything else written about it.

------
robbrit
OSSU has a good curriculum based on free MOOCs:
[https://github.com/ossu/computer-science](https://github.com/ossu/computer-
science)

Required courses in the curriculum require MOOCs, but they include a lot of
the same book resources as further reading topics. The community is quite
active and has been happy to answer questions in chat.

------
platz
"Intro to quantum computing"

Really?

otherwise This is heavy on maths for data science and machine learning..

It doesn't have any of the "software engineering" courses though.

------
itsmemattchung
For a couple years, I went the self study route, using online resources
coupled with text books. Eventually though, I ended up taking a few distant
learning courses and found the accountability (i.e. deadlines, homework
assignments, exams) helpful, keeping motivated. And now, I'm taking the online
CS master's program from Georgia Tech, the OMSCS program. I'm actually only in
my first semester and loving it!

Still, I appreciate and love all the online material (that's free!) but I tend
to operate better when I can 1) Collaborate with other students (and
professors) 2) Have deadlines

~~~
WrtCdEvrydy
You can get pretty far online only, but the networking opportunities even in a
non-top school are worth every penny.

It's interesting finding a new job only to have existing classmates be excited
for you to be there. Rumors begin spreading that you get shit done even
quicker.

------
40acres
I've had this site bookmarked for at least a year and have really enjoyed
watching the curriculum grow. Now only if I could start on it...

~~~
drivers99
> if I could start on it

A suggestion for getting yourself to spend time on large projects:
[http://tynan.com/ornothing](http://tynan.com/ornothing) "Do it or nothing"

------
ngngngng
I'm working on a course much less bulky than this one. Basically mixing the
first two semesters of CS at any university with your standard bootcamp
curriculum. I have a theory that teaching each concept in multiple languages
side by side will be far more effective than other methods.

~~~
dentisto
I'm working on something similar.

------
westurner
Outstanding resource.

jwasham/coding-interview-university also links to a number of also helpful OER
resources: [https://github.com/jwasham/coding-interview-
university](https://github.com/jwasham/coding-interview-university)

------
kevintb
For those who didn’t learn CS formally and taking this guide seriously: it
seems too heavy on math and completely missing in many important areas IMO.
Like - no sections for OS or networking?

------
miki123211
"Use LibGen if you can't buy these books." This is literally the first guy
that recommends something like that in such a literal way. +1.

~~~
TeMPOraL
Not the first one, but it's still not a frequent occurrence.

(So let's use this as a reminder that the same applies for SciHub and
scientific papers, with extra suggestion to use SciHub anyway, as researchers
were most likely paid already from tax money anyway.)

------
yomritoyj
From the headline I imagined a curriculum that updates itself based on
developments in the field.

------
ChuckMcM
Ok, I'll admit for a moment that it might be GaN networks being used to
generate CS courses :-)

This is a good list, I would add something in category theory to it and macro
economics (for the systems approach to highly variant systems).

------
aronhegedus
I like the fact that this is out there for people to do. As someone doing a
degree I dont have the time for it now, but will definitely check in on it if
I have some time off!

------
_drimzy
I need something like this for math. i moved to engineering for my bachelors
but would love to do a self-learning math curriculum.

