Thread: Is this a good book?

  1. #1
    Registered User
    Join Date
    Feb 2009
    Posts
    2

    Is this a good book?

    Howdy,

    I'm making a transition from Visual Basic.net over to C++, I've been reading this sites tutorials and they have been very informative but I'm needing a little more, specifically set tasks. My Dad attempted at one stage to learn C++ and has quite a few books left over from it.

    I had a look through a few of them and I noticed that C++ Black Book 2001 edition (ISBN 1-57610-777-9) seemed to be one of the best there. I was just wondering, is it? I have a couple more, Idoit's guide to C++ 2002 edition (I think, I would have to double check) and something called C++ made easy being a few.

    I'm just curious, is the C++ Black Book as good as it looks, or would I be better off buying something different? I have firm knowledge of programming basics, having been taught VB at school from year 10 (2006) to year 12 (2008) and I topped the class. I need a book more for the tasks/challenges and maybe a little explanation on some finer points.

  2. #2
    Registered User
    Join Date
    May 2008
    Location
    Paris
    Posts
    248
    Well, I would never buy a book beginning with "Idiot's guide" or ".. for Dummies".

    Except if you only want to do simple things, a phrase "made easy" reduces my interest in the book.

    From the http://cboard.cprogramming.com/showthread.php?t=74078 you'll find recommendations, perhaps "Thinking C++" of "Accelerated C++" might be good recommendations.

  3. #3
    Registered User
    Join Date
    Jan 2005
    Posts
    7,366
    Generally speaking it will be hard to find a book published in 2001 or 2002 that is appropriate for modern C++. C++ was standardized in 1998 but it took a while for the books to reflect that standard.

    So those books are better than nothing, but if you really want to learn C++ I'd consider trying to get access to something newer. Accelerated C++ was one of, if not the first to teach modern C++, so it is a great solution. There are a few more books that have been published recently that do that as well.

    Note that the overwhelming reason for recommending a C++ book is usually the content of the book - whether it teaches the standard library classes from the beginning rather than C-style code. This is different than the style of the book, which is more subjective. There is such a big gap in quality of content in C++ books that often style is not part of the equation. So the reasons you think C++ Black Book looks good may all be based on style, but the reasons the books you see recommended are listed are generally because of content. You'll have to make your own judgment of style from that list.

  4. #4
    Registered User
    Join Date
    Feb 2009
    Posts
    2
    Well, in the first chapter the book's Author explained the history of C and C++ and he was very clear that he was going to follow the ANSI/ISO standardized and indicated places where older users of C++ could find information where they can view the updates.

    Also, the last 3 chapters are all about the Standard Library.

    Chapter 15 - Standard Template Library
    Chapter 16 - Standard Template Library Containers
    Chapter 17 - Standard Template Library Functions Objects and Algorithms

  5. #5
    Registered User
    Join Date
    Jan 2005
    Posts
    7,366
    Stroustrup (the creator of C++) and many other C++ experts advise teaching the standard library objects, especially string and vector, right from the beginning and using them as if they are part of the language (which they are).

    Bad and really old books make no mention of these classes. Better and somewhat more recent books mention them and have a few chapters about them in the end of the book. The best books are the ones that introduce and use these classes throughout the book from the very beginning.

    There is plenty to learn from the older books, but if you're looking for your best option you should find one that really teaches C++ the way it is being used now and will be used going forward.

    Also note that one can use standard C++ but still be using C style practices that have better alternatives in C++. It is a good thing if the author uses standard code, but it's better if he or she uses the most modern practices.

  6. #6
    Malum in se abachler's Avatar
    Join Date
    Apr 2007
    Posts
    3,195
    Quote Originally Posted by Daved View Post
    Generally speaking it will be hard to find a book published in 2001 or 2002 that is appropriate for modern C++. C++ was standardized in 1998 but it took a while for the books to reflect that standard.

    ISBN 1-878739-73-5 published 1995
    ISBN 0-471-06565-X published 1994
    ISBN 0-13-042888-4 published 1994

    all 3-4 years BEFORE the standard and yet excellent books that were all used (by me) as college textbooks. So don't assume a book that came out 3-4 years AFTER the standard would be less valuable.

    What exactly does 'Modern C++' mean to you, because quite frankly the language hasn't changed that much in the last 20 years. W@hat has changed is the API's and template libraries, but those aren't (yet tltic) a formal part of the language.
    Last edited by abachler; 02-08-2009 at 07:19 PM.

  7. #7
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Quote Originally Posted by abachler
    all 3-4 years BEFORE the standard and yet excellent books that were all used (by me) as college textbooks. So don't assume a book that came out 3-4 years AFTER the standard would be less valuable.
    If they really are excellent, then I hope that they have been updated to remain excellent.

    The problem is this: if you use a book that is good, but which teaches pre-standard C++, then you run the risk of being given examples that will not compile. If you know C++, updating the code yourself might be easy, but since the point is to learn C++, you will likely be lost and have to ask for help for a problem that should not have existed in the first place.

    Quote Originally Posted by abachler
    What exactly does 'Modern C++' mean to you, because quite frankly the language hasn't changed that much in the last 20 years.
    The standardisation of the core language is one reason why pre-standard books may come with incorrect examples that were correct for particular compilers at the time of writing.

    But C++ is more than just the core language. I tend to think of "modern C++" as a style of programming in C++ that involves "multi-paradigm programming" and the appropriate application of C++ idioms, with good use of the standard library and other "modern" libraries.

    Quote Originally Posted by abachler
    W@hat has changed is the API's and template libraries, but those aren't (yet tltic) a formal part of the language.
    The standard library will never be part of the core language, but is formally part of standard C++.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  8. #8
    Malum in se abachler's Avatar
    Join Date
    Apr 2007
    Posts
    3,195
    actually one of those is the proposed standard itself, which by and large did not change in the intervening years. But the point is that there were already quality books out before the standard, so the changes in teh standard woudl require very minor updates to the books themselves, and so the assumption that no books that came out for several years afte the standard are worth anythign is wrong. Why is it wrong? Because its incredibly obviously wrong. C++ didn't spring forth on the world one day fully standardized and then all teh writers had to catch up, there were high quality books even before the standard, so the standard itself would have only required some updates to correct any differences, which I highly doubt took years and years to make.
    Last edited by abachler; 02-08-2009 at 08:57 PM.

  9. #9
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Quote Originally Posted by abachler
    But the point is that there were already quality books out before the standard, so the changes in teh standard woudl require very minor updates to the books themselves, and so the assumption that no books that came out for several years afte the standard are worth anythign is wrong.
    You have a strawman argument since Daved did not make an "assumption that no books that came out for several years after the standard are worth anything". The opinion that Daved did state was that such books are better to have than none at all, but newer books could be even better. Accelerated C++ itself was (first) published in 2000.

    Quote Originally Posted by abachler
    C++ didn't spring forth on the world one day fully standardized and then all teh writers had to catch up, there were high quality books even before the standard, so the standard itself would have only required some updates to correct any differences, which I highly doubt took years and years to make.
    I think that such updates are likely to appear in later editions, and later editions should have newer publication dates. There is also the issue of content as mentioned by Daved in posts #3 and #5, but that probably has less to do with the standard itself and more to do with ideas about C++ programming and the teaching of C++ that were articulated in books published during and after the initial standardisation process.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  10. #10
    Registered User
    Join Date
    Jan 2005
    Posts
    7,366
    abachler, you didn't read my posts very closely. I said those books have value, but a better idea would be to learn modern idioms and practices. Do you disagree? Do you think it is better to learn out-of-date practices and non-standard code? Perhaps a better word to use in the sentence you quoted would have been "ideal" rather than "appropriate". The point is still the same.

    >> W@hat has changed is the API's and template libraries, but those aren't (yet tltic) a formal part of the language. <<
    Yes, they are part of the language standard. That's as close as you're going to get and effectively the same thing.

    >> so the changes in teh standard woudl require very minor updates to the books themselves <<
    As I said, C style coding can be done in a standard way, but that doesn't mean books shouldn't be updated to include things like the standard string class. Those changes take a lot of work. For example, the authors of Learn C++ in 21 Days (which has since changed its title) have tried to modernize it in the latest revisions, but have struggled to do so as much as they might prefer because the task is formidable. Compare the 4th edition with the 6th and you'll see a piece of the effort required.

    >> What exactly does 'Modern C++' mean to you <<
    Use of standard library classes and algorithms, use of RAII, use generic non-member functions to extend functionality rather than building monolithic classes, greater use of templates in general. I'm sure there are other things.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Is this book <JAVA in a netshell> good for C++ programmers?
    By meili100 in forum A Brief History of Cprogramming.com
    Replies: 5
    Last Post: 10-28-2008, 02:28 AM
  2. A good C++ Reference book
    By tiachopvutru in forum C++ Programming
    Replies: 5
    Last Post: 05-13-2008, 04:47 PM
  3. Good vectors/planes book
    By jverkoey in forum A Brief History of Cprogramming.com
    Replies: 4
    Last Post: 11-19-2005, 02:43 PM
  4. Lookinf for a good NON beginner book
    By Unregistered in forum C Programming
    Replies: 5
    Last Post: 08-30-2002, 07:17 PM