FYI, there is a book bundle available on fanatical of up to 18 Packt C++ books for a little over a dollar a book.
Thanks, that’s a good catch.
I’ve read quite a few of those books and I can recommend some of them. The price is low because they were published a few years ago (between June 2017 and June 2021). Therefore some of them are probably outdated now (e.g. I don’t see the point of learning Qt5 now that Qt6 has been released) but others are still relevant. If you want to do more with C++, become proficient or just play around, the 4-book bundle is great and cheap!
I’ll describe the books in the 4-book bundle (€$1.15) and the 10-book bundle (€9.40):
“Hands-On Design Patterns with C++” by Fedor G. Pikus (January 2019)
A good book by a well-known expert. It explains some common and important concepts (e.g. RAII, SFINAE, type erasure, or expressing ownership through raw and smart pointer) and some classic OOP design patterns in the context of modern C++ (e.g. the strategy, decorator, or visitor patterns).
I think it might be a good read for anybody who has learned 50-80% of the language and wants to start a “real” C++ project or prepare for a C++ job.
“The C++ Workshop” by Dale Green, Kurt Guntheroth, and Shaun Ross Mitchell (February 2020)
A book for beginners and programmers coming from other languages. It starts with “Hello World!” and covers fundamentals (e.g. control flow, functions, data types), basics (e.g. heap-allocated objects, classes, inheritance, casting), and intermediary topics (e.g. exceptions, containers and iterators, templates). Not a bad book (I’ve seen so many horrible C++ tutorials), you can use it to learn solid C++. But if you don’t already own it or buy it as part of a bundle I would recommend other books for learning C++ as a beginner.
“The Modern C++ Challenge” by Marius Bancila (February 2020)
I really like this one, and you might, too, because similarly to Exercism it is a collection of exercises and solutions. It starts with simple math-based problems (Calculate the sum of natural numbers divisible by 3 and 5 or Validate an ISBN), motivates to learn the containers, algorithms, and other facilities in the standard library (Write a function contains_all that checks if a
std::vector contains all the parameters of the function or Measure the execution time of a function or Print a monthly calendar), has exercises with classic algorithms (Write a priority queue or Write a double buffer or Write an idiomatic implementation of quicksort) and classic design patterns (Write a password validators where rules can be composed or Write a observable container). The more advanced exercises are about concurrency, serialization, cryptography and networking.
The author is a well-known expert, he presents solutions that are idiomatic and play to C++'s strengths. If you were wishing for more advanced exercises on the C++ track that you can tackle on your own this is the book for you and IMHO it alone warrants spending the €1.15 for the 4-book bundle.
“Hands-On Functional Programming with C++” by Alexandru Bolboaca (June 2019)
This sounds a bit niche but it’s a good book. It presents a lot of levels and facets of functional programming in C++, starting with pure functions and lambdas, talks about how a “more functional” style (at least compared to the majority of C++ code) can improve readability, maintainability, testability, and even efficiency, covers classic FP topics like functional composition, currying, immutability, lazy evaluation, and describes how the standard library supports this functional style.
IMHO this is not an essential read but I think it can make you a better C++ programmer.
“Mastering the C++17 STL” by Arthur O’Dwyer (September 2017)
This is one of a several books by different authors about the standard library. The author is a well-known expert, the book covers the essential parts of the standard library. If you only know the language itself and want to get serious with C++ this might be the book for you.
Personally I like other books about the standard library more but they cost a lot more than the $9.40 for the 10-book bundle.
“C++ Data Structures and Algorithms” by Wisnu Anggoro (April 2018)
Classic DS&A book using C++ for its examples. Not really bad but I wonder who the intended audience is. Most programmers who know C++ already know data structures like binary search trees or hash tables, beginners might prefer a simpler programming language than C++.
“C++ High Performance - Second Edition” by Björn Andrist & Viktor Sehr (December 2020)
Great book if you start your journey towards performance optimization. The book talks about analyzing and measuring, describes memory organization, performance aspects of several standard containers, covers concurrency and parallelism, and spends a lot of time at explaining how to use the standard library efficiently.
“Hands-On Mobile and Embedded Development with Qt 5” by Lorn Potter (April 2019)
I don’t know that one. Sorry.
“Modern C++ Programming Cookbook - Second edition” by Marius Bancila (September 2020)
From the author of the aforementioned “The Modern C++ Challenge”. Covers a lot of facilities that were added in C++14, C++17, and C++20. A good book if you’re still stuck on an older version and want to catch up.
“Mastering C++ Programming” by Jeganathan Swaminathan (September 2017)
I haven’t read that one, I’ve only skimmed through it. It seems to contain a good mixture of concrete C++ knowledge (e.g. templates, smart pointers, atomics), idioms and best practices (e.g. an overview of Qt, multithreading and synchronization) and practical things every C++ programmer needs to know (e.g. code smells, TDD and how to write tests).
This might be a good read for you if you’ve learned the basics (and some more advanced features) of the language and want to build upon that.
Thanks for sharing this. I have a subscription to packt so I’ll go take a look at some of these. A couple I overlooked!