I would not attempt to learn from project code at all. The code you are looking at is unlikely to have been written intentionally as an exemplar of good practice, and is also likely to comprise good code and code that given the time, the author would rather re-factor.
Without knowing the history of a project and the design decisions that led it to be that way, you are unlikely to learn much of use for anything non-trivial, and it is unlikely that you will find a project where such decisions are documented, unless the intent of the project were specifically as a teaching artefact, and for that the best source would be books from respected authors. These will teach you techniques from first principles that you can apply generally to your own work, without the noise, baggage, compromise, and even politics that comes with most real world development.
This for example might be a good place to start (and other books in the series not in this set).