The best way to understand a large app... is not try to understand it. You will have tasks. See where the entry point is and go from there. Try to understand as much as you need to get your job done. Refactor small things where is needed. If you are to spend a lot of time on that app, you will end up learning it. If not, any time spent on learning it, is wasted effort. Is more important to have a high level understanding of the business it solves. Have a look at the database and see what is in there, without wasting too much time on understanding all relationships. Is impossible to understand it all fast, and if you are in a large team, what you understand today, tomorrow may change. Don't try to rush your understanding. It will just come. You can do your job just fine if you take one step at a time and build the knowledge in time. Make sure you spend more time learning to clean the code and write clean code. Is a lot more value in that, and that will put value in any project. I bet a good programmer, with no understanding of a project, when going in it, it can make some good changes that help without any understanding of what the app is for.