Hacker News new | ask | show | jobs
by TrustPatches 1326 days ago
Really liked this post. One of the hardest things for me as a junior engineer is navigating complicated codebases and understanding them enough to make the change I want. This gives useful insight on how one might approach a similar problem.
1 comments

Is it just me or is one of the most difficult challenges of doing so figuring out if you’re making the change at the right abstraction layer?
It’s not just you, this is a fundamental challenge in programming. I think this paper by Peter Naur lays out the reason why it’s difficult, because software is a lossy representation of a theory held in one or more individuals heads. The original author had a model for how a problem could be solved by written code, and how that code might be extended or refactored in the future to solve related problems. No amount of API design or naming conventions or documentation can perfectly capture those ideas.

https://pages.cs.wisc.edu/~remzi/Naur.pdf