"Software Tools" was, for me, the most influential
programming book that I ever read. I don't think there's a better
book to convey the "zen" of Unix.
+1.
He writes: "I first found Software Tools in Pascal a bit over 20 years ago, hidden in amongst old VAX manuals in the library of the company where I worked at the time. Unusually for a technical book, Software Tools in Pascal has a terrific narrative. It starts with a tiny task – copy everything from the console input to the console output – and presents the correspondingly tiny program. Step by step, program by program, you arrive at the end of the book with an ex-like line editor, a roff-style print formatter, and a macro processor. En route, you take in filtering, file archiving, sorting, and regular expressions. Each incremental step seems so logical and the code presented is so clear, that you just want to keep reading. Chunks of code in a book can be rather tedious, but Kernighan and Plauger’s is a joy. The lessons imparted on simplicity, clarity, efficiency, on tools and the Unix philosophy, in common sense, how each decision affects the finished program – well, they are at the core of what we do, and how we should think about programming. Your mind can only be blown once, but I re-read bits of this book often to remind myself of the feeling it gave me."