Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
C++ common knowledge : Essential Intermediate Programming
Dewhurst S., Addison-Wesley Professional, 2005. Type: Book (9780321321923)
Date Reviewed: May 20 2005

There is an old saying that common sense is a very uncommon thing. The common knowledge that is spoken about in this book is also far too uncommon among C++ programmers.

Dewhurst has been writing about C++ since the early 1990s. One of the first C++ books that I ever owned was Programming in C++ [1], which had a similar look and feel to Kernighan and Ritchie’s classic [2]. The language has changed remarkably over the last 12 to 15 years, and this new book is a welcome addition.

When writing books about C++, there is a spectrum of detail that an author can go into. At one end of the spectrum, there are the low-level syntax and semantics books (like those by Stroustrup [3] and Lippman [4]). At the other end, there are the books that focus on patterns (for example, Gamma et al. [5]). This book is in the middle, focusing on the so-called idioms. Readers who are familiar with Meyers’ Effective C++ [6] and More effective C++ [7] will notice strong similarities in style. Although there are similarities in style, however, there is not a lot of overlap in content. Unlike other idioms books, this one tends more toward the patterns side of the spectrum.

The subtitle of the book, Essential intermediate programming, is a fitting description of the contents. The book consists of 63 bite-sized chapters (each chapter is, on average, just over three pages long). Each chapter contains some nugget of knowledge about programming in C++.

Each chapter of the book has a concise title, which provides a good summary of what the chapter is about. Almost every chapter can be read independently of the others. Unfortunately, the short punchy chapter titles are also one of the weaknesses of the book; somebody who is having trouble with template substitution would not intuitively look for a chapter called SFINAE. Similarly, someone who is interested in function callbacks may not think of looking it up in a chapter titled “Commands and Hollywood.”

Learning C++ is not easy. Becoming an expert is very hard. Traditionally, to become an expert, you either need years of experience, or the good fortune of working alongside someone who is already an expert. I believe that this book will be a useful compromise if either or both of the above preconditions cannot be met.

Most good programmers keep a notebook, where they keep notes about the things that work and the things that don’t. They also keep notes about where the traps are in the language that they are using, and the clever things they’ve discovered, as well as the undocumented parts of the language. When reading this book, you get the feeling that you’ve come across such a notebook. It is a well-written and researched notebook: it is easy to understand (assuming a good knowledge of C++), and contains good examples. I would recommend it to any C++ programmer who knows the language well, but who now wants to start improving his or her style.

Reviewer:  Martin Schweitzer Review #: CR131303 (0604-0342)
1) Dewhurst, S.; Stark, K. Programming in C++. Prentice Hall, Upper Saddle River, NJ, 1989.
2) Kernighan, B.; Ritchie, D. The C programming language. Prentice Hall, Upper Saddle River, NJ, 1988.
3) Stroustrup, B. The C++ programming language. Addison-Wesley, Boston, MA, 1997.
4) Lippman, S. C++ primer. Addison-Wesley, Reading, MA, 1998.
5) Gamma, E.; Helm, R.; Johnson, R.; Vlissides, J. Design patterns. Addison-Wesley, Reading, MA, 1995.
6) Meyers, S. Effective C++. Addison-Wesley, Reading, MA, 1991.
7) Meyers, S. More effective C++. Addison-Wesley, Reading, MA, 1995.
Bookmark and Share
  Reviewer Selected
 
 
Programming Languages (D.3 )
 
 
C++ (D.3.2 ... )
 
 
General (D.3.0 )
 
 
Language Constructs and Features (D.3.3 )
 
 
Object-Oriented Programming (D.1.5 )
 
Would you recommend this review?
yes
no
Other reviews under "Programming Languages": Date
Pocket PC development in the enterprise: mobile solutions with Visual Basic and .NET
Forsberg C., Sjöström A., Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 2002.  432, Type: Book (9780201750799)
May 12 2004
Optimizing indirect branch prediction accuracy in virtual machine interpreters
Ertl M., Gregg D. ACM SIGPLAN Notices 38(5): 278-288, 2003. Type: Article
Nov 7 2003
Kid’s programming language (KPL)
Schwartz J., Stagner J., Morrison W.  Computer graphics and interactive techniques (International Conference on Computer Graphics and Interactive Techniques: ACM SIGGRAPH 2006 Educators program, Boston, Massachusetts,52-es, 2006. Type: Proceedings
Dec 20 2006
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy