Why rebuilding a system badly teaches you more than reading its source code
A software developer argues that truly understanding a system requires rebuilding a worse version of it from scratch, not merely using it or reading its source code. The piece draws on Peter Naur's 1985 paper 'Programming as Theory Building,' which contends that real understanding lives in a programmer's mind as a theory that cannot be reconstructed from code or documentation alone. The author distinguishes three levels of knowledge — using a system, tracing its source, and rebuilding it — claiming only the third forces you to confront the decisions the original designers had to make. This insight emerged after the author rebuilt a TCP echo server seven times, progressing through different I/O models, and finally grasped concepts that years of reading had not delivered. The conclusion is that inherited code preserves the text of a solution but not the reasoning behind it, and rebuilding is the only way to reconstruct that reasoning independently.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.
Discussion (0)
Log in to join the discussion and vote.
Log in