1. Peter Norvig's Design of Computer Programs course on Udacity probably singlehandedly changed my perspective on thinking and modeling software solutions to problems.
3. Doyle Brunson's Super System 2 is of a similar nature, but for poker. It's outdated these days because the nature of the game has changed so much due to the internet and a shift in meta strategy, but it's really insightful in understanding the human aspects of the game. His perspective as a 'gambler' rather than poker player is also unique, because he talks a lot about prop bets and identifying when you have an edge in a bet.
4. Stephen King's "On Writing" is a masterpiece of a memoir of a man and his craft. My own writing improved significantly as a result of this book.
If you liked Stephen King's "On Writing", give William Zinsser's "On Writing Well" a read. It's not a memoir but more like a manual addressing different types of writing from corporate writing to sports to academic.
+1 Peter Norvig's class. His approach is totally fascinating and the way he effortlessly translates common-thinking and logic into a program is pure magic to me. Highly recommend it and also checkout his notebooks, unparalleled beauty: https://github.com/norvig/pytudes
I'm in the process of reading Part II (the Java interpreter) thoroughly on the toilet, then will implement Part III (the C bytecode interpreter) in Zig. That way I understand the concepts well but end up with something a bit nicer for my efforts. I know I wouldn't finish the bytecode interpreter if I did both parts fully.
Same as others. I took it as an opportunity to work with Rust and enjoyed it a ton! Crafting Interpreters has been ported to any language you can think of so try that approach out!
https://www.udacity.com/course/design-of-computer-programs--...
2. Crafting Interpreters by Robert Nystrom is of similar quality. There are a lot of 'oh that's how that works' moments in this book.
https://craftinginterpreters.com/
3. Doyle Brunson's Super System 2 is of a similar nature, but for poker. It's outdated these days because the nature of the game has changed so much due to the internet and a shift in meta strategy, but it's really insightful in understanding the human aspects of the game. His perspective as a 'gambler' rather than poker player is also unique, because he talks a lot about prop bets and identifying when you have an edge in a bet.
4. Stephen King's "On Writing" is a masterpiece of a memoir of a man and his craft. My own writing improved significantly as a result of this book.