Since I also put PAIP in my top 5 books, here are my 4 other ones:
- The Pragmatic Programmer -
This changed my life when I started programming 20 years ago. Most of the practices are now common, but it was almost radical back then.
- Designing Data Intensive Applications
This is so well written, so elegantly fundamental. It's an absolute pleasure, even if I don't really refer to it in practice.
- Structure and Interpretation of Computer Programs
In many ways, the MIT version of PAIP. Its elegance complements the pragmatism of PAIP well.
- The unicorn project
My number 5 book varies often, because I haven't found many books that reach the writing quality of the other 4. This is a business novel, but it really solidified a lot of concepts for me: lean, queues, theory of constraints, what devops is about, working as a programmer in a business.
Prolog is one of those things that has alluded me all this time. Mostly I don't think I've had an application for it, and, bluntly, at least for me, I need to have a "real" application to solve to best learn something. Seeing the "animal" program repeated over and over and over again was never any help.
In hindsight, maybe it would have been appropriate in an email messaging application I did long ago. It's message routing workflow was not inscrutable, but certainly difficult (and it didn't help that the route could split, sending the message to more than one place with their own workflows -- that was fun).
I've done a bunch with rule engines (and the message routing was done with an ad hoc one), but less so with inferencing.
Maybe this book will give me some insight to explore further. It's always one of those things that sort of nags the back of my brain that I don't quite grok it.
- The Pragmatic Programmer -
This changed my life when I started programming 20 years ago. Most of the practices are now common, but it was almost radical back then.
- Designing Data Intensive Applications
This is so well written, so elegantly fundamental. It's an absolute pleasure, even if I don't really refer to it in practice.
- Structure and Interpretation of Computer Programs
In many ways, the MIT version of PAIP. Its elegance complements the pragmatism of PAIP well.
- The unicorn project
My number 5 book varies often, because I haven't found many books that reach the writing quality of the other 4. This is a business novel, but it really solidified a lot of concepts for me: lean, queues, theory of constraints, what devops is about, working as a programmer in a business.