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
Proper credit: vawjr, who now has this posted.

The following is also recommended.
C++ Coding Standards : 101 Rules, Guidelines, and Best Practices , Herb Sutter, Andrei Alexandrescu
Consider adding C++ Coding Standards to that list. It is by Sutter and Alexandrescu, and has an excellent compilation and mini-discussion of many of the topics discussed in greater detail in the other books. It is not a coding standards book, but rather a guide to best practices in C++ code and would fit perfectly as an introduction or summary of many of the other books on that list (after Accelerated C++).Book reviews can also be found at www.accu.org : Beginner's C++ .

Sulley's Boo commented: :cool: +3
jackmaverick1 commented: Great Post +1
Anuradha Mandal commented: good post +0
dandrona commented: << +0
choeurn.socheat commented: It's good +0

Recommended Answers

All 138 Replies

Time for a Big Bump.

I'd like to add a title or two as well, which even though not C++ specific should be required reading for any serious student (or practitioner) of software development.

I have a great recommendation, this is a cheap book, full colour, and extremely detailed, im from the UK, here its £10.99, so thats about $20 roughly.
Its called C++ In Easy Steps

There's another veru nice book
Thinking In C++,2nd Edition by Bruce Eckel

commented: I will also recommend ths same book . . . +0

Im currently Reading

Beginning C++ Game Programming by Michael Dawson

I just started but I really like this book because it goes at an evne pase and after every program explains what each section of source code means does and why it does that.

Sam's Teach yourself C++ in 10 minutes by Jesse Liberty

This book takes you about 10 minutes for each lesson so its good if you are on a busy schedule but 4 me its goes really fast and the chapters are so short its hard to understand some thing. If I had not read Beginning C++ Game Programming first I would have been lost in this book.

*the compiler that comes with Beginning C++ Game Programming is one of the best ive seen.

here is a small list of Free C/C++ programming books. They may help you a bit in programming.
C++ GUI Programming with Qt 3
C Programming Tutorial (K&R version 4)
C Elements of Style
A Beginners C++
C++ Annotations

and many more....

http://www.mycplus.com/forum/forum_topics.asp?FID=46 here is the link to download the books.

noticed some one mentioned about Sams teach yourself c++ in 10 minutes, just wondering why no body recommend its cousin:

Sams teach yourself c++ in 21 days by the same author: Jesse Liberty

a great book for beginners, if you have the time to read through the whole book. It is really detailed and gives tons of good examples.

I'm reading "C++ Primer 4th edition" by Stan Lippman, Josee Lajoie, and Barbara Moo at the moment, it would be categorised as progression to intermediate level of C++ for someone with prior programming experience. Seems like a decent book so far (unlike the previous editions of C++ Primer, or so I've read from reviews at Amazon).

commented: NIce Book ~~SpS +3

Absolute C++ by Walter Savitch is a pretty good book too. Thats the one that I used back in the days when I was a begginer (and that was a long long time ago).

One of the biggest problems with C++ books older than 1999/2000 is that they do not recognise alot of modern Standard C++ content. A problem commonly found with "revised" books after 1999/2000 (Books which were originally published long before C++ was standardised, but have been updated) is that the Standard C++ content has very much been added as an afterthought, with little or no reflection upon the rest of the book. So many books suffer from this lack of exertion on the part of the author, that these books end up being very unhelpful to someone learning modern C++

C++ really took a whole new direction since the Standard was finalised, and any book which has ignored the progress made by the ISO committee really isn't worth buying for someone who is new to C++.
The comparitively small number of books (sic*) which do follow the direction of C++ are generally found reviewed and rated "Recommended" or "Highly Recommended" at the ACCU website.


*Compared with the vast number of truly awful ones :)

There's another veru nice book
Thinking In C++,2nd Edition by Bruce Eckel

