Live data from Hacker News

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

news.ycombinator.com

21–30 of 93 posts

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

#21
For Algorithms, I know the amount of materials available online can be overwhelming, so here's an alternative: get a copy of "Algorithms, 4th Edition" [1] from Sedgewick and Wayne, and work through it cover to cover, ignoring any other resources.

This book has very little in the way of prerequisites, and it covers a lot of fundamental algorithms and a little bit of Math, but it is a lot more accessible and didactic than, say, the Cormen book. I don't think you need any other resource for studying the book (videos, forums, etc.) other than maybe the website for convenient access to the source code (and maybe some other Java reference, although you don't need deep Java knowledge to understand the code).

Note: I'm plenty biased for this resource... I don't know why, but I find the implementations so elegant an easy to follow, even though the source code is Java, a language I admit sometimes can look anything but elegant (in its production form with all those imports and redundant type signatures :-). Many algorithms are implemented using data structures introduced in previous chapters, so it makes sense to read it cover to cover.

For Computer Architecture, Nand2Tetris [2] is another resource that comes up often and for good reason. I only worked through half of this book but I really like it too and have it on my back burner to complete the second half of it: first part is about implementing a computer from the ground up (nand gates being the "atoms"); second part is about implementing a parser/compiler for a higher level language targeting the same computer.

1: https://algs4.cs.princeton.edu/

2: https://www.nand2tetris.org/

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

#22

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?

You have one of the best universities in the world sharing their material for free. That's what's valuable, not the forums that can be attached to the platform or the certificate that no employer cares about.

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

#23
Amazing inputs.

I'd also suggest a top-down approach where you start with a flexible end goal you'd want to achieve (e.g. be a full-stack dev), in which case you can start by babystepping a hands-on approach (e.g. learning javascript, learning client-side and server-side of things). Complimentary fundamental course outlines can also help, e.g. Comptia A+ gives you hardware fundamentals, Comptia Network+ gives you networking fundamentals, CloudAcademy can get you started on working with cloud providers like Azure/GCP/AWS, and so on and so forth.

It's easy to get lost in the theoretical side of things, being able to test them out in action as soon as you can could give you quite an ideal balance.

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

#24
When you study on your own, keep track of what your are learning.

What I do is to create spreadsheet with 4 columns:

- "Topic": the topic name, e.g.: "self balancing trees".

- "Material": did I read/watch the material for this topic.

- "Notes": do I have my own takeaways or notes about this material.

- "Code": do I have code for this? like a Jupyter notebook or source code, etc.

This approach worked for me, and helped me get better at online tests and interviews.

If you think you already understand a concept, you can just move on to another topic.

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

#25
I'm surprised you didn't list CS50. That's one of the best intro to programming / CS courses around.

You can enroll for free at: https://www.edx.org/course/cs50s-introduction-to-computer-sc...

I never went to University and didn't take a lot of CS courses but since I create web development video courses I wanted to be able to reference other courses to folks who asked so I took CS50 a few years ago to vet it. It was a great intro course and I even learned a little bit of C in the process. David Malan (the head instructor) is also top notch.

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

#26

For Algorithms, I know the amount of materials available online can be overwhelming, so here's an alternative: get a copy of "Algorithms, 4th Edition" [1] from Sedgewick and Wayne, and work through it cover to cover, ignoring any other resources. This book has very little in the way of prerequisites, and it covers a lot of fundamental algorithms and a little bit of Math, but it is a lot more accessible and didactic t…

Second the recommendation to read Algorithms over CLRS; it’s significantly nicer in part because it uses actual code with good variable names instead of its own strange psuedocode dialect.

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

#27
post #25

I'm surprised you didn't list CS50. That's one of the best intro to programming / CS courses around. You can enroll for free at: https://www.edx.org/course/cs50s-introduction-to-computer-sc... I never went to University and didn't take a lot of CS courses but since I create web development video courses I wanted to be able to reference other courses to folks who asked so I took CS50 a few years ago to vet it. It was…

edx still has last years version online (I think until like mid-January), so if anybody wants to start between now and then, use: https://cs50.harvard.edu/college/ for the latest Fall 2019 edition.

You can still switch to edx as soon as it's live there.

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

#28
post #22

Earlier quoted context omitted.

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?

You have one of the best universities in the world sharing their material for free. That's what's valuable, not the forums that can be attached to the platform or the certificate that no employer cares about.

I mean the professor or university could be the best in the world in terms of scientific discovery or university rankings criteria and this does not mean these materials are necessarily the best learning experience.

Did you even take courses there? Have a different experience?

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

#29
n most elementary schools, high schools and colleges, computer science is still an elective course. However, a growing number of education institutions – at every level – are requiring their students to complete at least an introductory course in computer science in order to graduate. We live in a society driven by computer technology. From school to work to socializing, understanding how computers work and how to use them is becoming more essential in many areas of life. The field of computer science takes computing to the next level. More and more students are pursuing an education in computer science and turning their knowledge into lucrative careers in business, engineering, and health care, to name just a few.

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

#30
post #22

Earlier quoted context omitted.

You have one of the best universities in the world sharing their material for free. That's what's valuable, not the forums that can be attached to the platform or the certificate that no employer cares about.

I mean the professor or university could be the best in the world in terms of scientific discovery or university rankings criteria and this does not mean these materials are necessarily the best learning experience. Did you even take courses there? Have a different experience?

Yes, I have, and my experience has been the exact opposite. Their courses on calculus and linear algebra are some of the best that I've come across.
Post reply on HN