Seconded. However, I would add that most books which have Brian Kernighan as an author are of comparable quality. I'm yet to find a book that hasn't taught me something useful written by the man. I can quite confidently say that if he wrote a cook book, I'd go and buy it.
I have read Elements and Software Tools in Pascal, and while partially definitely outdated ("avoid FORTRAN's three-way if"), excellent writing. Especially Software Tools in Pascal, which in large parts describes and explains source code; I was very impressed by the way the descriptions added lots of insights on top of just the code. Kernighan also manages to smuggle subtle bits of humour into texts about otherwise dry topics.
The AWK book is also pretty good; I read through it a few months ago, and pretty much all of it still works with a modern AWK (such as GNU AWK).
The Go book was mostly written by Alan Donavan, according to Kernighan anyway (as stated in some interviews), but he's not the bragging sort so he might be underselling his contribution.
And Brian Kernighan has done a lot more than what I've read in this thread so far (though I've not read the full thing yet, and of course, it changes over time).
His overall influence on the field of software also extends far beyond his own direct work.
He is one of my top software gurus, since early in my career, since I worked a lot with Unix, from early on, but not only due to his Unix work and writing. I've used the knowledge and wisdom
in some of his books to great advantage, throughout my career, and will be forever thankful to him and the rest of the early as well as later Unix "gang" for that.
Came here wanting to mention The Practice of Programming. It seems to be out of print, but I got my hands onto a copy of it some years ago and really enjoyed the clarity, humility and technical depth (mainly in the later parts) of the piece.
I enjoy clowning around and joking in personal interactions (if appropriate) and used to do it in my writing, but have come to believe that the humble, dry, concise style of the works mentioned above is most suitable and clearest for technical writing addressed to an unknown audience.
I think so too. I remember reading Larry Wall's Perl book. I found it rambling and incoherent. Didn't hold my interest for too long. Kernighan's books are quite different.
The book is not too different from the language, ahem.
OTOH, C is not my favorite language, but the K&R C book is the best technical writing I remember reading.
You found Larry Wall's Perl book rambling and incoherent?
And you a professed book-lover? Are you aware that different book authors have different styles? (Ofc you do.)
Or that Perl is a language, a set of creators and authors, and an ecosystem that does not feel the need to toe the line of the conventional, in fact, disregards it in favor of exploring different styles / options / methods?
Explain yourself, Sir Noufal, or pistols at dawn in Buckingham Park. Okay, your choice of weapons. I shall come armed with the Camel book, nothing else ;)
Other books by him.
1. The UNIX programming environment
2. The Practice of Programming
3. The Go Programming Language