Bruce Eckel's "Thinking in C" is an audio-visual primer (similar to a university lecture) that explores the major features of C, designed to prepare the audience for further studies in Java and/or C++. The material is still in development (Beta 3 at the time of this post) and unfortunately there are there are some minor issues such as voice overs. Occasionally Chuck Allison gets too close to the microphone and becomes difficult to hear. That being said, the material is very well laid out and explained. Exercises are provided at the end of each chapter. Solutions are provided and dissected. I would not recommend this to a complete beginner with no prior programming experience because the material goes by fairly quickly. If you are self-studying as I am, you would most likely find it helpful to have some sort of reference handy or another text handy as a supplement. It can be a pain to rewind constantly and listen to a paragraph numerous times and I find it's easier to just learn from the book and go back to the slides later) Both &quot;Thinking in C&quot; and &quot;Thinking in C++&quot; are available on www.mindview.net and can be downloaded free of charge, though a hardcopy of the latter be purchased.

I have the book "Wiley's Teach Yourself C++", is this book at all useful or should I invest in some of the other books that are listed above?

Any "teach yourself XXX in YYY" or "XXX for dummies" book isn't worth the paper it's printed on if you're serious about learning more than the very basics.

Despite this book's title, it's actually aimed more at "intermediate" beginners if you know what I mean. It teaches C++ very throughly, but can be a bit steep for newbies. (The back of the book says level is "Beginning to Intermediate".) However, I would recommend this book to anyone who already knows basic C++ and is ready to learn the entire language.

You can get it directly from the publisher:
http://ca.wiley.com/WileyCDA/WileyTitle/productCd-0764526448.html

Despite this book's title, it's actually aimed more at "intermediate" beginners if you know what I mean. It teaches C++ very throughly, but can be a bit steep for newbies. (The back of the book says level is "Beginning to Intermediate".) However, I would recommend this book to anyone who already knows basic C++ and is ready to learn the entire language.

No, i think the books with "beginner to intermediate" are actually for total newbies coz i have seen them and they really explain the topic in a manner which can be easily understood by everyone. Of course without putting in effort from your own side it is not possible for any student to learn anything new so many newbies blame the book for their lack of effort.

For beginners Deitel's "Beginning C++" is really a nice book with concepts from ground up for total newbies to programming language.
For advanced C++ and OOPS i would recommend, C++ programming language by the inventor of C++.

Hope it helped, bye

Just thought I'd mention one book that my brothers and I all used growing up. It's the C for dummies series by Dan Gookin. You can still find them on pretty much any book site. And what I like about them is it keeps the learning curve interesting. Lots of jokes and positive info, and it tries to explain things in layman's terms. I really enjoyed it. So did my brothers.

C Unleashed by Richard Heathfield and friends should cover most of what you need.

Hello.

You can also read the description of "Advanced C".

From what I have heard its a good book for all topics. Worth aleast looking at.

Thank you.

I like C++ Demystified by Jeff Kent, It's easy (for me) to understand and it is really an introductory book and I recommend it for anyone starting programming from scratch!!!

I thought of posting some links I have found about free tutorials or free
books to download with the permission of the author.

# Optimizing C++
Optimizing C++ provides working programmers and those who intend to be working programmers with a practical, real-world approach to program optimization. Many of the optimization techniques presented are derived from my reading of academic journals that are, sadly, little known in the programming community. This book also draws on my nearly 30 years of experience as a programmer in diverse fields of application, during which I have become increasingly concerned about the amount of effort spent in reinventing optimization techniques rather than applying those already developed.
http://www.bestebooksworld.com/ebook/1214

# ZooLib Cookbook
ZooLib is a cross-platform application framework. What it allows you to do is to write a single set of C++ sources and compile for different operating systems and microprocessors to produce native executable applications with very little need for platform-specific client code. This is of great benefit to a developer, as it allows you to support your application on a variety of platforms without a lot of extra work developing parallel codebases. It also allows you to spend the bulk of your time developing on whatever platform you enjoy the most while delivering for the platforms your users need, even if they're not the same.
http://www.bestebooksworld.com/ebook/1211


# C++ Reference Guide
Extensive guide on using Standard Template Library.
http://www.bestebooksworld.com/ebook/1210

