Article Discussion
The Most Important C++ Books... <em>Ever</em>
Summary: In this article, Scott Meyers shares his picks for the five most important books in the history of C++, along with why he chose them.
28 posts.
The ability to add new comments in this discussion is temporarily disabled.
Most recent reply: January 11, 2019 11:09 PM by harshak
    Bill
     
    Posts: 408 / Nickname: bv / Registered: January 17, 2002 4:28 PM
    The Most Important C++ Books...Ever
    August 9, 2006 8:39 AM      
    In this article, Scott Meyers shares his picks for the five most important books in the history of C++, along with why he chose them.

    http://www.artima.com/cppsource/top_cpp_books.html

    What do you think of Scott's choices? What other C++ books you feel do you feel have been important in the history of C++, and why?
    • Rodrigo
       
      Posts: 1 / Nickname: eol / Registered: August 9, 2006 8:58 AM
      Re: The Most Important C++ Books...Ever
      August 9, 2006 1:01 PM      
      You missed "Design and Evolution of C++". I find it is a must read as well, for the insights in the development of the language. But it is a great list.
      Cheers
    • cdiggins
       
      Posts: 21 / Nickname: cdiggins / Registered: February 4, 2004 1:54 PM
      Re: The Most Important C++ Books...Ever
      August 9, 2006 1:09 PM      
      You completely overlooked: The C Programming Language (2nd Edition) (Paperback) by Brian W. Kernighan, Dennis Ritchie, Dennis M. Ritchie

      Every other C++ book assumes you read this book about C. I'd bump Design Patterns in favor of that one.
      • dearlove
         
        Posts: 2 / Nickname: dearlove / Registered: August 9, 2006 11:34 AM
        Re: The Most Important C++ Books...Ever
        August 9, 2006 3:50 PM      
        While not disagreeing with any of Scott's choices, there are two books that I most frequently reach for while programming. The first is TC++PL (3rd edition at work, special edition at home). The other is Matt Austern's Generic Programming and the STL. I'm not actually sure what's third on my list. (And it's not down to limited choice, my home library in particular has all the usual suspects and some more.)
    • Larry
       
      Posts: 1 / Nickname: lab / Registered: August 9, 2006 4:37 PM
      Re: The Most Important C++ Books...Ever
      August 9, 2006 8:57 PM      
      I'm pleased to see Scott's picks, and to discover that the list was similar to my own list of must-haves (a slightly different concept from "most important", I admit), with Stroustrup, Meyers, and the Standard in common. I consider Josuttis, Effective STL, and More Effective C++ as necessary staples as well. Scott's exposition of multiple dispatch in More Effective C++ is by itself worth double the price of admission - may we expect a new edition? On Scott's recommendation, I expect shortly to purchase Modern C++ Design.
    • Jonathan
       
      Posts: 1 / Nickname: diver / Registered: August 9, 2006 7:13 PM
      Re: The Most Important C++ Books...Ever
      August 9, 2006 11:17 PM      
      Adding to Top 5
      C++ Coding Standards: 101 Rules, Guidelines, and Best Practices — Herb Sutter, Andrei Alexandrescu
      Exceptional C++ — Herb Sutter
      More Exceptional C++ — Herb Sutter
    • Roland
       
      Posts: 25 / Nickname: rp123 / Registered: January 7, 2006 9:42 PM
      Re: The Most Important C++ Books...Ever
      August 10, 2006 0:22 AM      
      The most important C++ books... today? I wouldn't recommend Gamma and Alexandrescu any more. BTW, IIRC the last important C++ book came out in 2004: Matthew Wilson's 'Imperfect C++'.
      • Dileban
         
        Posts: 1 / Nickname: dileban / Registered: February 20, 2006 3:07 AM
        Re: The Most Important C++ Books...Ever
        August 10, 2006 4:18 AM      
        If there's room for only one book on my desk, that would be GOF's Design Patterns. You got to love that book.
    • Ion
       
      Posts: 8 / Nickname: igaztanaga / Registered: January 3, 2006 9:57 PM
      Re: The Most Important C++ Books...Ever
      August 10, 2006 6:13 AM      
      While I find great those books, I have to say that maybe those are the most important, but not the best, IMHO.

      The best C++ books that I've ever read are "Thinking In C+" Vol.1 and Vol.2 by Bruce Eckel (Chuck Allisons co-wrote Vol.2). I fell in love with C++ reading those books.

      They are also, IMHO, the best books to learn C++. After those, I find Scott's Effective series very interesting and Andrei's Modern C++ as the best advanced book. Also, I have to mention "Inside the C++ Object Model" by Stanley B. Lippman, that explores a field that almost all other books ignore.
    • Roland
       
      Posts: 25 / Nickname: rp123 / Registered: January 7, 2006 9:42 PM
      The Most Important C++ Book is Yet to be Written
      August 10, 2006 10:39 AM      
      The most important C++ book will provide an integrative view of the "multi-paradigm" (an oxymoron) language C++. Coplien and Stroustrup have attempted first steps towards a unifying view of C++ but the great concept is still missing.
    • Chuck
       
      Posts: 32 / Nickname: cda / Registered: February 11, 2003 0:06 PM
      Re: The Most Important C++ Books...Ever
      August 9, 2006 9:52 AM      
      I can't argue with Scott's choices, but I think this might be a good place to mention other books that are contenders. In my visits to various organizations, I have noticed that the ARM (Stroustrup & Ellis) has been used by multitudes, as has Lippman's C++ Primer (which improved with each edition - the 4th edition is very good [thank you, Barbara!]). Two others qualify by numbers of users: Nico Josuttis' C++ Standard Library, and the STL Tutorial by Musser et al (that's how normal people learned STL in the 90s). And Nico and Daveed's C++ Templates book did for templates what Bjarne's books did for the language as a whole. And in its day, Cargill's Style book was on most developers shelves or down the hall.

      Other books pushed the envelope (Coplien's Advanced C++, Barton and Nackman, Eisenecker and Czarnecki, to name a few) but their audience was smaller (yet crucial - the movers and shakers of the C++ world know these books very well and were influenced by them).

      And of course the best current book on STL is Scott's. Another just-in-time success, since most developers are past the beginner's stage STL-wise.

      I continue to be amazed at the breadth of the "community" that embraces C++. Researchers, bit fiddlers, generic library developers, educators, financial sector developers, lots more. A diverse array of quality contributors.
      • John
         
        Posts: 1 / Nickname: jdubchak / Registered: August 10, 2006 2:17 AM
        Re: The Most Important C++ Books...Ever
        August 10, 2006 6:33 AM      
        I agree with Chuck's remarks here however, I would add the following as being at least in the "Top 10":

        1. C++ Templates: The Complete Guide by Nicolai Josuittas and Davide Vandervoode

        2. C++ Template Metaprogramming: Concepts, Tools, and Techniques by David Abrahams and Aleksey Gurtovoy.

        But in support of both Chuck and Scott, the Top 5 list is complete, in my opinion.

        John
      • Todd
         
        Posts: 27 / Nickname: tblanchard / Registered: May 11, 2003 10:11 AM
        Re: The Most Important C++ Books...Ever
        August 10, 2006 4:27 PM      
        I think the ARM, Effective C++, and the fish book on Streams were the three most important books written. After that, there's room for argument.
    • Glenn
       
      Posts: 3 / Nickname: gpuchtel / Registered: August 11, 2006 0:41 AM
      Re: The Most Important C++ Books...Ever
      August 11, 2006 4: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/
    • Kenneth
       
      Posts: 2 / Nickname: kasajian / Registered: August 12, 2006 1:24 AM
      Re: The Most Important C++ Books...Ever
      August 12, 2006 5:36 AM      
      I was going to say Lippman's C++ Primer -- thanks Chuck Allison.

      I would like to add two more to the list:
      Exceptional C++ by Herb Sutter
      and
      The Design and Evolution of C++ by Bjarne Stroustrup

      Yes, Exceptional C++ does focus on exceptions, but you'll learn a lot more about writing solid code and how C++ works in much greater detail from this book than any other.

      The reason I like "The Design and Evolution of C++" is because it focuses on how we got here with C++. Why is it the way it is, not what it is. Often, when you understand the reasons the designers made their tradeoffs gives you a much better understanding of the language. You can empathies with their choices based on whatever constraints they had, and it's actually easier to remember facts about the language when you have context around the decisions.
      • Randy
         
        Posts: 3 / Nickname: rto / Registered: August 15, 2006 1:11 AM
        Re: The Most Important C++ Books...Ever
        August 15, 2006 5:26 AM      
        I agree with Scott's choices and was happy to see that modesty did not prevent him from including his own "Effective C++", a book that would be great even without the benefit of being in the right place at the right time.

        I don't know if it should be in the top 5, but I think "Accelerated C++" by Andrew Koenig and Barbara Moo is a very important book. It shows a quick (but thorough) path to productive C++ that is unmatched. Two lessons I took away are 1) learning C is not necessary for a good start with C++ and 2) not everything is an object.
    • John
       
      Posts: 1 / Nickname: joran / Registered: August 18, 2006 1:43 PM
      Re: The Most Important C++ Books...Ever
      August 18, 2006 8:02 PM      
      Why Lippman's C++ Primer is not on Scott's list, while it is a must-read for almost all of the C++ guys?

      to Glenn: thanks for your work and well done! but, honestly, your coding style of class member access specifiers may be a little weird to somebody :P
    • Paul M.
       
      Posts: 2 / Nickname: pmd / Registered: October 27, 2004 9:25 AM
      Re: The Most Important C++ Books...Ever
      August 23, 2006 5:28 AM      
      I'm sure it didn't have the impact of many of the books mentioned here so far, but one of the most important books for me was Allen Holub's C + C++: Programming with Objects in C and C++. As a long time C programmer wanting to learn C++, I had read other tutorials, but this book really bridged the gap for me. I will always think of it as the most important C++ book that I have read. Without it, I would have had a much harder time understanding these others.
    • feng
       
      Posts: 1 / Nickname: uhhstepup / Registered: April 15, 2009 8:39 PM
      Re: The Most Important C++ Books...Ever
      April 16, 2009 5:24 AM      
      hello!!!!!!!!!!!!!!SOS,please help me
      i want to study c++,and c++ class
      so i want to have some good books
      like C++ Effective Object-Oriented Software Construction
      but i am in china and there is no english one,and i don not know where i can find it or download .
      so please help me
      • Paul M.
         
        Posts: 2 / Nickname: pmd / Registered: October 27, 2004 9:25 AM
        Re: The Most Important C++ Books...Ever
        June 23, 2009 11:38 AM      
        > hello!!!!!!!!!!!!!!SOS,please help me
        > i want to study c++,and c++ class
        > so i want to have some good books
        > like C++ Effective Object-Oriented Software Construction
        > but i am in china and there is no english one,and i don
        > not know where i can find it or download .
        > so please help me

        http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html
    • Zhiyi
       
      Posts: 1 / Nickname: zhiyizhang / Registered: June 17, 2005 6:55 AM
      Re: The Most Important C++ Books...Ever
      August 11, 2006 11:04 AM      
      Given Scott's no-production background, it's no suprise that he didn't mention Large-Scale C++ Software Design, which I think is a must-read for any large scale C++ software development.(http://www.amazon.com/gp/product/0201633620).
      • Chris
         
        Posts: 1 / Nickname: chgrs / Registered: April 18, 2006 8:13 AM
        Re: The Most Important C++ Books...Ever
        August 23, 2006 3:28 AM      
        I'm with zhiyizhang here. I'd be inclined to drop "Design Patterns" on the technicality that it is not specific to C++, and include Lakos. He was the first (and only?) to define principles for creating large code-bases - a very different problem to writing programs.
      • Scott
         
        Posts: 5 / Nickname: sdm / Registered: August 17, 2006 10:26 AM
        Re: The Most Important C++ Books...Ever
        August 31, 2006 8:35 PM      
        > Given Scott's no-production background, it's no suprise
        > that he didn't mention Large-Scale C++ Software Design,
        > which I think is a must-read for any large scale C++
        > software development.

        Just to clarify, I have no background in producing production code in C++ (though today I got email from a former consulting client challenging that claim), but I did work as a software engineer for a few years writing production code (primarily in Pascal). As for Lakos' book, I think it's a fine book with very useful information not available elsewhere, but, in my view, it never really had a significant impact on the field. That may be a shame, but lots of good books have been published that didn't have the impact they perhaps should have. That's just the way things go sometimes.
        • Hannu
           
          Posts: 1 / Nickname: hannuxx / Registered: January 28, 2007 7:21 PM
          Re: The Most Important C++ Books...Ever
          January 29, 2007 1:40 AM      
          My 5 books concerning this very impressive prog lang are:

          1) The C++ Programming Language by BS
          - There is no escaping - you have to read this book to
          understand the foundations of C++

          2) The Design and Evolution of C++ by BS
          - Important background information. Why C++ is like it is.

          3) Effective C++ by Scott Meyers
          - Offers best practives to keep in mind so that you may master this hard language.

          4) Exceptional C++ by Herb Sutter
          - Shows that it is not so easy to handle try-catch gotchas...

          5) Modern C++ Design by Andrei Alexandrescu
          - If you want to be Muad'Dib of C++, read this and you will
          not be the same person any more... ;)
      • Siddhartha
         
        Posts: 2 / Nickname: sisingh / Registered: August 9, 2006 6:32 PM
        Re: The Most Important C++ Books...Ever
        April 27, 2011 2:35 AM      
        The Annotated C++ Reference Manual
        Effective / More Effective C++
        STL Tutorial and Reference Guide
        Inside C++ Object Model
        Modern C++ Design
        InfomIT Article by Danny Kalev
    • wayne
       
      Posts: 1 / Nickname: wr / Registered: August 1, 2012 0:30 PM
      Re: The Most Important C++ Books...Ever
      August 1, 2012 5:54 PM      
      "Advanced C++ Programming Styles and Idioms", 1991. Coplien. (called "Acid" because the cover was a particular shade of purple, and it expanded the mind)

      It was unique, in that the use of pure virtual classes, concrete types, and static singletons as factories, were not only introduced, but elucidated with practical examples which are still valid today.

      Templates were not yet part of the language, but at the earliest stage, it showed how C++ could be used to create classes in practice, and as such it is the most essential, practical and complete introduction to object oriented programming, ever.
    • Jason
       
      Posts: 2 / Nickname: jah / Registered: June 23, 2015 2:39 PM
      Re: The Most Important C++ Books...Ever
      June 24, 2015 2:07 PM      
      I'm still 'learning' C++. I own a couple books on the list. I think his (Scott's) book 'Effective' should remain on HIS list because it contains 20% OR LESS material about the standard C++ library. These huge C++ books (1000+ pages) would be more 'important' if the content was divided into two separate volumes -- Volume I would be C++ the language (1000+ pages). Volume II would be Standard Library (1000+ pages) The problem is a lot of the C++ books for sale seem to target High School students on up.
      • Jason
         
        Posts: 2 / Nickname: jah / Registered: June 23, 2015 2:39 PM
        Re: The Most Important C++ Books...Ever
        June 24, 2015 2:28 PM      
        Oh! The Most Important C++ Book...Ever-- C++ Concurrency IN ACTION. It's a whole book on one part of the standard. Also, since I bought it and haven't read it yet, I can't say anything bad.
    • harshak
       
      Posts: 1 / Nickname: harshak111 / Registered: January 11, 2019 11:08 PM
      Re: The Most Important C++ Books...Ever
      January 11, 2019 11:09 PM      
      Thanks for the info...

      https://hotmaillogin.me/