How do you approach understanding and modifying a large open-source codebase?
Hey guys, I often find interesting projects on GitHub. Getting them running is usually fine, but when I want to understand how something works or make my own changes, I get completely lost in the codebase.
Mature projects have so many abstractions, design patterns, error handling, and logic spread across different files that I never know where to start or how deep to go.
I once spent a whole week using AI to walk me through a project starting from main(). I kept diving into details, and by the end, I barely remembered anything.
Someone also suggested drawing flowcharts to understand the code, but the more I drew, the bigger and messier they became.
How do experienced developers approach unfamiliar codebases when they actually want to understand and modify them?
How do you decide what to read, what to skip, and when you understand enough to start making changes? And has AI genuinely helped you with this?
Any advice or personal experiences would be greatly appreciated. Thanks in advance!