Robert Martin's Clean Code was an awesome read. This book illustrated the major points of writing readable and maintainable code. There were lots of code samples, and examples of how to make the code tell its own 'story' and become readable to any programmer who comes along. It would be an appropriate read for someone at at least an intermediate level of understanding of programming. All the code examples are written in Java.
The entire last chapter was a summary of all the 'code smells' that he had discussed throughout the book. This could make the book useful on a longer term basis as a reference book.
Although the book did light the desire in me to go and find programs to refactor, I felt the book as a whole dropped the ball a little when it came to depth. Each relatively short chapter (there are 16 plus the section with the rehash of code smells) could have been fleshed out with more substance -- especially the chapters about unit testing, data structures, and error handling, and the sections that discussed the costs of maintaining dirty code. There is an appendix adding to the concurrency chapter. I thought this might have sat better in the chapter itself and the other chapters extended.
Overall a great read, and a good foundation to build on when the goal is readable code.
Disclaimer: I received this book from the publisher in exchange for writing this review.