Live data from Hacker News

Ask HN: How do I choose the right resource to learn CS fundamentals?

news.ycombinator.com

1–10 of 93 posts

Ask HN: How do I choose the right resource to learn CS fundamentals?

#1
I am trying to learn CS on my own. But there are so many resources available online for every course from many of the top universities.

For example:

For intro courses:

* Computer science an interdisciplinary approach (princeton)

* CS61A - UCB

* Introduction to CS and programming (MIT)

* Stanford

* CMU

Data Structures and Algorithms:

* Princeton Algorithms

* CS61B - UCB

* Stanford Algorithms course

* MIT Algorithms

* CMU

Apart from this you have multiple books on each topic - Data Structures/Algorithms, Discrete Mathematics, Theory of Computation, Operating systems, Networks, and so on.

Apart from these you also have resources like teachyourselfcs, ossu, functionalcs.github.io/curriculum/.

I am attracted by the resources/online/books posted by courses in UCB/Princeton/MIT/Stanford/CMU. At the same time I get boggled down and overwhelmed that I have soooooooooo many materials to cover. Intro courses aren't that big of a deal since I am able to recognize/solve most questions fairly easily in multiple resources. But my next step of Data structures and algorithms is overwhelming that I am unable to start somewhere.

How do you recommend to choose the right resource (online/book) for each topic/course? Is it worth going through multiple university courses/books for the same topic?

Re: Ask HN: How do I choose the right resource to learn CS fundamentals?

#4
Being self taught, I often wonder the same thing. I don't know that this is "THE ANSWER" but I was impressed by the job done here of curating a bunch of disparate CS materials (including some from the universities you mention) into some kind of structured learning approach https://github.com/jwasham/coding-interview-university

As the url suggests, it's got an agenda about interview prep but the materials do not - they're straight up CS resources. Like I said, this may not be exactly what you want, but it could be helpful.

On a different note, I have completed the Stanford Algorithms Course part 1 (currently working on part 2) and I can recommend it.

Re: Ask HN: How do I choose the right resource to learn CS fundamentals?

#5
MIT has entire courseware available for free.

https://ocw.mit.edu/courses/find-by-topic/#cat=engineering&s...

Introduction to Computer Science followed by Data Structures and Algorithms should give you a healthy start.

--

Learning these fundamentals is useful, but not necessarily immediately practical. Building and doing is the best way to learn. This is a good start, and the fundamentals will certainly give you an edge against most people graduating from a bootcamp, but after this I'd recommend finding a good tutorial, whatever the language that teaches you step by step how to build XYZ... I learned ruby/rails by doing Michael Hartl's tutorial building a microblogging platform like twitter.

Re: Ask HN: How do I choose the right resource to learn CS fundamentals?

#6
The two courses that give the basic CS foundation needed are:

nand2teris.org and cs50.net

See if you can solve all the projects & assignments in these courses.

These cover a lot of ground. Once you are done with these two courses end to end, you will get a fair understanding of many of the computing big ideas.

Re: Ask HN: How do I choose the right resource to learn CS fundamentals?

#7

MIT has entire courseware available for free. https://ocw.mit.edu/courses/find-by-topic/#cat=engineering&s... Introduction to Computer Science followed by Data Structures and Algorithms should give you a healthy start. -- Learning these fundamentals is useful, but not necessarily immediately practical. Building and doing is the best way to learn. This is a good start, and the fundamentals will certainly give you an e…

I used MIT OCW several years ago, but found it frustrating for three reasons:

1. Following the courseware is not always free, starting with the textbook

2. There are no milestones or credentials to track your progress

3. I found little community to interact with

This is just anecdotal. Some of these may have changed, be different.

Has anyone here worked through many of these courses themselves?

Re: Ask HN: How do I choose the right resource to learn CS fundamentals?

#8
Of the intro-level courses I'm only familiar with CMU's 15-112, which I took as my own intro to programming a few years ago [1], and UC Berkeley's CS 61A (from hearing friends talk about it and looking at their assignments). But given the choice between just those two, I would definitely go with 112.

Compare the second homework assignments, which are supposed to be given after 2 weeks (~6 days) of instruction:

15-112: https://www.cs.cmu.edu/~rdriley/112/assignments/02/

CS 61A: https://cs61a.org/hw/hw02/

The 61A assignment forces higher order functions way too early, and it's often discouraging to people just starting out - and it's not even common (in my experience) to write code like this anyways. I also like the way that the CMU assignment writes tests as simple functions, without magic docstring tooling.

Don't skip the code tracing sections, where you read code and write the output by hand - it helps you understand and internalize what the code is doing, rather than just running code samples over and over again to see how it works.

Also, there's some nice notes on debugging https://www.cs.cmu.edu/~rdriley/112/notes/notes-debugging.ht...

[1] I took this version, which is ordered a bit differently http://www.kosbie.net/cmu/spring-16/15-112/schedule.html

Re: Ask HN: How do I choose the right resource to learn CS fundamentals?

#9
A couple of things here: I do not think that there is a “right” set of resources. There may be a set of “right” resources for you personally but to explore or discover these you would have to explore your motivation and your personality further. Which learning styles do you favour? What are your long term goals? Somehow I liked how Jordan Peterson put it in his - Maps of Meaning- lecture: university should help students to get articulate. If you think about that, your self and um your goals it should help you to move forward.

Other wise you are just looking for an instruction manual for life, which doesn’t exist as such.

Re: Ask HN: How do I choose the right resource to learn CS fundamentals?

#10
> I am attracted by the resources/online/books posted by courses in UCB/Princeton/MIT/Stanford/CMU. At the same time I get boggled down and overwhelmed that I have soooooooooo many materials to cover.

I think you'd be better served by doing a lot of courses from the same institution. If you choose courses that were designed to fit together, you'll have a lot less wasted time from overlapping material or holes from missing material.

> Is it worth going through multiple university courses/books for the same topic?

What is your goal exactly? Is it to evaluate and compare everyone's materials?

If your goal is your own learning, then why wouldn't you take a more advanced course from the same institution instead of repeating a slightly different version of what you've already learned?

Post reply on HN