C++ Programmer's Bookshelf

  • (2 Pages)
  • +
  • 1
  • 2

20 Replies - 3894 Views - Last Post: 02 July 2010 - 01:21 PM

#1 Backtracker  Icon User is offline

  • D.I.C Head

Reputation: -23
  • View blog
  • Posts: 163
  • Joined: 30-November 08

C++ Programmer's Bookshelf

Posted 27 June 2010 - 12:26 AM

Hey,
I'm new to C++ and i would like to know which is the best book and the best of its sequel-currently?
The reasons why there's no best book ever are:

  • Language updates.
  • Writing/Teaching techniques.
  • Learning techniques.

Most of the greatest books in stores are incredibly old having a release date close to 1998 - 2004.

Take a loot at this page: http://www.cprogramming.com/books.html
"With it, you can go from beginner to expert by following our recommended C++ "Beginner to Expert" programmer's bookshelf"

This is the programmer's bookshelf for 2004 which one is for 2010 ?

I mean back then if you read all 5 you where considered an expert.
Which 5 less or more should i read to gain the same characteristic ?

Please propose your books in the order a beginner (me) should read them.

This post has been edited by Backtracker: 27 June 2010 - 12:34 AM


Is This A Good Question/Topic? 1
  • +

Replies To: C++ Programmer's Bookshelf

#2 Bench  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 855
  • View blog
  • Posts: 2,338
  • Joined: 20-August 07

Re: C++ Programmer's Bookshelf

Posted 27 June 2010 - 12:59 AM

*
POPULAR

Correct that most of the best C++ books were published around that time - Have a look at the books described on this page for a flavour of what is currently considered essential reading to learn C++ http://www.parashift...-learn-cpp.html

View PostBacktracker, on 27 June 2010 - 07:26 AM, said:

The reasons why there's no best book ever are:

  • Language updates.
  • Writing/Teaching techniques.
  • Learning techniques.
Note that in terms of language updates, C++ hasn't changed too much since 1998 (when it does, probably in 2011 or 2012, compiler vendors will likely take several years to catch up).
As for learning and teaching techniques, there is one style which you should certainly avoid - and that is the technique of teaching from the "bottom up" (i.e. learning the C 'subset' of the language before learning how to use C++) - books which teach you C alongside C++, or those which teach you the Procedural paradigm first are examples of books to avoid - those are books which should have been left in the 1990s.


A contributor to another C++ forum had this bit of advice which is still relevant in 2010:

Quote

With regard to C++ books, I'll just echo the advice here.

The following books are recommended; read them in mostly the order listed.
  • "Accelerated C++" Andrew Koenig & Barbara Moo
  • "The C++ Standard Library" Nicolai Josuttis --- a "must have"
  • "Effective C++", "More Effective C++", "Effective STL" Scott Meyers
  • "Exceptional C++", "More Exceptional C++" Herb Sutter
  • "The C++ Programming Language" 3rd edition or later Bjarne Stroustrup
  • "Modern C++ Design" Andrei Alexandrescu
  • "C++ Templates" Vandevoorde & Josuttis
  • "Standard C++ IOStreams and Locales" Langer & Kreft


The following is also recommended.
C++ Coding Standards : 101 Rules, Guidelines, and Best Practices, Herb Sutter, Andrei Alexandrescu
Book reviews can also be found at www.accu.org: Beginner's C++.



C++ in 2004 looks exactly the same as C++ in 2010; The value of books from 2004 is largely unchanged - The better news is that the next version of C++ (affectionately known as C++0x) will not break any parts of the language, so each of these books should remain relevant long after C++0x falls into being widely used.

This post has been edited by Bench: 27 June 2010 - 01:34 AM

Was This Post Helpful? 5
  • +
  • -

#3 Backtracker  Icon User is offline

  • D.I.C Head

Reputation: -23
  • View blog
  • Posts: 163
  • Joined: 30-November 08

Re: C++ Programmer's Bookshelf

Posted 27 June 2010 - 05:12 AM

View PostBench, on 26 June 2010 - 11:59 PM, said:

Correct that most of the best C++ books were published around that time - Have a look at the books described on this page for a flavour of what is currently considered essential reading to learn C++ http://www.parashift...-learn-cpp.html

View PostBacktracker, on 27 June 2010 - 07:26 AM, said:

The reasons why there's no best book ever are:

  • Language updates.
  • Writing/Teaching techniques.
  • Learning techniques.