# Teach Yourself C++ in 21 Days
Computer languages have undergone dramatic evolution since the first electronic computers were built to assist in telemetry calculations during World War II. Early on, programmers worked with the most primitive computer instructions: machine language. These instructions were represented by long strings of ones and zeroes. Soon, assemblers were invented to map machine instructions to human-readable and -manageable mnemonics, such as ADD and MOV. In time, higher-level languages evolved, such as BASIC and COBOL. These languages let people work with something approximating words and sentences, such as Let I = 100. These instructions were translated back into machine language by interpreters and compilers. An interpreter translates a program as it reads it, turning the program instructions, or code, directly into actions. A compiler translates the code into an intermediary form. This step is called compiling, and produces an object file. The compiler then invokes a linker, which turns the object file into an executable program. Because interpreters read the code as it is written and execute the code on the spot, interpreters are easy for the programmer to work with. Compilers, however, introduce the extra steps of compiling and linking the code, which is inconvenient. Compilers produce a program that is very fast each time it is run. However, the time-consuming task of translating the source code into machine language has already been accomplished. Another advantage of many compiled languages like C++ is that you can distribute the executable program to people who don't have the compiler. With an interpretive language, you must have the language to run the program.
http://www.bestebooksworld.com/ebook/1216

# Who's Afraid of C++?
Whether you are using this book on your own or in school, there are many good reasons to learn how to program. You may have a problem that hasn't been solved by commercial software; you may want a better understanding of how commercial programs function so you can figure out how to get around their shortcomings and peculiarities; or perhaps you're just curious about how computers perform their seemingly magical feats. Whatever the initial reason, I hope you come to appreciate the great creative possibilities opened up by this most ubiquitous of modern inventions.
http://www.steveheller.com/cppad/cppad.htm

# Programming in C: UNIX System Calls and Subroutines using C
In order to use Solaris and most other Unix Systems you will need to be familiar with the Common Desktop Environment (CDE). Before embarking on learning C with briefly introduce the main features of the CDE. Most major Unix vendors now provide the CDE as standard. Consequently, most users of the X Window system will now be exposed to the CDE. Indeed, continuing trends in the development of Motif and CDE will probably lead to a convergence of these technologies in the near future. This section highlights the key features of the CDE from a Users perspective.
http://www.bestebooksworld.com/ebook/1217

# Numerical Recipes in C
The new and greatly expanded second edition of the highly popular Numerical Recipes in C features over 100 new routines and upgraded versions of the original routines. The book remains the most practical, comprehensive handbook of scientific computing available today.
http://www.bestebooksworld.com/ebook/1218

# How to Think Like a Computer Scientist (C++)
The goal of this book is to teach you to think like a computer scientist. I like the way computer scientists think because they combine some of the best features of Mathematics, Engineering, and Natural Science. Like mathematicians, computer scientists use formal languages to denote ideas (specifically computations). Like engineers, they design things, assembling components into systems and evaluating tradeoffs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions. The single most important skill for a computer scientist is problem-solving. By that I mean the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. As it turns out, the process of learning to program is an excellent opportunity to practice problem-solving skills. That's why this chapter is called 'The way of the program.' Of course, the other goal of this book is to prepare you for the Computer Science AP Exam. We may not take the most direct approach to that goal, though. For example, there are not many exercises in this book that are similar to the AP questions. On the other hand, if you understand the concepts in this book, along with the details of programming in C++, you will have all the tools you need to do well on the exam.
http://www.bestebooksworld.com/ebook/1219

# Writing Bug-Free C Code
This book describes an alternate class methodology that provides complete data hiding and fault-tolerant run-time type checking of objects in C programs. With it, you will produce code that contains fewer bugs. The class methodology helps to prevent bugs by making it easier to write C code. It does this by eliminating data structures (class declarations) from include files, which makes a project easier to understand (because there is not as much global information), which makes it easier to write C code, which helps to eliminate bugs. This class methodology, which uses private class declarations, is different from C++, which uses public class declarations. The class methodology helps detect bugs by providing for both compile-time and run-time type checking of pointers (handles) to class objects. This run-time type checking catches a lot of bugs for you since invalid object handles (the cause of a lot of bugs) are automatically detected and reported. We have all, at some point in our programming careers, spent several hours or days tracking down a particularly obscure bug in our code. Have you ever stepped back and wondered how following a different programming methodology might have prevented such a bug from occurring or have automatically detected it? Or have you tracked down the same type of bug several times?
http://www.bestebooksworld.com/ebook/1220

