Contributing to complex projects
mitchellh.com
mitchellh.com
> I start with a feature or use case, and start from the outside in to trace the codepath that the feature follows. During this process, I take notes about the files, lines, and functions I’m going through, but I do not yet attempt to understand how anything works. This is the “trace down” phase.
In my opinion this is what makes it easy to discover how programs written in Go, Rust and C work, while it typically is not easy to discover how programs written in Java or C# [1] work typically - abstracted wireup via IOC containers often makes it difficult to to determine which code is likely to run.
[1]: Yes, yes, not all Java etc etc...
Based on the article, this user should start learning to use numpy directly, and I can agree with that.
Sometimes I might have an academic or research interest in a field I'm not actually working in or I read about a topic that sounds interesting. Then contributing to a project working with that topic or field might seem like a good way to learn and get more into that topic.