Programming and Writing

Programming and writing have common traits and similar processes.


Code is not a natural language, but its fixed grammar makes certain formulations naturally understandable and others, while formally correct, will be hard to grasp.

A good program and a good novel are both the sum of local and global elements that work well. As well as single statements being well written and readable, a coherent structure and pleasing relationships between the parts is also crucial.

Almost all programs and written works are complex enough that you can’t hold their entirety in your head. To be successful at both programming and writing you need to make constant, consistent progress. You must probe the environment to see what works.


Once complete, writing remains immutable. Programs suffer from entropy so must be continually updated to remain functional as the environment changes around them.

Programmers often believe that the first version of a system can be quite imperfect as it always evolves. Writers know they have a single bullet for every novel, to the point that writing prose is mostly an act of rewriting.


A good initial structure will result in a better system as it grows organically.

A programmer should pretend the primitive kernel of a new system is their only bullet, and rewrite it again and again until it is the best possible design. Even after years of distance from the original creation, and even if the original core was just a tiny faction of the future mass, the initial design greatly informs what will happen later.