I tried reading the dragon book in my teens, never really understood it, it was too much theory for me. I'd recommend starting with implementing a forth since it's the easiest language to write an interpreter/compiler for. From there you'll have enough experience to go for something bigger. Making your own bytecode is really fun. Ultimately you'll probably want your compiler to target llvm bytecode so that it works on every target automatically.
FROM THE HN SHELF
Compilers: Principles, Techniques, and Tools
Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman
Computing · A BOOKTypographic 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
4 readers recommend it across 4 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.
This might sound either obvious or naive but if you are not a CS major, I would really emphasize reading CS textbooks such as CLRS, Programming Pearls, Dragonbook and most importantly textbooks on statistics m probability, linear algebra. There is a pyramid of skills for developers. People who haven’t studied throughly above stuff usually ends up at bottom (aka “enterprise” or “web” or “database” developers). They spend their lives in trivialities of patterns and plumbing and only very rarely doing something interesting such as distributed computing, game programming, systems programming, ML/AI.
Also recommended in this reply
There were different book that impacted different stages of my career: As a programmer : 1. The C++ Programming Language by Bjarne Stroustrup. 2. Operating System Concepts by Silberschatz 3. Compilers by Aho As an agile software developer: 1. eXtreme Programming by Kent Beck 2. Pragmatic Programmer by Hunt and Thomas 3. Continuous Delivery by Jez Humble As an architect: 1. Domain Driven Design by Evans 2. Pattern-Oriented Software Architecture by Buschmann 3. Envisioning Information by Edward Tufte As a CEO: 1. Good To Great by Collins 2. Lean Startup by Eric Ries 3. Beyond Budgeting by Pfläging
Also recommended in this reply
- The Pragmatic Programmer
- The Lean Startup
- Good to Great
- Domain-Driven Design: Tackling Complexity in the Heart of Software
- The C++ Programming Language
- Envisioning Information
- Extreme Programming Explained: Embrace Change
- Operating System Concepts
- Continuous Delivery
- Pattern-Oriented Software Architecture, Volume 1: A System of Patterns
It really depends on what you feel you're missing and what you're hoping to do (definitions of "daily work" vary widely). If you're looking to get up on theory by doing your own program of sorts, you could do worse than start with these (in roughly this order): Structure and Interpretation of Computer Programs - Abelson, Sussman, and Sussman Introduction to Algorithms - Cormen, Leiserson, Rivest, and Stein The Art of Assembly Language - Hyde a digital logic book (not sure which is most recommended), and an architecture book (see reply by tftfmacedo) Modern Operating Systems - Tanenbaum Introduction to the Theory of Computation - Sipser Compilers: Principles, Techniques, and Tools - Aho, Lam, Sethi, and Ullman (a.k.a. "Dragon Book") Programming Language Pragmatics - Scott…
Also recommended in this reply