# The C Book
This is not a tutorial introduction to programming. The book is designed for programmers who already have some experience of using a modern high-level procedural programming language. As we explain later, C isn't really appropriate for complete beginners—though many have managed to use it—so the book will assume that its readers have already done battle with the notions of statements, variables, conditional execution, arrays, procedures (or subroutines) and so on. Instead of wasting your time by ploughing through tedious descriptions of how to add two numbers together and explaining that the symbol for multiplication is *, the book concentrates on the things that are special to C. In particular, it's the way that C is used which is emphasized.
http://www.bestebooksworld.com/ebook/1221

# Data Structures and Algorithms with Object-Oriented Design Patterns in C++
This book was motivated by my experience in teaching the course E&CE 250: Algorithms and Data Structures in the Computer Engineering program at the University of Waterloo. I have observed that the advent of object-oriented methods and the emergence of object-oriented design patterns has lead to a profound change in the pedagogy of data structures and algorithms. The successful application of these techniques gives rise to a kind of cognitive unification: Ideas that are disparate and apparently unrelated seem to come together when the appropriate design patterns and abstractions are used.
http://www.bestebooksworld.com/ebook/1222

# C++ FAQ Lite
Frequently Asked Questions for C++.
http://www.bestebooksworld.com/ebook/1223

# Thinking in C++, 2nd Edition
Two volumes of Bruce Eckel's book, one of the easiest to read and most definitive titles for C++.
http://www.bestebooksworld.com/ebook/1224


# A library of internal sorting routines
This is a collection of sorting algorithms, in C. All the examples are thoroughly tested using random input generation and assertions, there are no known bugs. I've been using these, especially the fastest ``sedgesort'', in production code.
http://www.bestebooksworld.com/ebook/3695

# C++ in 2005
This extended foreword presents a perspective on 'The Design and Evolution of C++' and on C++ itself. In particular, it reflects on the use of C++ over the last decade and presents plausible directions for the next revision PDF]
http://www.bestebooksworld.com/ebook/3700

# C++ Language Summary
This document provides neither a complete nor rigorous description of the C++ language. It does, however, describe the features of the language that are most useful to engineers and scientists.
http://www.bestebooksworld.com/ebook/3701

# Accelerated C++Practical Programming by Example
Download Free Source Code
http://www.bestebooksworld.com/ebook/3702


# C and C++
Free Tutorials
http://www.bestebooksworld.com/ebook/3703

# C++ Glossary
Online Free Tutorials
http://www.bestebooksworld.com/ebook/3704


# Tips and tricks for using C++ I/O (input/output)
Tips and tricks for effectively using input and output in C++
http://www.bestebooksworld.com/ebook/3705


# C++ Pitfalls
Many examples of code that does compile, link and run but does something unexpected.
http://www.bestebooksworld.com/ebook/3706

# C++ Programming Tutorials
A brief C++ Tutorial
http://www.bestebooksworld.com/ebook/3707

# C++ Tip-of-the-Day
Welcome to the C++ Tip-of-the-Day. This is a compilation of information gathered from various sources.
http://www.bestebooksworld.com/ebook/3710

# C++
This offers C++ Programs, Source codes, compiler information
http://www.bestebooksworld.com/ebook/3708


# C++ Programming Language Tutorials
These tutorials were developed as part of a series of courses on C++
http://www.bestebooksworld.com/ebook/3709


# Tech Talk About C++ and C Comeau C++ and C FAQ
The intent of this page is to address questions about C++ and C that come up often, perhaps too often. However, it is exactly the frequency of these topics that is the reason for including a discussion of them below. These issues usually come up as having originated from a misleading statement commonly made, or from code shown in a book.
http://www.bestebooksworld.com/ebook/3711


