The easiest way I've found is to try to find out how a specific piece of functionality works. Try to modify it in some small way -- that way you can test your understanding. It's a bit like putting together a big puzzle. You just take it one piece at a time -- but try to break it up by functionality so that you are forced to see how everything fits together. Often it's great to try to write tests or fix bugs. Again, this gives you some focus. But don't expect to learn it quickly. It takes time for things to sink in.