Thanks in advance! ;)
They are one of the main tools used internally at Google to ensure engineers who have to use C++ stay on top of language evolution and avoid common pitfalls.
- CppCon 2021, https://www.youtube.com/playlist?list=PLHTh1InhhwT4TJaHBVWzv...
- CppCon 2020, https://www.youtube.com/playlist?list=PLHTh1InhhwT5o3GwbFYy3...
- CppCon 2019, https://www.youtube.com/playlist?list=PLHTh1InhhwT4CTnVjJqnA...
Part of the reason I’ve gravitated towards Rust as my system’s language is because every time I look at a large C++ project there are CMake / Automake / Make definitions that are really hard for me to read and understand. Some of them even seem to use symbols I can’t find in these tools’ manuals.
https://en.cppreference.com/w/
Books:
A tour of C++ 2nd Ed by Bjorne Stroustrup covers C++17 and a new version is in the works to cover C++20 and maybe 23.
I don't want to discourage you, and I think everything I did during this time was a good experience and taught me a lot. If you feel that's important for you, go ahead.
My point of view, which comes from my personal experience: even though Rust has some limitations, a number of areas for further development and a few rough edges for lower-level development, at this point in my career I don't want to touch C++ anymore unless I have no other choice.
Modern C++ is much better but it is not a paradigm shift (safe by default), the same way "labelled goto" (ie, C) is better than "numbered goto" (ie, BASIC) but it is still not a while/for.
You might reach a similar conclusion, or you might not. I just want to leave this here for you to reflect upon.
Regarding material, it all depends on the platform and what you would want to use C++ for. There are many references here already, so my advice goes to focus on C++ concepts and techniques and not too much on specific libraries - since they can be unavailable or impractical for certain environments/platforms.
It goes pretty fast if you've programmed before but covers a decent amount of the newer stuff. Once you get the fundamentals down you can probably figure out the C++20 features through the docs