Live data from Hacker News

Ask HN: I'm looking for a good book on the fundamentals of CS

news.ycombinator.com

21–30 of 190 posts

Re: Ask HN: I'm looking for a good book on the fundamentals of CS

#21
For my CS degree, the two classes that were most useful foundations-wise were:

1. Learning how to prove things with math

2. "Baby compilers" machine code, building an assembler, building a simple MIPS compiler, regular expressions, parsing, etc

There's a lot of other topics but those two really set the foundation. All algorithms class and data structures are best understood with a mathematical intuition. Not to mention you want to go into VR, lin alg might help you.

YMMV. Lots of great programmers don't have a math background, but for me that helped.

The CLRS book is pretty standard (but mathy).

You'll learn things as you work too so don't discount patience.

Re: Ask HN: I'm looking for a good book on the fundamentals of CS

#22

Based on the description you give, you probably want a Data Structures/Algorithms intro. The canonical Algorithms textbook is Introduction to Algorithms by Cormen et al. The MIT OpenCourseware course on Algorithms -- which includes videos and assignments -- follows along with that book: https://ocw.mit.edu/courses/electrical-engineering-and-compu... Note: In your case, I'll recommend against SICP as a first resource,…

Grokking Algorithms is also a good quick read in this space. It's a high level "here are some things you should know about and how they might be used" which exposes the reader to important algorithms and patterns without going too deep.

Re: Ask HN: I'm looking for a good book on the fundamentals of CS

#23

Based on the description you give, you probably want a Data Structures/Algorithms intro. The canonical Algorithms textbook is Introduction to Algorithms by Cormen et al. The MIT OpenCourseware course on Algorithms -- which includes videos and assignments -- follows along with that book: https://ocw.mit.edu/courses/electrical-engineering-and-compu... Note: In your case, I'll recommend against SICP as a first resource,…

CLRS truly is the canonical way to learn algorithms at most top CS institutions. I can't upvote this enough.

Re: Ask HN: I'm looking for a good book on the fundamentals of CS

#24

For my CS degree, the two classes that were most useful foundations-wise were: 1. Learning how to prove things with math 2. "Baby compilers" machine code, building an assembler, building a simple MIPS compiler, regular expressions, parsing, etc There's a lot of other topics but those two really set the foundation. All algorithms class and data structures are best understood with a mathematical intuition. Not to menti…

As far as math proof books go.. I'd just check the library for something which covers stuff like truth tables in the 1st chapter and then lots of proof strategies (induction, breaking down by cases, contrapositive, proof by contradiction) with exercises. And find somebody to correct your mistakes which you will make XD

Re: Ask HN: I'm looking for a good book on the fundamentals of CS

#26
post #10

I'm currently going through TAOCP [1]. So far, seems pretty good (although I found one mistake in an exercise). Also, I can never recommend Computer Systems: A Programmer's Perspective [1] enough. (Also features a rare mistakes in an exercise or two, but that's detail.) And for network protocols, Comer's Internetworking with TCP/IP [3] was just great (you only need volume 1). I've read Stevens' books on socket and IP…

I’m 27 years out of Uni and it’s great to see Comer's book still being used and recommended, and updated of course.

Re: Ask HN: I'm looking for a good book on the fundamentals of CS

#27

Based on the description you give, you probably want a Data Structures/Algorithms intro. The canonical Algorithms textbook is Introduction to Algorithms by Cormen et al. The MIT OpenCourseware course on Algorithms -- which includes videos and assignments -- follows along with that book: https://ocw.mit.edu/courses/electrical-engineering-and-compu... Note: In your case, I'll recommend against SICP as a first resource,…

CLRS is great, no doubt about it, but I think Sedgewick is probably friendlier to someone studying on his or her own. Note that there are several versions of Sedgewick, which use different languages (I think there are at least C, C++, and Java versions).

I'd go with Sedgewick, then get CLRS and Knuth for use as reference material.

Re: Ask HN: I'm looking for a good book on the fundamentals of CS

#28
post #11

Interested in what gets suggested here... There are a lot of "CS Course Online" type suggestions posted on HN, which are great - but for those of us with full time jobs and lives it's just a non-starter to approach that quantity of material. I'm also more of a hands on learner which is how I got to where I am - but at the same time I can appreciate and happily absorb a well written, thoughtful book... In other words,…

I'll second this -- just hack on things that motivate you and you'll learn along the way. But working through at least the first third of an algorithms course will pay dividends if you're doing stuff with VR. Fortunately you can do these in parallel -- work through one lecture or a half lecture of "broccoli" and then go back to the meat and dessert of domain-specific hacking/reading until you're ready for more veggies.

Re: Ask HN: I'm looking for a good book on the fundamentals of CS

#29
"Foundations of Computer Science" by Aho and Ullman might fit your bill. Its focus is more on the concepts and principles of computing rather than math-centric CS theory. http://infolab.stanford.edu/~ullman/focs.html

Another nontraditional intro to computing worth mentioning is "Structure and Interpretation of Computer Programs" by Abelson and Sussman(s). It teaches programming concepts using the Lisp/Scheme language (seldom used any more), but does so brilliantly.

"Think Python: How to Think Like a Computer Scientist" by Downey might provide the right mix of computing concepts and programming practice.

If you do want a traditional intro to CS theory, two books that cover that topic well are: "Introduction to the Theory of Computation" by Sipser, and "Introduction to Automata Theory, Languages, and Computation" by Hopcroft, Motwani, and Ullman.

Three very good books that introduce algorithms are: "Introduction to Algorithms: A Creative Approach" by Manber, "The Algorithm Design Manual" by Skiena, and "Algorithms" by Sedgewick and Wayne.

Remember that CS theory doesn't age, so buying a used early edition of a textbook should serve your needs just as well as an new up-to-date edition.

Re: Ask HN: I'm looking for a good book on the fundamentals of CS

#30
post #25

I haven't used it myself but have heard good things about the resources here - https://teachyourselfcs.com

Also haven't used it, but this link from there [0] regarding intro to CS-style discrete math proofs seems somewhat lacking.

There doesn't seem to be enough focus on teaching proof techniques, and skips straight to discrete math content.

Could be a decent beginner resource if combined with something that teaches proof techniques though.

EDIT: the MIT book also listed is actually good [1]

[0]: https://cims.nyu.edu/~regev/teaching/discrete_math_fall_2005...

[1]: https://courses.csail.mit.edu/6.042/spring17/mcs.pdf

Post reply on HN