Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

1. Peter Norvig's Design of Computer Programs course on Udacity probably singlehandedly changed my perspective on thinking and modeling software solutions to problems.

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.



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.


If you liked William Zinsser's "On Writing Well", give Joseph M. William's "Style: Toward Clarity and Grace" a read.


I'll check it out. Thanks for the recc.


+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 am reading Crafting Interpreters right now. It seems to be a solid book but I am curious how others read it?

Do you reproduce all, or most, the code yourself? That’d be a great way to make everything stick but makes progress terribly slow.


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.


My approach was to port everything to a different language I was learning.


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!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: