How I Learn Established Codebases

Learning a new codebase can be a challenging task. Unfortunately at times the original developers are no longer around and the documentation may be outdated or missing entirely.