Rating: - Excellent Intermediate Text and Reference
I didn't enjoy reading Stephen Dewhurst's earlier book, C++ Gotchas, very much because the approach of teaching by showing you what can go wrong bothers me. If you didn't know about some these particular gotchas before (by experience), does the vague understanding (that you get from reading about them) that they exist help protect you from them? Maybe. But trying to be aware of them all can just make you a more confused programmer; losing sight of your objective of good software design by trying to avoid all the pitfalls. We can learn form others' mistakes occasionally, but I think we can learn a lot more by being taught with examples of how to do it right in the first place. This second approach is taken by Dewhurst in C++ Common Knowledge. It was very enjoyable to read.
This is a great intermediate level text and reference for C++ programmers. It deals with many of the concepts of C++ programming that C++ programmers must understand on the way from being a beginner to making effective use of the language. It covers these concepts with clear examples and explanations in an increasing order of difficulty. This book belongs on almost every C++ programmer's bookshelf because, even if you know the material, the way it is presented in this book makes it easier to remember and review when needed. Highly recommended.
Rating: - Tres Bien
A nice book, with lots of good knowledge. Would be better if bigger of course, but such books are preferred small, I think.
I liked all parts of templates - subject not covered well in other books, Meyers, Sutter, Alexadrescu - and polymorphism also.
Good book on the shelf. Better book on the desk.
Rating: - Good introduction to some critical subjects
In this book, Stephen Dewhurst explains 63 individual issues that every intermediate and senior C++ programmer should understand. The topics range from the basic material that anyone programming in C++ should know ("Data Abstraction" and "Polymophism") to more advanced topics that a junior programmer might not grasp ("Template Argument Deduction" and "Generic Algorithms"). Along the way, he covers initialization vs. assignment, exception safety, class layout, and many more.
The only complaint I have about the book is a lack of depth on individual issues. In all fairness, Dewhurst explicitly states that this is his intent. He wanted the material to be short enough to bring someone up to a basic level of understanding quickly. With that in mind, This book serves as a good starter for familiarizing a junior programmer with more advanced topics. To really learn these issues well, the programmer will need supplemental material.
Most junior and intermediate C++ programmers would benefit from reading this book. Any item that you don't fully understand is an area where you need improvement. Senior-level C++ programmers might find this book interesting for reminding themselves where more junior programmers are likely to slip. It would also serve as a good reference to hand to a junior programmer to bring him or her up to speed quickly without spending a lot of time in explanation.
Despite my one complaint, I would recommend this book to most C++ programmers.
Rating: - Really excellent, and quite needed
This book fills a glaring gap, for something that explains the complex parts of C++ in straightforward terms, and leaves one fully armed with the right nomenclature.
It's not so much that it teaches you new parts of the language, more that it arms you with the right handle on the terminology and insight into the details.
Highly recommended.
Rating: - Brilliantly crisp and clear
Dewhurst's C++ Gotchas was good, but this is better. Succinct, clear, entertaining. It helps in dispersing the terminological fog that is C++.
As of the publication of this book, intermediate to advanced C++ programmers need only four books: "The C++ Programming Language" (Stroustrup); "C++ Common Knowledge"; "C++ Coding Standards" (Sutter & Alexandrescu); "Imperfect C++" (Wilson). Everything else is superfluous.
|