You are here:

C++/books on c/c++


dear ralph mcArdell

as the question subject suggests, i would like to know what are the best books for a beginner to start learning the c/c++ language. I have some experience with java, but no experience with the c/c++ language at all.

i am a self-taught computer scientist, so i would appreciate if you give me some advice about effective techniques to learn the c/c++ programming language, and/ or titles of recommended c/c++ books for beginners

thank you very much

There are many books on C++ but not many good ones for beginners. For those like yourself who already have some programming experience people often recommend:

"Accelerated C++" by Koenig and Moo

although I myself have not read it.

For general good C++ usage you should look at:

"Effective C++" "More Effective C++" and "Effective STL" by Scott Meyers

and the more advanced:

"Exceptional C++" and "More Exceptional C++" by Herb Sutter (See also
"Modern C++ Design" by Andrei Alexandrescu
"Ruminations on C++" by Koenig and Moo

(Herb Sutter also has a couple of new books out that I have not yet had the time to read: "Exceptional C++ Style" and "C++ Coding Standards" in conjunction with Andrei Alexandrescu).

For C++ reference you should look at:

"The C++ Programming Language" 3rd Ed. by Bjarne Stroustrup

the C++ reference book from the man himself. In addition you will most likely find that a couple of additional reference works will be of use. For the standard C++ library there is:

"The C++ Standard Library - a tutorial and reference" by Nicolai M. Josuttis - one of my most referred to books.

and for C++ templates there is:

"C++ Templates the Complete Guide" by David Vandevoorde and Nicolai M. Josuttis

The final reference work I am going to recommend is the C++ standard document itself which is published in book form by Wiley or is available for download as a PDF from the ANSI web site for $18 (price the last time I checked):

"INTERNATIONAL STANDARD ISO/IEC 14882 Programming Languages C++"

the book is just titled:

"The C++ Standard"

You might also like to consider obtaining a copy of the C language standard as well.

There are many books on programming in general that are good. I found:

"The Practice of Programming" by Kernighan and Pike

to be particularly useful.

Finally, there should be a C++ FAQ at:

and lots of book reviews and resource links at:

If you join the ACCU then they have mentored developer projects you can participate in including a "Begin C++" project.

As to techniques - the best one is to practice, practice, practice.

If possible you could get hold of good C++ code to use as examples of best practice (of course this begs the question of what is good C++ code!). Many of the books I recommended have advice of good C++ practice as well. Try to understand why these recommendations have been made and follow them as far as practical, but remember that the rule is that every rule has an exception. So use your own judgement as well.  


All Answers

Answers by Expert:

Ask Experts


Ralph McArdell


I am a software developer with more than 15 years C++ experience and over 25 years experience developing a wide variety of applications for Windows NT/2000/XP, UNIX, Linux and other platforms. I can help with basic to advanced C++, C (although I do not write just-C much if at all these days so maybe ask in the C section about purely C matters), software development and many platform specific and system development problems.


My career started in the mid 1980s working as a batch process operator for the now defunct Inner London Education Authority, working on Prime mini computers. I then moved into the role of Programmer / Analyst, also on the Primes, then into technical support and finally into the micro computing section, using a variety of 16 and 8 bit machines. Following the demise of the ILEA I worked for a small company, now gone, called Hodos. I worked on a part task train simulator using C and the Intel DVI (Digital Video Interactive) - the hardware based predecessor to Indeo. Other projects included a CGI based train simulator (different goals to the first), and various other projects in C and Visual Basic (er, version 1 that is). When Hodos went into receivership I went freelance and finally managed to start working in C++. I initially had contracts working on train simulators (surprise) and multimedia - I worked on many of the Dorling Kindersley CD-ROM titles and wrote the screensaver games for the Wallace and Gromit Cracking Animator CD. My more recent contracts have been more traditionally IT based, working predominately in C++ on MS Windows NT, 2000. XP, Linux and UN*X. These projects have had wide ranging additional skill sets including system analysis and design, databases and SQL in various guises, C#, client server and remoting, cross porting applications between platforms and various client development processes. I have an interest in the development of the C++ core language and libraries and try to keep up with at least some of the papers on the ISO C++ Standard Committee site at


©2016 All rights reserved.