Otherwise, many top tech companies now open source software that they've written internally, oftentimes with their own websites. And there is also a growing trend for them to actually maintain the software they open source as opposed to just throwing it over the fence.
Think of companies that have a strong engineering brand, and then just search for what open source software they're released. Pick whatever seems most aligned with your interests.
Some examples:
Google: https://opensource.google.com/projects/list/featured?languag... Facebook: https://code.facebook.com/projects/#backend Stripe: https://stripe.com/open-source Airbnb: http://airbnb.io/projects/
- Find a function call you're making in a library and see how it works
- Look through the top python libraries (see https://github.com/vinta/awesome-python ) and pick a few of the simpler ones to flip through
For reading code, some things that can be useful:
- Flip through test suite and get tests running; then break some tests to see what's happening
- Diagram out code on a piece of paper (file structure, data structure, stack trace for a popular call)
- Discuss implementation with friends
- For certain files, it's often valuable to rewrite yourself
I find I like to learn the flavor of different kinds of code, but practical codebases have so much stuff going on that it's not easy to find the distinctive part. It would be great to see more people do expository versions of familiar software and libraries.