This is what I've been using as of late to learn new technologies. I always seem to forget to tell younger developers about using this approach to learn.

Something else I would add is that you should try to find well known OSS contributors that work on projects that use tech/languages you use. If you monitor their projects you can pick up great habits from reading through their code.

Sounds like a great approach. Can you (or anyone else) recommend contributors to follow?

I usually watch the Apache projects.

Apache Arrow (https://github.com/apache/arrow/) is very interesting and promising project. It is in early state; you can watch the design decisions taken and how they are implemented. Plus it is multi-language project, you can find code in C++, Java and Python.