This book is one that ALL programmers should have on their bookshelf and keep within easy reach so that they can constantly refer to it. Knowledge of what this book contains is what separates programmers from coders.
There are two types of programmers in the world - those that do what this book suggests and trainee programmers who haven't finished learning it all yet.
All of the information in the book is useful information that any programmer needs to know regardless of what programming languages that they use. With over 30 years of programming experience myself I can say that there is nothing in the book that I wasn't already at least aware of but it took me a long time to gradually discover all of that information and now here it all is in one well written and entertaining book. Now there is no excuse for a programmer to not know the right way to write programs that will function correctly, interface with other programs the right way, and be easy to maintain.
The author of this book really understands all of the aspects of programming (which of course is a lot more than just writing code). The book covers all of these aspects one at a time in a logical order looking first at how that aspect ought to be handled in an ideal world and then at what compromises that you may decide that you have to make in order to apply it to a given real world situation. Also discussed is how to handle legacy code that wasn't written properly and how to determine when you should or shouldn't rewrite it.
The author's writing style makes the information being presented easy to understand and apply while also making the book one that is interesting to read. There is plenty of humour in the book as well and I laughed a number of times particularly at some of the monkey cartoons used to illustrate the points made by each chapter (a job that they do extremely well).
What are you doing still here reading this review - go get the book and read that instead.