# C++ FAQ LITE
Frequently Asked Questions In C++
http://www.bestebooksworld.com/ebook/3712


# On Refactoring C++ Code
Free Tutorials
http://www.bestebooksworld.com/ebook/3714

# Pointers to C++ Member Functions
A tutorial on a useful yet poorly understood language feature, useful as a cache or to enable a different sort of polymorphism.
http://www.bestebooksworld.com/ebook/3715


# A few notes concerning C++ integral data types
On this page, a few sides of dealing with whole numbers in C++ are described. In particular, a few notes and examples are reported that could help avoiding mistakes while using integers.
http://www.bestebooksworld.com/ebook/3716

# Techniques for Scientific C++
This report summarizes useful techniques for implementing scientific programs in C++, with an emphasis on using templates to improve performance.
http://www.bestebooksworld.com/ebook/3717


# C Categories
C Languages Code Tutorials
http://www.bestebooksworld.com/ebook/3632

# C++ Code Examples
C++ Code Tutorials
http://www.bestebooksworld.com/ebook/3633


# Casting in C++: Bringing Safety and Smartness to Your Programs
The new C++ standard is full of powerful additions to the language: templates, run-time type identification (RTTI), namespaces, and exceptions to name a few. Rather than talk about one of these ``major'' extensions, I will discuss one of the minor extensions: the new C++ casting operators.
http://www.bestebooksworld.com/ebook/3740


# Guide to Network Programming(C++)
Hey! Socket programming got you down? Is this stuff just a little too difficult to figure out from the man pages? You want to do cool Internet programming, but you don't have time to wade through a gob of structs trying to figure out if you have to call bind() before you connect(), etc.
http://www.bestebooksworld.com/ebook/3741


# Connecting to an Ms Access Database via ODBC with C/C++
Connecting to an MS Access Database via ODBC with C/C++ and connecting an MS Access Database to the Internet.
http://www.bestebooksworld.com/ebook/3743


# Pointers
Pointer Tutorial
http://www.bestebooksworld.com/ebook/3744

# Using Namespaces Properly ( C++)
Namespaces are a very powerful C++ language feature. This article does not teach you the syntax of namespaces. Rather, it shows you how to use them properly.n my AP Computer Science class in a very condensed context. Here is an index of the different features of the C++ language that I will be going over.
http://www.bestebooksworld.com/ebook/3745


# Is Ada a better C?
This is an article which appeared in EXE magazine in May 1997, under the slightly modified title of 'Ada better than C++?', comparing C++ and Ada language facilities under DOS.
http://www.bestebooksworld.com/ebook/3753


# A Beginners C++
A Beginners C++ is primarily intended for introductory Computer Science courses that use C++ as an implementation language. However, the book should be equally suited to an individual who wants to learn how to program their own personal computer.
http://www.bestebooksworld.com/ebook/1535


# Data Structures and Algorithms with Object-Oriented Design Patterns in C++
This book was motivated by my experience in teaching the course E&CE 250: Algorithms and Data Structures in the Computer Engineering program at the University of Waterloo. I have observed that the advent of object-oriented methods and the emergence of object-oriented design patterns has lead to a profound change in the pedagogy of data structures and algorithms. The successful application of these techniques gives rise to a kind of cognitive unification: Ideas that are disparate and apparently unrelated seem to come together when the appropriate design patterns and abstractions are used.
http://www.bestebooksworld.com/ebook/1539


# Optimizing C++
Optimizing C++ provides working programmers and those who intend to be working programmers with a practical, real-world approach to program optimization. Many of the optimization techniques presented are derived from my reading of academic journals that are, sadly, little known in the programming community. This book also draws on my nearly 30 years of experience as a programmer in diverse fields of application, during which I have become increasingly concerned about the amount of effort spent in reinventing optimization techniques rather than applying those already developed.
http://www.bestebooksworld.com/ebook/1540

# C++: A Dialog.

http://www.bestebooksworld.com/ebook/1541


