This is one of the few books written by programmers for programmers that is not technical in essence. The book is more high-level, it does not talk much about code. This also gives this book a longer lifespan than its technical counterparts.
Some of the described concepts could apply to other domains, hence the book cover analogy (wood working). This is what makes the book really shine, it will teach you some ideas that can be applied everywhere, not only when programming. The common factors can, in my opinion, be reduced to fundamental design issues or the human psyche. The book features many cross section references, this highlights that everything is related. Somehow we always felt that everything was related, didn’t we ?
Because it is not very technical it easier to digest, I found it easy to read, and read again. I recommend this book to everyone, especially to beginners and perhaps even to non-programmers who work in an IT environment. For the experienced ones this book, may in 2010, be a little disappointing, but you should give it a try.
I bought this book (at Eyrolles) about one month ago and nearly went through all of it.
The author, Josh Bloch, is writing code from an API designer’s perspective. It is not easy to view everything from this perspective at first, but after reading most of it APIs will become more transparent when used and you will even save precious time when writing your own.
My favorite chapters are:
- 4. Classes and interfaces
- 6. Enums and Annotations
- 8. General Programming
Some chapters may not be crucial, like the one about serialization, but other chapters are worth reading for everyone.
Because you can read chapters in any order you will probably find this book easy to read. My approach is to read a chapter and apply what I have read, then I go on reading another one.
What struck me is that this book is a must read for intermediate java developers because it goes beyond mere Java syntax and gives some advice that is valid for any object-oriented language. You will keep coming back to it while programming, so keep it close.