Giant C++ resources list, 3rd edition

M

Mike Tyndall

Sorry I'm late, everybody! I'll try to post it nearer the start of the month
next time.

Updates:
-Books added:
C++ Coding Standards (Required Reading - upcoming)
Memory as a Programming Concept in C and C++
Scientific and Engineering C++
Writing Secure Code: 2nd Edition
-"Modern C++ Design" moved to Required Reading.
-A couple of typos fixed.
-New "General Programming" section.
-"Code Complete: 2nd Edition" moved to General Programming.
-New "Standard C++ Newsgroups" section.
-New "Compiler/OS-Specific C++ Newsgroups" section.
-Websites added:
1 C++ Street
alt.comp.lang.learn.c-c++ FAQ
C++ Home
C++ Programming Language Tutorials
C/C++ Reference
Compiler lists
Cprogramming.com (C & C++)
Dev-C++
DevCentral
DevX
Dictionary of Algorithms and Data Structures
Dinkumware STL reference
Function pointer tutorials
FunctionX
GCC
List of free books
OO Tips
Paul Hsieh's Tech Page
ProgrammerTutorials.com
Scott Meyers' website
Stephen C. Dewhurst's website
The C++ Programming Lair

I might be able to reduce the website count next month, and
possibly organize them.

All books are available on Amazon and probably on eBay. Please reply to
this message if you feel it could be improved in any way (removing books,
adding books, recommending books, general suggestions, etc.).

Remember, please feel free to criticize any part of this list or offer
suggestions.

**BOOKS FOR BEGINNERS**
Accelerated C++ (Koenig & Moo - use if you know a language already)
C++ Primer Plus: Fourth Edition (Stephen Prata)
You Can Do It! (Francis Glassborow)

**REQUIRED READING** - books every C++ programmer should own
C++ Templates: The Complete Guide (Vandevoorde, Josuttis)
Design Patterns (Erich Gamma, et al.)
Effective C++: 2nd Edition (Scott Meyers)
Effective STL (Scott Meyers)
Exceptional C++ (Herb Sutter)
Exceptional C++ Style (Herb Sutter)
Modern C++ Design (Andrei Alexandrescu)
More Effective C++ (Scott Meyers)
More Exceptional C++ (Herb Sutter)
Standard C++ IOStreams and Locales (Langer & Kreft)
The C++ Programming Language: Special 3rd Edition (Bjarne Stroustrup)
The C++ Standard: Incorporating Technical Corrigendum No. 1
The C++ Standard Library: A Tutorial and Reference (Nicolai M. Josuttis)

**OTHER C++ BOOKS**
Algorithms in C++: Parts 1-5: Third Edition (Robert Sedgewick)
C and C++ Code Capsules (Chuck Allison)
C++ Gems (Stan Lippman, editor)
C++ Pointers and Dynamic Memory Management (Michael C. Daconta)
C++ Strategies and Tactics (Robert B. Murray)
Efficient C++: Performance Programming Techniques (Bulka & Mayhew)
Generic Programming and the STL (Matthew H. Austern)
Industrial Strength C++ Rules and Recommendations (Henricson & Nyquist)
Large Scale C++ Software Design (John Lakos)
More C++ Gems (Robert C. Martin)
Multi-Paradigm Design for C++ (James Coplien)
No Bugs! Delivering Error Free Code in C and C++ (David Thielen)
Object-Oriented Multithreading using C++ (Hughes & Hughes)
Practical Debugging in C++ (Ford & Teorey)
Programming Pearls: 2nd Edition (Jon Bentley)
Reusability & Software Construction with C and C++ (Jerry D. Smith)
Ruminations on C++ (Koenig & Moo)
The Annotated C++ Reference Manual (Ellis & Stroustrup)
The Design and Evolution of C++ (Bjarne Stroustrup) - might be outdated
The Practice of Programming (Kernighan & Pike)

**GENERAL PROGRAMMING**
Agile Software Development (Robert Cecil Martin)
Beyond Software Architecture (Luke Hohmann)
Code Complete: 2nd Edition (Steve McConnell)
Debugging (David J. Agans)
Domain-Driven Design (Eric Evans)
How to Break Software (James A. Whittaker)
Lean Software Development (Poppendieck & Poppendieck)
Refactoring: Improving the Design of Existing Code (Fowler, et al.)
The Mythical Man-Month: 20th Anniversary Edition (Frederick P. Brooks)
The Pragmatic Programmer (Hunt & Thomas)

**MAGAZINES**
C/C++ User's Journal

**STANDARD C++ NEWSGROUPS**
Discussions of the standard - For learning C or C++ - General C++ - General C++ (moderated) -
**COMPILER/OS-SPECIFIC C++ NEWSGROUPS**
==Borland==

