
Ask HN: What are the 3 programming books you learned the most from? Mine - aj-4
Structure Interpretation of Computer Programs
- enough is said about it here. must-read.<p>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&#x27;s online Princeton algorithms course you will be quite formidable with algos.<p>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&#x27;t have a CS degree.<p>These 3 have been above all the rest for me, would love to add another one to this list, please share!
======
ArtWomb
The 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/)

------
gitgud
Surprised 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.

------
seatback1
1\. Head First Java

2\. Refactoring: Improving the Design of Existing Code

3\. Patterns of Enterprise Application Architecture

------
jpamata
1\. Cracking the Coding Interview

2\. Effective Java

3\. Building Microservices: Designing Fine-Grained Systems

------
eykanspelgud
Automate 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
Thanks for posting this, I am going to ask my boss to order "Designing Data
Intensive Applications" now!

------
deepaksurti
1\. Ansi Common Lisp - Paul Graham

2\. On Lisp - Paul Graham

3\. Elements of Computing Systems - Noam Nisan

~~~
aj-4
did you work with lisp day-to-day or just find the derived programming
principles to be super valuable?

~~~
deepaksurti
In 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.

