So I'm in a bit of a pickle, I've started a new job and am trying to get "familiar" with the code over the holidays while most people are away. Unfortunately there is absolutely zero documentation. The codebase is massive and spanning across multiple repositories. I want to dive in and be productive as soon as I possibly can. Outside of code pairing with the the other developers (which is currently impractical due to most people being on vacation), what is the best way to approach learning the codebase at a high level (and eventually granular) so that I can make an impact ASAP?
Pick use cases and walk through the code. I usually start with something simple like login, or common functions like logging etc. Use case focused lets you see the app in use and then trace what the code is doing which to me is far more valuable than just reading code. Reading code without a purpose is useless IMO. Also doing this is sometimes great for the team because you will find stuff they have missed and can ask questions about it which will result in either them explaining why it is that way or saying crap, good find.<p>Other options (I usually use these to build documentation from a codebase I don't know but to get up to speed faster I use the above method):<p>If it is object oriented, find all the base classes and work your way up through the derived classes learning what they do. Once complete, follow the procedural method below.<p>If it is procedural, then find the entry point and walk line by line, and at the first non-system/sdk level function call start building a function map so you know what calls what and what data is needed, passed etc.