Hacker News new | ask | show | jobs
by davidhs 1409 days ago
What are the other 4 top programming books?
2 comments

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.

DDIA, SICP, and PAIP have been on my reading lists for years. Maybe I’ll finally get round to them after this glowing review :)
* Structure and Interpretation of Computer Programs: https://web.mit.edu/6.001/6.037/sicp.pdf

* Concepts, Techniques and Models of Computer Programming: https://www.info.ucl.ac.be/~pvr/book.html

* The Art of Prolog: https://www.dropbox.com/s/2umr9ouz0jdelio/1407.pdf?dl=1

* Probabilistic Models of Cognition: https://probmods.org

Something that merges logic, types and proofs, perhaps yet to be written. Some good preliminary material:

* Program = Proof: https://www.lix.polytechnique.fr/Labo/Samuel.Mimram/teaching...

* Concrete Semantics: http://concrete-semantics.org

* The Hitchhiker’s Guide to Logical Verification: https://raw.githubusercontent.com/blanchette/logical_verific...

* Programming Language Foundations in Agda: https://plfa.github.io

* Logic and Computation Intertwined: https://cs.uwaterloo.ca/~plragde/flaneries/LACI/

* Software Foundations: https://softwarefoundations.cis.upenn.edu/

I'm going to look at the Art of Prolog book.

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 Art of Prolog and PAIP are full of small Prolog usecases.

The Craft of Prolog is also very much worth looking into.

A related approach is ASP, which combines SAT with logic programming. These are the two canonical books:

* Answer Set Programming: https://www.cs.utexas.edu/users/vl/teaching/378/ASP.pdf

* Answer Set Solving in Practice: https://potassco.org/book