Live data from Hacker News

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

news.ycombinator.com

71–80 of 93 posts

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

#71
Concerning computer science, you can find some interesting web discoveries here: https://turtle.community/topic/computer_science

In particular, I like 'Category Theory for Programmers' by Bartosz Milewski as a great theoretical foundation to functional programming.

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

#73
post #52

Earlier quoted context omitted.

This is a poor suggestion, IMO. OP is trying to get into CS, so they need something that's clear and approachable. By your own admission, it's possible even for experienced people to be stumped by TAOCP. It's simply too vast and too difficult for a beginner to finish. This fetishizing of difficult things doesn't help anyone, least of all people trying to get into the field. The failure mode to watch out for here is n…

Knuth is clear and approachable. It's just not dumbed down. The theory that a beginner should 'finish' requires dumbing down. And then they haven't really finished anything. At it's core, your position infantalizes the OP instead of treating them as a full fledged intellect simply lacking knowledge. Nand2Tetris is a great resource. There are lots of great resources: Let's build a compiler , SICP , Paradigms of Artifi…

[deleted]

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

#74
Harvard’s CS50 [1] is where I started in my self learning journey. I found it very difficult but it’s given me a really good base to build upon.

CS50 hits the sweet spot of excellent online material, large online community and fun.

1: https://www.edx.org/course/cs50s-introduction-to-computer-sc...

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

#75

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…

"Algorithms, 4th Edition" is demonstrated using Java. They make use of a graphical library that helps show different runtimes visually. I ported that library from Java Swing/AWT to Ruby (TK) if you'd like to go through the book using ruby instead of Java. Looking at the TK code you could probably also port it to Python pretty easily.

https://github.com/gregors/standard_draw_tk

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

#76

+ The foundation of computer science is Knuth's The Art of Computer Programming . Everything else is footnotes. Knuth is hard. And easy. And everything in between. You won't understand all of it. But you'll have to be ok with not understanding all of CS anyway. Nobody does. You can spend your time searching for a silver bullet. Or you can just read the manual. Knuth is the manual. + Bach's The Design of the Unix Oper…

> + The foundation of computer science is Knuth's The Art of Computer Programming. Everything else is footnotes.

The foundation of computer science would be the work done by the likes of Alan Turing and Alonzo Church. They established foundations of CS before Knuth was born.

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

#77

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…

Just got my Raspberry Pi in the mail and I’ve been looking for a project-oriented way to learn computer architecture... looks like Nand2Tetris is going to be what I do on the pi.

Thank you!!!

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

#78
post #20

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.

If the student knows almost nothing, these are really good as they cover the most simple things. If you already programming, they may be too basic.

The problem sets in CS50, at least the first half, are great and I would highly recommend. I ditched it when it moved to python and web, the problems were interesting but there was an added level of boredom in the 'now make it a website' approach.

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

#79
post #52

Earlier quoted context omitted.

This is a poor suggestion, IMO. OP is trying to get into CS, so they need something that's clear and approachable. By your own admission, it's possible even for experienced people to be stumped by TAOCP. It's simply too vast and too difficult for a beginner to finish. This fetishizing of difficult things doesn't help anyone, least of all people trying to get into the field. The failure mode to watch out for here is n…

Knuth is clear and approachable. It's just not dumbed down. The theory that a beginner should 'finish' requires dumbing down. And then they haven't really finished anything. At it's core, your position infantalizes the OP instead of treating them as a full fledged intellect simply lacking knowledge. Nand2Tetris is a great resource. There are lots of great resources: Let's build a compiler , SICP , Paradigms of Artifi…

[deleted]

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

#80
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…

CS50 is good, but I personally don't like it. I prefer MIT/Princeton/UCB intro courses comparatively. CS50 starts off with C for 3-4 weeks IIRC. Then moves on to python/sql/webdev. Not only is this fast paced, but it also covers a lot of breadth in a short time. For a self learner who has a full time job without proper support structure like peers and office hours which you get in the on campus version, it is difficu…

I found CS50’s schedule very difficult to keep up with while working full-time. I fell behind at points but I didn’t find much if any penalty in taking a little longer to finish the class. I was motivated and putting the time in to absorb the material to the point where I was satisfied.
Post reply on HN