|
Re: The Most Important C++ Books...Ever
|
Posted: Aug 11, 2006 5:46 AM
|
|
When I see titles like “The Five Most Important <fill in the blank> Books”, my mind immediately flashes back to the final scene in the 1960 movie “The Time Machine”. In that scene, George (the time traveler) has returned from another time to tell his friends of his wondrous travels. They of course, do not believe his stories. Frustrated, George returns to his library and his time machine. A moment later, his one remaining friend Filby hears a ruckus and rushes to the library, but it’s too late, George is gone. Looking around the library, Filby notices three books are missing. Filby ponders; which three books would he take? Finally, Filby poses the question to the audience—“Which three books would you take?”
At the risk of dating myself, I watched that movie with my father in 1960 and to this date I could only come up with one, the other two have eluded for some 46 years now. In the spirit of the movie and Scott’s article we should honor the same constraints: You can only choose five books, no more, no less. As Scott mentioned, there are no spots for honorable mention or those almost making the cut. Scott didn’t miss a book, he chose his five. To suggest another book, suggest which book it would replace and why—you only get five.
Honoring these constraints, here is my take. I agree with Scott’s first three choices; however, I would replace “International Standard for C++”, with “Object-Oriented” Analysis and Design with Applications” by Grady Booch. Like “Design Patterns”, this book is invaluable in understanding OO concepts and knowing that, understanding C++ is easier. Moreover, I think the first book (TC++PL) is sufficient in this regard. That leaves “Modern C++ Design” and like the question posed in the movie I can’t really decide, but that would be cheating so I choose “Design and Evolution of C++" because knowing ‘why’ something was done is often better than knowing ‘how’.
Anyway, that’s my take but I would like to take the opportunity for a shameless plug and an obvious violation of my own words. I highly recommend “Head First Design Patterns” (http://www.headfirstlabs.com/index.php). It is an excellent follow-up to “Design Patterns by Erich Gamma (et al)”. It is Java oriented; however, I converted (most of) their exercises and examples to C++ which are freely available at: http://sourceforge.net/projects/hfdp-cpp/
|
|