What would be the best learning path to take for young people wanting to learn C++ today, especially with a focus on free software? Thanks for your attention!
First of all, and most important one, learn C++ idioms, not C.
This means making use of library types for memory allocation, vectors and strings.
There is a place for old C style low level features, but those should come later, after the safer concepts are already ingrained.
Kate Gregory's “Stop Teaching C" talk at CppCon 2015 explains better than me.
https://www.youtube.com/watch?v=YnWhqhNdYyk
Get a nice IDE, QtCreator, Clion, VC++ Community, KDevelop, XCode.
Besides the "Tour of C++", check Stephan T. Lavavej talks at Channel 9.
"Core C++ Lectures"
https://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavav...
"Advanced STL", these ones only when you already have a good understanding of STL as user
https://channel9.msdn.com/Series/C9-Lectures-Stephan-T-Lavav...
Also check video presentations from NDC, ACCU, CppCon, CppNow and C9 Going Native.
Is the Chrome source good source code to read? I always find they very organized in the high level, but don't know if its actually good C++ code.
Yes, it is. Maybe not for the begginer, but Google open source C++ stuff tend to have a great code quality.
Also, the modern open source C++ stuff from Microsoft is also great.
Go for Chrome, V8, Dart, ChakraCore, the C++ part of DotNet VM.
But the only "problem" with them, is that they use their own sort of smart pointers, but if you know that they map 1-1 to smart pointers from std:: when you need to use the std ones, its not a big deal.
Chrome for instance have scoped_ptr = unique_ptr, scoped_refptr = shared_ptr, etc..
Any examples of code bases using these modern features like co-routines? I'd love to see an example of it being used in real code.