1) Discovering Modern C++: An Intensive Course for Scientists, Engineers, and Programmers by Peter Gottschling - Not too thick and focuses on how to program in the language.
2) Software Architecture with C++: Design modern systems using effective architecture concepts, design patterns, and techniques with C++20 by Adrian Ostrowski et al. - Shows how to use C++ in the modern way/ecosystems i.e. with CI/CD, Microservices etc.
Optional but highly recommended;
a) Scientific and Engineering C++: An Introduction with Advanced Techniques and Examples by Barton & Nackman - Old pre-Modern C++ book which pioneered many of the techniques which have now become common. One of the best for learning C++ design.
- Modern object initialization using {} and ().
- std::string_view
- std::map
- std::stack
- Emplace addition of objects to containers like vector and map.
- Smart pointers (std::unique_ptr, std::shared_ptr and their ilk).
- Ranges library.
- Concurrency support library (std::async, std::future, std::thread, locks and the whole deal).