# Numerical Recipes in C
Thanks to special permission from Cambridge University Press, we are able to bring you the complete Numerical Recipes in C book On-Line! To utilize this resource, you will need an Adobe Acrobat viewer linked as a helper program to your web browser. Permission is granted by the copyright owners for users of this resource to make one paper copy of these Acrobat files for their own personal use. Further reproduction, or the extraction of, or copying of, machine readable files to any server computer, is strictly prohibited. This on-line resource is not intended as a substitute for purchasing the book, or for obtaining a license for the use of Numerical Recipes source code.
http://www.bestebooksworld.com/ebook/1544

# C Programming
This material may not be reproduced in printed or electronic format without the express permission of the author. Where permission is granted to host these files on a mirror or local site, the original copyright must remain intact.
http://www.bestebooksworld.com/ebook/1739

commented: Very nice :) +4
commented: Thanks, good books +0

2 books I've kept over my desk for reference for the last 8 yrears:

Applications Programming in ANSI C by Johnsonbaugh and Kalin

Object-oriented Programming in C++, same authors.

Designed as course books, but with a very high hit-rate for looking things up.

At the uni I go to we have used:

An introduction to Programming using C++ (Zak), Big C++ (Wiley) and C++ Programming: Program Design including Data Structures (Malik).

Has anyone else used these books ? I haven't found them too bad.

The "C++ Programming HOW−TO" I would recommend neither to beginners nor those who have gotten to the stage in which they can recognize many of the issues in the outdated code.

I think "Software Engineering a practitioners approach" by Roger S. Pressman is a great addition. Although not cheap(unless you buy the international editions now available). It is a great book on teaching the process on must go through to write, develop and implement problem solving skills needed to program.

The majority of programming is problem solving, one must know the correct steps to do so.

Do not get "The c++ Programming Language Third Edition" first, i got stuck very quickly as a newbie.

I make good progress using "Accelerated C++ 2000" however, alot easier to understand.

Also www.learncpp.com is a great free guide! The most beginner-friendly i have encountered so far.

I was thinking about C++ Primer Plus 5th edition. It got a lot of good reviews, like 70 something reviews with only like betweeen the 1st and 3rd star, there is probably only one each of them.

Do not get "The c++ Programming Language Third Edition" first, i got stuck very quickly as a newbie.

I make good progress using "Accelerated C++ 2000" however, alot easier to understand.

Also www.learncpp.com is a great free guide! The most beginner-friendly i have encountered so far.

The 4th edition by D.S. Malik is a little easier to understand

Coplien's "Advanced C++ Programming Styles and Idioms".
This is the original book that shows how C++ was used in the years of testing and experimentation, before official release; how the language is designed to be used.
It was published long before STL, Patterns, or Boost, so separate specialized sources are better for those important areas.

Here are some of the Books I have collected and I recommend:

C++ Primer Plus The Waite Group SAMS
This is good for intermedia coders to the C++ language.
Using C++ McGregor QUE
This is good for just past beginners.
Deitel and Deitel C++;
The above is excellent for beginners.
C++ Builder Unleashed by Charly Calvert.
This is good for those with C++ Skills and want automatically want to be able to generate
forms in C++ instead of faffinf around with MFC etc.
Add those to all the PDF for C++ Ive read for over 10 years and the best of which was Herbert Schildt and O Reilly Books on C are not so great.
The Idiots Guide to C++ is a very good introduction to working with pizzas and object orientated programming.

Can we get some new updated sticky of newer books. C++ standards have changed a lot since most of these books were published (2004~5). Specially if we are talking about windows based software.

Some of the two good ones I found are:
Ivor Horton's Beginning Visual C++ (2010) [can be found online]
C++ How to Program (7th Edition)

Ivor Horton's Beginning Visual C++ 2008 is the best c++ book if you want to learn the c++ language with visual studio/clr improvements as it uses win32 c++ and clr (which is c++'++').

If you want to learn c++ so you can go on to another language or you don't want to learn how to make guis, then get "c++, a beginner's guide".

There is a free download of it on the msdn website
http://msdn.microsoft.com/en-us/beginner/cc305129.aspx

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.