Note that in terms of language updates, C++ hasn't changed too much since 1998 (when it does, probably in 2011 or 2012, compiler vendors will likely take several years to catch up).
As for learning and teaching techniques, there is one style which you should certainly avoid - and that is the technique of teaching from the "bottom up" (i.e. learning the C 'subset' of the language before learning how to use C++) - books which teach you C alongside C++, or those which teach you the Procedural paradigm first are examples of books to avoid - those are books which should have been left in the 1990s.


A contributor to another C++ forum had this bit of advice which is still relevant in 2010:

Quote

With regard to C++ books, I'll just echo the advice here.

The following books are recommended; read them in mostly the order listed.
  • "Accelerated C++" Andrew Koenig & Barbara Moo
  • "The C++ Standard Library" Nicolai Josuttis --- a "must have"
  • "Effective C++", "More Effective C++", "Effective STL" Scott Meyers
  • "Exceptional C++", "More Exceptional C++" Herb Sutter
  • "The C++ Programming Language" 3rd edition or later Bjarne Stroustrup
  • "Modern C++ Design" Andrei Alexandrescu
  • "C++ Templates" Vandevoorde & Josuttis
  • "Standard C++ IOStreams and Locales" Langer & Kreft


The following is also recommended.
C++ Coding Standards : 101 Rules, Guidelines, and Best Practices, Herb Sutter, Andrei Alexandrescu
Book reviews can also be found at www.accu.org: Beginner's C++.



C++ in 2004 looks exactly the same as C++ in 2010; The value of books from 2004 is largely unchanged - The better news is that the next version of C++ (affectionately known as C++0x) will not break any parts of the language, so each of these books should remain relevant long after C++0x falls into being widely used.


Isn't there a book that says it all ? or covers like 90% of C++. Of course and each book consist of its own unique information elements that cover a specific area of C++ but isn't there a book written lately that covers like 90% ? At least 6/9 have an intro.
I just can't read about C++ historical line 6 times ! I know that in about 60% each one is different but what about the other 40% ?

EDIT: And i can't spend over 200$ for the books and another 100$ for a wooden shelf dedicated to C++ i mean just think about it. (I know e-books... that sucks i preffer the traditional way only w3schools deserves studying by using your computer)

This post has been edited by Backtracker: 27 June 2010 - 05:16 AM

Was This Post Helpful? 0
  • +
  • -

#4 Bench  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 855
  • View blog
  • Posts: 2,338
  • Joined: 20-August 07

Re: C++ Programmer's Bookshelf

Posted 27 June 2010 - 05:37 AM

No book can or will ever be able to cover anywhere near 90% of C++ without splitting into half a dozen volumes; To give one example, Thinking in C++ 2nd ed. is a free-ebook by Bruce Eckel which covers a huge area of the language in 2 volumes - yet even this book stops a long way short of describing even half of C++ http://mindview.net/...ingInCPP2e.html

In order to be a C++ programmer, you need a good starting point which will explain how to use the language - and it certainly doesn't take a big book to do that; Accelerated C++ manages it in 334 pages - although those 334 pages will take you months to read and fully digest. If you reached the end of that book, you'd be in a strong position to learn how to use 3rd party API's and write all kinds of nifty applications

Some the books listed are advanced-level books which discuss software development techniques, others are cold-hard reference books; alot of it is good, solid, useful information, but its not essential reading for everyone - The majority of C++ programmers really only need to know a fraction of the language in order to develop useful, efficient, effective, well-written applications.

The rest of the language which is lesser-well-known is often under the umbrella of stuff which is useful for library writers - although alot of C++ programmers will probably never write an off-the-shelf library in their lives, and they'll carry on their careers probably never using even half of the stuff available in C++.

This post has been edited by Bench: 27 June 2010 - 06:01 AM

Was This Post Helpful? 3
  • +
  • -

#5 JackOfAllTrades  Icon User is offline

  • Saucy!
  • member icon

Reputation: 6036
  • View blog
  • Posts: 23,421
  • Joined: 23-August 08

Re: C++ Programmer's Bookshelf

Posted 27 June 2010 - 05:55 AM

Moved to C++ Programmers
Was This Post Helpful? 0
  • +
  • -

#6 NickDMax  Icon User is offline

  • Can grep dead trees!
  • member icon

Reputation: 2250
  • View blog
  • Posts: 9,245
  • Joined: 18-February 07

Re: C++ Programmer's Bookshelf

Posted 27 June 2010 - 11:19 AM

If there is anything close to a "one true source" of C++ truth it would be the standard itself. However I seriously doubt there is a single 100% complaint compiler and so... well even the standard is not the "one true source".

