C++ Learning Materials - Books
Tags: cpp, books, beginners, programming
Published: 2021-07-12 09:28:06

The books on the list are the ones I have read and would recommend to others. For some books, reviews from goodreads are included because I completely agree with them. 

### 1. If you do not know C++, start with [C++ Primer](https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113) (5th edition)

![C++ Primer](https://images-na.ssl-images-amazon.com/images/I/41Gd9xIXrUL._SX381_BO1,204,203,200_.jpg)

From one [goodreads review](https://www.goodreads.com/review/show/147787300?book_show_action=true&from_review_page=1):

> “A really good C++ book for beginners. I mean, it probably won't work as the very first book on programming, but if you have some programming background and just want to learn C++, this should work really well. The whole thing is structured very nicely, and in the rare case when you have some questions, they are typically answered on the next page.“

### 2. If you are familiar with C++ but want to refresh your knowledge, use [A Tour of C++](https://www.amazon.com/Tour-2nd-Depth-Bjarne-Stroustrup/dp/0134997832) written by Bjarne Stroustrup, the creator of C++.

![A Tour Of C++](https://images-na.ssl-images-amazon.com/images/I/41k5ZZRFnPL._SX392_BO1,204,203,200_.jpg)

From one [goodreads review](https://www.goodreads.com/review/show/897905076?book_show_action=true&from_review_page=1):

> ”Given that I've programmed in C++ before this book was perfect for me as a re-introduction.
It doesn't really explain things in depths, but it is rather just a very quick tour of the features. Perfect for someone who's an experienced programmer and has done some low level programming, but not very useful for beginners I'm afraid. Still I'd recommend reading this, if nothing it servers as a good motivational text to keep learning more.”

### 3. If you want to learn about every detail of C++ with C++11 support, use [The C++ Programming Language](https://www.amazon.com/C-Programming-Language-4th/dp/0321563840) book

![C++ Programming Language](https://images-na.ssl-images-amazon.com/images/I/51Z-XJXiQnL._SX396_BO1,204,203,200_.jpg)

### 4. If you want to start practicing Test Driven Development (TDD) with C++, start with [Modern C++ Programming with Test-Driven Development: Code Better, Sleep Better](https://www.amazon.com/Modern-Programming-Test-Driven-Development-Better/dp/1937785483/ref=sr_1_1?dchild=1&keywords=c%2B%2B+tdd&qid=1626029147&s=books&sr=1-1)

![Modern C++ Programming With TDD](https://images-na.ssl-images-amazon.com/images/I/41ciWNq4jPL._SX415_BO1,204,203,200_.jpg)

### 5. If you want to use C++11 and C++14 features and to understand them, start with [Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14](https://www.amazon.com/Effective-Modern-Specific-Ways-Improve/dp/1491903996/ref=sr_1_5?dchild=1&keywords=c%2B%2B+11+c%2B%2B14&qid=1626029291&s=books&sr=1-5)

![Effective Modern C++](https://images-na.ssl-images-amazon.com/images/I/51qUGMia07L._SX379_BO1,204,203,200_.jpg)

### 6. If you want to write multithreaded code using C++, use [C++ Concurrency in Action: Practical Multithreading](https://www.amazon.com/C-Concurrency-Action-Anthony-Williams/dp/1617294691/ref=sr_1_1?crid=3L4QJRR8X7N0K&dchild=1&keywords=c%2B%2B+concurrency+in+action&qid=1626029456&sprefix=c%2B%2B+concur%2Caps%2C285&sr=8-1) 

![C++ Concurrency in Action](https://images-na.ssl-images-amazon.com/images/I/41kA1avGCYL._SX397_BO1,204,203,200_.jpg)

### 7. For Math theory and generic programming use [Elements of programming](https://www.amazon.com/Elements-Programming-Alexander-Stepanov/dp/032163537X) and [From Mathematics to Generic Programming](https://www.amazon.com/Mathematics-Generic-Programming-Alexander-Stepanov/dp/0321942043/ref=sr_1_1?crid=3O1ALVEBYUTFB&dchild=1&keywords=from+mathematics+to+generic+programming&qid=1626029728&s=books&sprefix=from+mathe%2Cstripbooks-intl-ship%2C255&sr=1-1)

![From Mathematics To Generic Programming](https://d1w7fb2mkkr3kw.cloudfront.net/assets/images/book/lrg/9780/3219/9780321942043.jpg)

![Elements Of Programming](https://images-na.ssl-images-amazon.com/images/I/41L34398I2L._SX373_BO1,204,203,200_.jpg)