This is an excellent book for anyone programming in an OO language developing applications of an enterprise nature (e.g. with data, business logic & presentation tiers in multi-user environments). Many of the ideas presented are ones you’ll have discovered for yourself at some point, but having the pattern clearly extracted, and additional points which you may not have considered raised, enables you to see how you can improve your code, and get into better practices. Additionally, by presenting these patterns, you’re given names for these solutions, allowing you to use these terms in your code, making it more readable by others.
The book is easy to read without being patronising, code samples are given in C# and Java, and the author expresses his opinions about each of the patterns presented, guiding you when to use each, and what areas to avoid (with the relevant justifications).