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
is a useful reference to have as you work through the other books.
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.
- 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
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
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
- 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
- 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
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
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
and a host of other issues. You also get coverage of powerful language
features and issues like
- 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
This book teems with practical advice and wisdom, along with a healthy dose of
clear explanations of powerful designs.
- const-correctness and mutability
- the explicit keyword and why it's useful
- advanced use of templates, including specialization and partial
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