The Work of Creating A Reliable System to Write Less Code

“Equations are more important to me, because politics is for the present, but an equation is something for eternity.”

The Treadmill of Knowledge Work

Knowledge work seems to have no beginning and no end. Much like art, knowledge work is never finished, merely abandoned, as any project built from knowledge can be edited, tweaked, and genreally picked and prodded on ad infinitum.

The difference between an expert knowledge worker and a novice is knowing when enough is enough, when an extra feature added to the project will cause more harm than good, or a misplaced phrase subtracts from the cohesion of the written piece.

But It's All an Illusion

The thing is; knowledge systems are almost entirely all made up.

There are physical rules of the universe. These rules include (but are not limited to) the tensile strength of oak before it snaps in two, or how hot water can get before it boils.

In between these hard edges human creativity comes to play it's magic. We turn metal and gas and knowledge of the density of air into airplanes, we turn inhospitable ingredients into edible foods by cooking them for a certain amount of time; we take red, green, and blue to make white on screens, and the list goes on.

Through this lens, a knowledge system largely serves one purpose.

We create knowledge systems to codify creative solutions into the physical universe.

Done right, this process makes it easy for ourselves and others to leverage this made up knowledge to produce future resources.

Let's take a look at code as an example.

Stable Code

The goal of copying code (from the internet, or perhaps your co workers) is to find stable code blocks. Stable code blocks have low entropy, will last through many updates, and work on systems with different levels of computational power at their disposal.

Intuitively, a programmer understands this fact. An expert programmer can look at a block of code and determine how error prone it is, where it will fail, and how long it will take to run on average with a quick O(n) analysis.

Once we stumble upon or meticulously edit a code block until its just right, we need a place to store it where we will be able to find it later, much like a squirrel burying nuts for winter.

Strong Productive System

A strong knowledge system has two components: ease of adding new information that is important, and relevant information retrieval.

The time vector is the density of evergreen content and also the speed at which the correct information is returned.

The space vector is how many people can access information at once and understand it (more on this point later), and how much information can fit into the system.

In the year of this post (2021), I've found through trial and error two tools that fit this criteria, and have the chance to last long into the future, or at the very least provide an escape hatch for the information to continue to add value.

The Tools

Every knowledge system worth its salt needs a way to access the work done in previous undertakings. Knowledge (specifically code) is both versatile and multiplicative, meaning that lessons learned in one project can (if abstracted correctly) be used in many different situations and be run an exponential amount of times without degradation.

Ideally, a developer should always keep in the back of their heads how tightly coupled the algorithm they're currently writing is to their project.

Meaning, if one learns a best practice in NextJS or Blender, that best practice can be used across many different projects and should be externalized.

First and foremost, you'll need to be able to store knowledge in a system that you trust.

I recommend Obsidian and Notion. Obsidian for unstructured knowledge and customization (read: bottom up knowledge), Notion for a strong, structured out of the box workflow (read: top down knowledge).

Together, both tools shore up the other's weak points, and allow for a system where knowledge is capture-able, find-able, and most importantly, actionable.

NB (03/2022): These days I'm pretty much only on Obsidian, since my system has become much more mature.

The Future

AI will continue to move its way into our lives, the importance of having strong systems for knowledge storage will become even more relevant.

If the data is structured enough, or contains enough semantic value, AI will be able to find it and learn from it. Code can document itself and be shared amongst developers through time and space. Textbooks and courses will have no need to be linear in a world where true innovation lies at the crossroads of knowledge of many fields and not in BIO 202 with that one professor who just reads off of the slides while students coast throught to get a B+ and a piece of paper that says they grasp a subject. Data will continue to get cheaper and easier to share infinitely.

Build your systems now, store your knowledge outside of yourself. The dividens will gather, hopefully at a rate that outpaces entropy.

“My own opinion is that the intellect of modern man isn’t that superior. IQs aren’t that much different. Those Indians and medieval men were just as intelligent as we are, but the context in which they thought was completely different. Within that context of thought, ghosts and spirits are quite as real as atoms, particles, photons and quarks are to a modern man. In that sense I believe in ghosts. Modern man has his ghosts and spirits too, you know.” --Zen and the Art of Motorcycle Maintenance

Discuss this post on Reddit

Read These Next

80 Projects in (80 - 28) Weeks

A look back on how I created 80 unique projects in 2020.

Building The Outline for "Built on Stream" Blog Post

Highlight from Stream: FEW ROUNDS OF FALL GUYS -> OBSIDIAN SETUP CONTINUES

Search and Replace Multiple Occurrences in VSC + Obsidian

Highlight from Stream: FEW ROUNDS OF FALL GUYS -> OBSIDIAN SETUP CONTINUES

Stay in Touch

Each week, I send out something that looks like this. Sign up below if you want in!