So you wanna learn C++?

A Book Sequence: From C++ Beginner To C++ Expert

Do you really want to learn C++ and learn it well? If you put in the time to go really through this book series, you will learn C++.

With it, you can go from beginner to expert by following our recommended C++ "Beginner to Expert" programmer's bookshelf. The books are listed in the order you should read them, but The C++ Programming Language is a useful reference to have as you work through the other books.

2. Practical C++ Programming

The second most popular book bought by our readers. Now that you have a sense of how the language works, you're ready to learn something about putting it into practice. Practical C++ Programming delves into more depth in many areas; you'll learn practical tips for using the language and writing better code.

Topics include
  • Understanding how to write better code
  • Writing code for others
  • Anecdotes and experiences
  • Performance tuning tips, learn to make your code faster
  • Learn to take advantage of the tools of programmers
  • Coverage of advanced topics like templates (write less code to do more)
  • Debugging tips and bug prevention
  • an explanation of how floating point numbers work


3. Programming Pearls

So you've got some basic skills and learned to think like a programmer. Now it's time to test yourself. Programming Pearls will throw fifteen challenging scenarios at you. Moreover, this is one of my absolute favorite books on programming: it's just a lot of fun.

Fun aside, you'll learn
  • how to reformulate problems to write cleaner solutions
  • more performance tips and a length performance tuning reference
  • powerful techniques for estimating performance and the limits of your programs
  • how to demonstrate that your programs work
  • a host of powerful algorithms and creative ways of applying them.
  • a variety of simple tricks to write cleaner, shorter code
You also get an enormous collection of programming puzzles that commonly show up at job interviews. This is a great book both to equip yourself with an understanding of a variety of important algorithms and to learn


4. Effective C++ : 55 Specific Ways to Improve Your Programs and Designs

This is the first book that really sets you apart. Once you've read it, you'll have an arsenal of tools to throw at any programming problem. Although you probably won't find yourself using all 50 tips, you'll learn many of the nuances of C++ and avoid numerous pitfalls--shortly after I read this book the first time, I found myself catching bugs merely from the material gleaned from a few of the tips.

Among the things you'll learn:
  • what functions are always part of a class and why it matters to you
  • how to write code designed for others to use
  • what to watch out for when writing an assignment operator
  • simple techniques that can lead to huge performance improvements
  • advanced C++ techniques, including use of the STL (with lots of examples)


5. More Effective C++: 35 New Ways to Improve Your Programs and Designs

After reading Effective C++, you'll be crying out for more of Scott Myers, and this is a great second book. The topics are more specific--and hence, less generally applicable--but the principles are sound, and the coverage is strong. You'll learn about specific design problems including
  • How to build a smart pointer using reference counting
  • A variety of ways to implement double-dispatching, and which ones are best
  • Ways to write classes that work almost the same as regular variables
and a host of other issues. You also get coverage of powerful language features and issues like
  • const-correctness and mutability
  • the explicit keyword and why it's useful
  • advanced use of templates, including specialization and partial specialization
This book teems with practical advice and wisdom, along with a healthy dose of clear explanations of powerful designs.


6. The C++ Programming Language

One of the most popular books bought by our readers. By the man who invented C++, The C++ Programming Language is the bible of C++. It covers an enormous range of topics (heck, the whole language!) Even better, you'll understand how to use the language features. Stroustrup's writing is dense at times, and parts of this book can often stand to be read multiple times to get the full impact. Nevertheless, the breadth of coverage is astonishing.

This book also serves as an excellent reference, and I keep it handy whenever I'm working with C++. If you have a question about the language, it's almost certainly answered here.

Although this book is so enormously comprehensive it's difficult to pull out a small list of what you'll learn, here are a few things you can get from this book
  • Incredible depth and breadth of coverage
  • Nuanced explanations of the language and its features
  • Descriptions of the corner cases of the language
  • Detailed explanations of the lesser-known language features--become a true expert in the details of C++


Programming Books By Category

Reading a good book is often the best way to learn how to program. Books cover more material in greater depth than most tutorials, and some books provide excellent reference sections, or act entirely as in-depth references. Our goal is to help you find the right book for you.

Read reviews of books in the following categories, or pick up some tips on getting the most out of books on programming. It should be noted that no-one will become a programming expert overnight; these books will not guarantee that you become an expert any more than reading a textbook guarantees you an A. You must put your knowledge into practice over a long period of time. These books will, however, help you gain the maximum amount of knowledge and practical advice to help reduce the learning time.