Since, as has been mentioned, it's not really possible to understand the code base for a large open source project, why not pick a project you would like to work on, and check their bug reports, get the sources and start fixing the bugs.

you will learn the code base by actively working on it to track down the bugs.
you will become a recognized contributor to the code for that project.
you get to help a project you think is worthwhile.
the project gets the bugs fixed.
the project gets another person developing for it.
the project grows better in every wa.