Back to the bookshelf

Typographic jacket · original cover not fetched

FROM THE SHARED SHELF · 2006–2026 SAMPLE

Compilers: Principles, Techniques, and Tools

Alfred V. Aho; Monica S. Lam; Ravi Sethi; Jeffrey D. Ullman

3 readers recommend it across 2 discussions

Topics are model-inferred labels.

Keep it on your reading list

THE WORD OF MOUTH

What made it worth passing on?

Original Hacker News comments, in the readers’ own words.

sweeneyrod
I don't think there are any. The problem with learning computer science from textbooks is that most textbooks will go a lot further than just the fundamentals on the subjects they cover. So if you try to learn the basics by choosing a textbook for each area and read it cover to cover you'll never finish. Perhaps the answer is to thoroughly read the first few chapters/skim the remainder of Introduction to Algorithms; the Dragon book; Computer Networks/Architecture/etc.: A Systems/Quantitative/etc. Approach; Types and Programming Languages; Security Engineering; AI: A Modern Approach and so on -- that was certainly my experience of undergrad CS. A few exceptions are K&R, The Mythical Man-Month and What Every Computer Scientist Should Know About Floating-Point Arithmetic which are short enough that you can easily read them in their entirety.
gharbad
Knuth's Art of Computer Programming Aside from that, there are typically only 1-2 extremely well regarded books in any given area. If you're going to be doing something specific, grab the appropriate book. eg: Compilers - Dragon Book AI - Russel/Norvig's Artificial Intelligence: A Modern Approach Oh.. everyone needs a whiteboard, as well - they're quite useful
nikcub
I am also self-taught, although I dropped out of University two years into a CompSci/Engineering double major, so I will recommend some resources to you that helped me immensely. Each of these books has an associated MIT course with lecture video, notes, etc. available online. First is Structure and Interpretation of Computer Programs[1], which you can read online, and the associated course at MIT, which is 6.001[2] Second is the famous 'Dragon Book', Compilers: Principals, Techniques and Tools[3] and the associated course which is 6.035[4] Extras would be the Python book 'How to think like a Computer Scientist'[5]. MIT course 6.00[6] uses the book as a reference, and the courseware is again available online. Other than that - the usual suspects on learning C (K&R), UNIX (TAOUP[7]), the bash shell along with grep, sed, awk, more algorithms(CLRS[8]), functional programming and machine learning. Take your time, it takes years to build the relevant experience and knowledge and you are never done.…