Though anyone who uses C++ will tell you that even knowing the grammar inside and out and knowing all the rules and vendor specific oddities, you STILL know nothing of OOP, design patters, the operating systems, hardware models, the 1000's of libraries, the 1000's of technologies that make up "C++ programming" in any practical sense. There just can not be any all inclusive reference and there never will be (well maybe one day there with be a C++ specific wikipedia but I doubt it).

The best you can do is amass experience with the language and programming. Learn the basics from a book (There are lots of books covering the basics) and then research and learn as you go. Technology is always changing, libraries are evolving, we are learning from our mistakes all the time. Many of the "best practices" I learned when I was first learning C/C++ no longer apply.

For example when I was learning C/C++ this was the "best way" to swap two integer variables:
a ^= b;
b ^= a;
a ^= b;
On the old 8086-486 this was faster than using a temporary variable! BUT, now things have changed, now this is actually much slower than using a temporary variable. The happened because the architecture of the processor changed.

This kind of knowledge is just the kind of thing that you pick up.


Another good example is Template-Metaprogramming -- which is an unintended side-affect of templates. It was "discovered" and not designed (although since its discovery it has worked its way into the designs). Not all C++ programmers think that TMP is a good thing, some programmers even feel that metaprogramming in general is bad.

Even among C++ programmers we have come to grips with the fact that we will never really "fully understand" C++. Its just too large, too dynamic, and you can only really write a book about what you understand.
Was This Post Helpful? 1
  • +
  • -

#7 Backtracker  Icon User is offline

  • D.I.C Head

Reputation: -23
  • View blog
  • Posts: 163
  • Joined: 30-November 08

Re: C++ Programmer's Bookshelf

Posted 28 June 2010 - 01:00 PM

Well i've started reading Accelerated C++ already but it seems to me kind of akward beggining C++ in 2010 using a book that was written in 2000.

This post has been edited by Backtracker: 28 June 2010 - 01:06 PM

Was This Post Helpful? 0
  • +
  • -

#8 Oler1s  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 1395
  • View blog
  • Posts: 3,884
  • Joined: 04-June 09

Re: C++ Programmer's Bookshelf

Posted 28 June 2010 - 02:48 PM

Quote

Well i've started reading Accelerated C++ already but it seems to me kind of akward beggining C++ in 2010 using a book that was written in 2000.
Language was standardized in 1999, and in use for longer.
Was This Post Helpful? 0
  • +
  • -

#9 Backtracker  Icon User is offline

  • D.I.C Head

Reputation: -23
  • View blog
  • Posts: 163
  • Joined: 30-November 08

Re: C++ Programmer's Bookshelf

Posted 28 June 2010 - 02:54 PM

I dont get it. 10 years and humanity didn't manage to make a better C++ book or a better begginer's C++ book ?
Was This Post Helpful? -1
  • +
  • -

#10 Oler1s  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 1395
  • View blog
  • Posts: 3,884
  • Joined: 04-June 09

Re: C++ Programmer's Bookshelf

Posted 28 June 2010 - 02:59 PM

How are the books Bench listed bad?
Was This Post Helpful? 0
  • +
  • -

#11 NickDMax  Icon User is offline

  • Can grep dead trees!
  • member icon

Reputation: 2250
  • View blog
  • Posts: 9,245
  • Joined: 18-February 07

Re: C++ Programmer's Bookshelf

Posted 28 June 2010 - 03:10 PM

You know computer books are kind of a funny area. You would think that publishers would be trying to keep up with modern technology right?

Well they would probably love to, if only computer books ever made it onto the best seller list. They don't. "humanity" has not written a modern book on assembly language since the early days of the Pentium even though there are been MANY changes in the architecture. Authors are there, but publishers would rather invest in more pop-curlture topics.

There are lots of "new" C++ books -- most of them cover .Net or are text books or are along the lines of "learn C++ in 24 hours". You can of course purchase one of these.

But the question is -- will it be better than the classics?

Personally I would like to know what Andrew Koenig, Scott Meyers, Herb Sutter, Andrei Alexandrescu, and Bjarne Stroustrup have to say one the subject of C++.

(which reminds me: Bjarne Stroustrup has a new (2008) book: Programming: Principals and Practice using C++)
Was This Post Helpful? 0
  • +
  • -

#12 Backtracker  Icon User is offline

  • D.I.C Head

Reputation: -23
  • View blog
  • Posts: 163
  • Joined: 30-November 08

Re: C++ Programmer's Bookshelf

Posted 30 June 2010 - 02:45 AM

View PostNickDMax, on 28 June 2010 - 02:10 PM, said:

You know computer books are kind of a funny area. You would think that publishers would be trying to keep up with modern technology right?

Well they would probably love to, if only computer books ever made it onto the best seller list. They don't. "humanity" has not written a modern book on assembly language since the early days of the Pentium even though there are been MANY changes in the architecture. Authors are there, but publishers would rather invest in more pop-curlture topics.

There are lots of "new" C++ books -- most of them cover .Net or are text books or are along the lines of "learn C++ in 24 hours". You can of course purchase one of these.

But the question is -- will it be better than the classics?

Personally I would like to know what Andrew Koenig, Scott Meyers, Herb Sutter, Andrei Alexandrescu, and Bjarne Stroustrup have to say one the subject of C++.

(which reminds me: Bjarne Stroustrup has a new (2008) book: Programming: Principals and Practice using C++)


I'm going to the book-store right now. I have like 100 euros (~130$) which 2 books should i buy?
I mean i need the best begginer's book and the best indermidiate-advanced book.

Also which of those 2 should i buy:
Beginning C++ Through Game Programming, 2nd Edition
Beginning C++ Through Game Programming, 3rd Edition

I dont know what matters. Having the latest version or having the best version?
2nd Edition is updated. 3rd is build upon DirectX 9 / 10. Dunno. Please respond cause im in a hurry.
Thank you very much.

The problem is that whenever i look at a book and its review firstly i read the 5 start review and then the 1 star/2 star
review and at the end im confused. Each one serve as the best for some people and as the worst for some others.

The only way to find the best book is by knowing what book you need to purschase. Since i only know a bit of VB.NET
i need a complete begginer's guide to C++. That will explain and cover the basics in a way that no other book for begginers can. Also i need an for advanced c++ book that will serve as a reference.

This post has been edited by Backtracker: 30 June 2010 - 03:05 AM

Was This Post Helpful? 0
  • +
  • -

#13 Backtracker  Icon User is offline

  • D.I.C Head

Reputation: -23
  • View blog
  • Posts: 163
  • Joined: 30-November 08

Re: C++ Programmer's Bookshelf

Posted 30 June 2010 - 03:14 AM

I Think that C++ Primer Plus (5th Edition) is the BEST book to start learning C++ i mean it covers even its history. That defenatelly what im buying!
Was This Post Helpful? 0
  • +
  • -

#14 c0dy  Icon User is offline

  • New D.I.C Head

Reputation: 3
  • View blog
  • Posts: 34
  • Joined: 29-June 10

Re: C++ Programmer's Bookshelf

Posted 30 June 2010 - 03:33 AM

View PostBacktracker, on 30 June 2010 - 02:14 AM, said:

I Think that C++ Primer Plus (5th Edition) is the BEST book to start learning C++ i mean it covers even its history. That defenatelly what im buying!




I have the 4th edition of that book. There are tons of typos in his
code, so you will get some debugging practice also. But maybe they
fixed all that in the 5th edition. Other than that, I recommend the
book. It was my first c++ book also. One thing I didn't like about
C++ Primer Plus is he doesn't touch the STL until near the end and
I think most books do that. So make sure you get a STL supplicant
like "The C++ Standard Library" Nicolai Josuttis.

This post has been edited by c0dy: 30 June 2010 - 03:33 AM

Was This Post Helpful? 0
  • +
  • -

#15 Backtracker  Icon User is offline

  • D.I.C Head

Reputation: -23
  • View blog
  • Posts: 163
  • Joined: 30-November 08

Re: C++ Programmer's Bookshelf

Posted 30 June 2010 - 03:59 AM

I dont get it. Since C++ Primer Plus 5th Edition is a best seller how could it not be in the recommended to start list:

  • "Accelerated C++" Andrew Koenig & Barbara Moo
  • "The C++ Standard Library" Nicolai Josuttis --- a "must have"
  • "Effective C++", "More Effective C++", "Effective STL" Scott Meyers
  • "Exceptional C++", "More Exceptional C++" Herb Sutter
  • "The C++ Programming Language" 3rd edition or later Bjarne Stroustrup
  • "Modern C++ Design" Andrei Alexandrescu
  • "C++ Templates" Vandevoorde & Josuttis
  • "Standard C++ IOStreams and Locales" Langer & Kreft

Was This Post Helpful? 0
  • +
  • -

  • (2 Pages)
  • +
  • 1
  • 2