Hacker News new | ask | show | jobs
by xja 3445 days ago
I guess it really depends.

On projects where the level of commenting is low and theirs little to no documentation it can be tough.

For C projects as there's usually a single point of entry I just start with main() and read through the code to get a conceptual overview of what's happening. Often I find it useful to comment the code/write basic documentation as I go.

Then I often attempt small changes/refactoring to attempt to validate my understanding. Often I'll add code to dump intermediate data to better understand what's happening.

It can be quite a slow process in a large project to be honest, and it's a lot easier if you have the original developer available to ask questions.