I probably won't say anything new here. Last five years, I do the following in order to get my foot wet with new project (some projects I worked with contains more than two millions lines of code):
1. Just make sure I can build project;
2. Play around with services/application (just run, send some requests, get response);
3. Pick up simplest case (for example, some request/response);
4. Find breakpoints (for debugging) somewhere connected with this simplest case (for example, which stopped somewhere when I send request) and setup them in debugger. Usually, I find place where to put breakpoint by just searching keyword associated with my request;
5. Play around with these breakpoints while performing simplest case (for example, sending request) and try to find out call graph;
6. Try to change code and see what happens;
After I do this stuff several days/weeks, I become more and more familiar with the project.
1. Just make sure I can build project;
2. Play around with services/application (just run, send some requests, get response);
3. Pick up simplest case (for example, some request/response);
4. Find breakpoints (for debugging) somewhere connected with this simplest case (for example, which stopped somewhere when I send request) and setup them in debugger. Usually, I find place where to put breakpoint by just searching keyword associated with my request;
5. Play around with these breakpoints while performing simplest case (for example, sending request) and try to find out call graph;
6. Try to change code and see what happens;
After I do this stuff several days/weeks, I become more and more familiar with the project.