Considering the source code as the primary documentation source, then multiple "learning trails" should be created, each with a starting point (a file), and a sequence of other points to visit. E.g. service layer trail, start in Service.java then go to ...