==Digital Mars (website link)==
www.digitalmars.com/drn-bin/wwwnews?newsgroups=*

==G++/GCC==

==Microsoft==

Unfrequented or "dead" newsgroups have been ignored for both newsgroup
lists.

**WEB RESOURCES**
1 C++ Street - www.1cplusplusstreet.com
About.com (C/C++/C# tutorials) - cplus.about.com
ACCU - www.accu.org
alt.comp.lang.learn.c-c++ FAQ - www.comeaucomputing.com/learn/faq/
Bjarne Stroustrup's website - www.research.att.com/~bs/homepage.html
Boost C++ Libraries - www.boost.org
C++ Annotations 5.2.4 - www.icce.rug.nl/documents/cplusplus/
C++ Home - www.cpp-home.com
C++ Programming Language Tutorials - http://www.cs.wustl.edu/~schmidt/C++/
C/C++ Reference - www.cppreference.com
C/C++ User's Journal - www.cuj.com
CodeGuru - www.codeguru.com
comp.lang.c++ FAQ - www.parashift.com/c++-faq-lite/
Compiler lists - www.compilers.net
cplusplus.com - www.cplusplus.com
Cprogramming.com (C & C++) - www.cprogramming.com
Dev-C++ (free IDE) - www.bloodshed.net
DevCentral - devcentral.iftech.com
DevX - www.devx.com
Dictionary of Algorithms and Data Structures - http://www.nist.gov/dads/
Dinkumware STL reference - www.dinkumware.com/refxcpp.html
flipCode - www.flipcode.com
Function pointer tutorials - www.functionpointer.org
FunctionX - www.functionx.com/cpp/
GCC - gcc.gnu.org
Herb Sutter's website - www.gotw.ca
List of free books - www.tcfb.com/freetechbooks/bookcpp.html
MSDN (Visual C++) - msdn.microsoft.com/visualc/
Nicolai M. Josuttis' website - www.josuttis.com
OO Tips - www.ootips.org
Paul Hsieh's Tech Page - http://www.azillionmonkeys.com/qed/tech.shtml
Programmers' Heaven - www.programmersheaven.com
ProgrammerTutorials.com - www.programmertutorials.com
Scott Meyers' website - www.aristeia.com
Steven C. Dewhurst's website - www.semantics.org
The C++ Programming Lar - apurvaslair.50g.com/cpp/index.html
The Code Project - www.codeproject.com

**FREE ONLINE BOOKS**
Bruce Eckel's Thinking in C++ (Volumes One and Two) are available at
www.mindview.net/Books/TICPP/ThinkingInCPP2e.html . You can also
read them online without downloading them if you go to
jamesthornton.com/eckel/
 
M

Mike Tyndall

-Books added:
C++ Coding Standards (Required Reading - upcoming)
Memory as a Programming Concept in C and C++
Scientific and Engineering C++
Writing Secure Code: 2nd Edition

Dagnabbit! I never added these to the list. Here's what it would look like:

**REQUIRED READING**
C++ Coding Standards (Sutter & Alexandrescu)

**OTHER C++ BOOKS**
Memory as a Programming Concept in C and C++ (Frantisek Franek)
Scientific and Engineering C++ (Barton & Nackman)
Writing Secure Code: 2nd Edition (Howard & Leblanc)

Next time I'll wait a little while before posting :)

//mike tyndall
 
S

Steven T. Hatton

Mike said:
Yet another small fix. This should be www.function-pointer.org

//mike tyndall

Interestingly I have most of the books on your required reading list, and
the only C++ books I have that didn't make the list are either antiquated,
such as the C++ARM, Ira Pohl's first edition, and Horstmann's first
edition, or quite respectable in their own right, for example Lippman's
"Inside the C++ Object Model, or the O'Reilly "C++ Pocket Reference". The
only two books I've read extensively thus far are TC++PL(SE), and the
Pocket Reference.

But I am really replying to your message to make an observation about
function pointer, and particularly the examples presented on the link you
provided. I've been seriously considering using a very similar approach to
passing events that deal with propagating state changes. I plan of filling
the array(or vector) of function pointers with functors containing the
propagating data, as well as the means to invoke the modifier functions on
the listener. I haven't weighed the pros and cons of this very closely, so
it's hard to say how well it will work in practice.
 
J

John Harrison

All books are available on Amazon and probably on eBay. Please reply to
this message if you feel it could be improved in any way (removing books,
adding books, recommending books, general suggestions, etc.).

Remember, please feel free to criticize any part of this list or offer
suggestions.

In the general programming section how about adding the 'wizard book',
Structure and Interpretation of Computer Programs by Abelson and Sussman.
Any C++ programmer who reads this will get a feel for a style of programming
that is completely different from normal C++ styles, which is no bad thing.

Probably the best general programming book I have ever read.

john
 
M

Mike Tyndall

John Harrison said:
In the general programming section how about adding the 'wizard book',
Structure and Interpretation of Computer Programs by Abelson and Sussman.
Any C++ programmer who reads this will get a feel for a style of programming
that is completely different from normal C++ styles, which is no bad thing.

Probably the best general programming book I have ever read.

Sounds good! I'll add it next time.

//mike tyndall
 
D

David Hilsee

But I am really replying to your message to make an observation about
function pointer, and particularly the examples presented on the link you
provided. I've been seriously considering using a very similar approach to
passing events that deal with propagating state changes. I plan of filling
the array(or vector) of function pointers with functors containing the
propagating data, as well as the means to invoke the modifier functions on
the listener. I haven't weighed the pros and cons of this very closely, so
it's hard to say how well it will work in practice.

Are you using something like Loki's Functor?
 
A

apm

Mike Tyndall said:
Sorry I'm late, everybody! I'll try to post it nearer the start of the month
next time.
**OTHER C++ BOOKS**
Industrial Strength C++ Rules and Recommendations (Henricson & Nyquist)

FYI this book is out of print and AFAIK it is not going to be
reprinted, despite the demand. The authors have made the book
available as a PDF download from
http://hem.passagen.se/erinyq/industrial.

Regards,

Andrew Marlow
 
M

Mike Tyndall

Sorry I'm late, everybody! I'll try to post it nearer the start of the
month
FYI this book is out of print and AFAIK it is not going to be
reprinted, despite the demand. The authors have made the book
available as a PDF download from
http://hem.passagen.se/erinyq/industrial.

Thanks for the info. I'll put it with the Thinking in C++ books on the list
next time.

//mike tyndall
 
I

Ioannis Vranos

apm said:
FYI this book is out of print and AFAIK it is not going to be
reprinted, despite the demand. The authors have made the book
available as a PDF download from
http://hem.passagen.se/erinyq/industrial.


Looks great, however then I checked the publishing date and it is 1997.
Then I wondered how much C++98 compliant could be, and searched for the
word iostream. And unfortunately it is iostream.h.
 
M

Mike Tyndall

FYI this book is out of print and AFAIK it is not going to be
Looks great, however then I checked the publishing date and it is 1997.
Then I wondered how much C++98 compliant could be, and searched for the
word iostream. And unfortunately it is iostream.h.

Obviously that's a problem, but the book's still good, right? I could just
note on the list that it's best not to read it until you have some
experience.

//mike tyndall
 
G

Gregg

Obviously that's a problem, but the book's still good, right? I could
just note on the list that it's best not to read it until you have
some experience.

//mike tyndall

Some of its recommendations differ from those of other well-regarded
books. For example, recommendation 11.2, "Remove all assertions from
production code". I just got finished reading in "The Pragmatic
Programmer", Hunt and Thomas, that I should leave assertions turned on
(page 123), and that they should be disabled only for performance
reasons. In fact, a particular usage of assertive programming called
design by contract is recommended by them.

Gregg
 
I

Ioannis Vranos

Gregg said:
Some of its recommendations differ from those of other well-regarded
books. For example, recommendation 11.2, "Remove all assertions from
production code". I just got finished reading in "The Pragmatic
Programmer", Hunt and Thomas, that I should leave assertions turned on
(page 123), and that they should be disabled only for performance
reasons. In fact, a particular usage of assertive programming called
design by contract is recommended by them.

Well in theory, in production code assert() should be disabled since it
doesn't provide anything to the end user other than redundant logical
checks not needed in production code.

For run-time error handling use exceptions.
 
G

Gregg

Well in theory, in production code assert() should be disabled since it
doesn't provide anything to the end user other than redundant logical
checks not needed in production code.

That assumes you are shipping bug-free code. What it provides to the end
user is code that does not keep running after it has entered a state in
which it should have stopped, thereby risking corrupting the user's data.
It also provides the ability to provide feedback that can help provide
the user with bug fixes.
For run-time error handling use exceptions.

Depends on what kind of run-time error, how you want to handle it, and
whether the system can produce a stack trace in the case of an unhandled
exception.

Also, assertions do not have to be macros. THey can be implemented as
exceptions. I believe Stroustrup has a template example of this in C++
Programming Language book.

Gregg
 
Joined
Dec 2, 2007
Messages
1
Reaction score
0
Urgent

Hi,

The following books, i want to download free (ebooks), from where, i can get all these. Help me.

Multi-Paradigm Design for C++ (James Coplien)
Object-Oriented Multithreading using C++ (Hughes & Hughes)
Practical Debugging in C++ (Ford & Teorey)


Waiting for your reply.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top