Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

For anything complex, usually, I'm trying to build a mental model so that I can reason about it w.r.t new scenarios. To get an accurate mental model, if a nice and clean documentation exists that you can read and understand all the elements – high-level, low-level, layers, how things connect and interact – its awesome.

For something that has evolved over many years (like Linux kernel), you will find documentation for different parts of the system but it would seem like they all assume some knowledge of some other part of the system.

There would be lot of circular dependencies for pre-requisite knowledge to even understand what would be considered as good documentation. So, obviously, you will have to do multiple passes. You will have crawl through this dependency graph of knowledge multiple times to build a mental model for yourself. This takes time and focus. Good memory for details is crucial.

Don't be afraid to work with partial information and partial understanding and work through those intermediate knowledge passes and still do useful work (like reading lot of code, find and fix bugs, add small features or even big features in isolated areas etc).

Putting in work (fixing bugs or adding features) helps you test your understanding and gives a meaningful way to engage with your peers who can help improve your understanding of the complex system.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: