3 ms·
Ask HN: What are the 3 programming books you learned the most from? Mine
Structure Interpretation of Computer Programs
- enough is said about it here. must-read.
The Algorithm Design Manual - Skiena
- a formidable way to learn algorithms and associated concepts. still challenging to read, but war stories offer great prose and I actually laughed several times. if you couple this book with Robert Sedgewick's online Princeton algorithms course you will be quite formidable with algos.
Designing Data Intensive Applications - Klepperman
- Mind blowing for me. Finally felt like I could reason about data-driven design by understanding modeling, stores, and distributed, as well as event-driven systems. Absolute must-read especially to fill the gaps if you don't have a CS degree.
These 3 have been above all the rest for me, would love to add another one to this list, please share!
- ArtWomb 7y agoThe academic CS tomes never really gelled for me. It was .NET programmer Charles Petzold's guides that made things click http://www.charlespetzold.com/books.html http://www.charlespetzold.com/books.html I'd also give a shout out to Micheal Abrash's Graphics Programming Black Book that taught me the adage "the best optimizer is between your ears" http://www.jagregory.com/abrash-black-book/ http://www.jagregory.com/abrash-black-book/ Reference I keep close at hand is Ilya Grigorik's High Performance Browser Networking. Web apps with sub second latency can make all the difference https://hpbn.co/ https://hpbn.co/
- jpamata 7y ago1. Cracking the Coding Interview 2. Effective Java 3. Building Microservices: Designing Fine-Grained Systems
- deepaksurti 7y ago1. Ansi Common Lisp - Paul Graham 2. On Lisp - Paul Graham 3. Elements of Computing Systems - Noam Nisan
- aj-4 7y agodid you work with lisp day-to-day or just find the derived programming principles to be super valuable?
- deepaksurti 7y agoIn my current role, no lisp day-to-day; but I do use it for fast prototyping. Definitely, the derived principles are super valuable and the ROI on effort spent in learning Lisp is most likely permanent, a rare ROI.
- seatback1 7y ago1. Head First Java 2. Refactoring: Improving the Design of Existing Code 3. Patterns of Enterprise Application Architecture
- gitgud 7y agoSurprised no ones mentioned these: 1. Design Patterns: Elements of Reusable Object-Oriented Software 2. Clean Code 3. The Pragmatic Programmer They've helped immensely from working with small functions to the organisation of systems and systems of systems.
- eykanspelgud 7y agoAutomate the boring stuff. I'm reading/have read other books listed by others in this thread so I won't list them, but this book what made me continue programming after I put it down.
- quickthrower2 7y agoThanks for posting this, I am going to ask my boss to order "Designing Data Intensive Applications" now!