After reading the good, despite few, amazon reviews of this book i decided to pick it up. I'm a big fan of books that teach one how to become a better programmer. Unfortunately, i wasn't too impressed by this one. The author didn't seem to have anything super insightful or groundbreaking to share with us. He gave a description of what he considers to be good code/coders along with a really brief description of a lot of software related tools, paradigms, and 'types' of programmers.
Unfortunately he doesn't really say anything that hasn't been said. His code examples are notably poor. In Steve McConnels book, "Code Complete" he criticizes programming books for using fibonacci as an example of recursion. He criticizes it because it's not something that software developers find themselves doing often. I have the same complaint with most of the code examples in this book (so maybe it is good there are so few). It felt like my high school java teacher (who had neither a CS degree or programming experience) wrote up the code samples. You'll quickly be annoyed by the simplicity of the mistakes and concepts that he is trying to express.
As you read this book you'll find things you agree and disagree with, and you'll just want to say OK. you won't run to your computer wanting to implement them. You also won't run to your friends telling them you've found a new way to do something. I guess that is my major problem with this book, there's nothing really special about it. I also found myself wondering 'why is this important?' throughout the book quite a bit.
I found another thing in this book to be insulting, the Good Programmers Bad Programmers section after each chapter. If i didn't know the difference between a good programmer and a bad programmer i wouldn't have bought the book. They are all very similar and obvious.
I would definitely recommend the following books over it:
while this book does cover some things these books say, not enough to replace any one of them, and reading any of these will provide insights this book cannot.