Readable Code and Readable Thinking: Why Good Systems Need Peripheral Vision
Hatched by Faisal Humayun
Jun 05, 2026
9 min read
1 views
82%
The Strange Problem with Clean, Local Clarity
What if the biggest productivity problem in both coding and note-taking is not complexity, but excessive focus on the thing currently in front of you?
That sounds backwards. We are taught to make code simpler, notes clearer, interfaces cleaner. But in practice, many tools become so optimized for the single active unit that they lose the surrounding field of meaning. A line of code becomes readable, yet the system becomes harder to reason about. A note becomes polished, yet the body of notes becomes less intelligible.
This is the paradox: local clarity can destroy global understanding. The code is easy to read, but the logic is hard to navigate. The note is easy to open, but the network of ideas is hard to see. In both cases, the real challenge is not presentation, but sense-making across a structure.
The deeper question is this: How do we design systems that make individual parts understandable without blinding us to their relationships?
That question links programming and note systems more closely than it first appears. One gives us match statements and slicing, the other gives us backlinks and contextual listings. Both are attempts to tame complexity. Both reveal the same truth: the unit is never enough.
Why Human Minds Need More Than One View
When people write code, they often start with a chain of conditional logic. If this, then that. Else if this, then something else. It works, but it forces the reader to simulate the logic one branch at a time. The code behaves like a hallway of doors: you can open one, but the layout of the whole building remains abstract.
A match statement changes that experience. Instead of asking the reader to reconstruct intent from scattered branches, it lets the code declare its structure more directly. The result is not merely shorter syntax. It is a more legible shape of thought. The code says, in effect, “Here are the meaningful cases, and here is how they relate.”
Slicing does something similar. Instead of manually iterating through positions, it lets you see a sequence as a shape with boundaries, middle sections, and reversals. It is a compact way to think about a list or string as a manipulable whole. The jump value, the negative indexing, the reverse slice, all of these are small syntax features, but together they restore a sense of spatial reasoning to linear data.
That same need appears in note systems. A note can be well written and still be contextually dead. You can open it, edit it, link it, and yet remain blind to its neighbors. Backlinks help, but they are often just a side panel that changes the active note rather than exposing the larger landscape. The problem is not access to an isolated note. The problem is the absence of peripheral vision.
A system becomes truly useful when it supports both zooming in and seeing around the edges.
This is not just a design preference. It reflects how humans think. We do not understand ideas one atom at a time. We understand them through patterns, adjacency, contrast, and clusters. A good system must therefore let us inspect an element without pretending the element exists alone.
The Missing Interface is Not Search, It Is Orientation
Most digital systems are built around retrieval. Type a query, open a result, edit a page, jump to a file. This is efficient when you already know what you want. But sense-making is different from retrieval. Sense-making asks: What is this part related to? What is nearby? What shape is emerging? What am I missing?
This is where digital tools often underperform physical ones. On a desk, you can spread notes around. You can cluster related items, shift them, compare them by proximity. A glance reveals a map. The room becomes a cognitive device. In that setting, meaning is not only inside each note. Meaning also lives in arrangement.
Digital notes often remove that spatial layer. They give you a list, a search box, maybe backlinks. But backlinks are weak peripheral vision. They tell you where a note points, not what the surrounding field looks like. They are excellent for navigation and insufficient for orientation.
Think of it like reading a city map that only shows the street you are currently on. You may be able to navigate from address to address, but you lose the texture of neighborhoods. You cannot tell whether the cafe is near the library, whether the library is near a park, or whether both sit within a larger district of related places. The map is accurate and yet impoverished.
The same thing happens in code review and in note systems. You can inspect a function or a note in isolation and still miss the architecture of the system it belongs to. Orientation requires context, not just content.
This is why some digital systems feel productive but strangely hollow. They let you manipulate units while preventing you from seeing structures. They are optimized for selection, not synthesis.
A Better Mental Model: Code and Notes as Topographies
The most useful connection between these domains is not that both involve syntax and organization. It is that both can be understood as topographies.
A topography is not a pile of points. It is a field with shape. Hills, valleys, corridors, clusters, boundaries. In a topographical system, the important question is not merely “Where is the thing?” but “What terrain does the thing belong to?”
This helps explain why certain programming features feel so elegant. A match statement reduces branching not just because it is concise, but because it exposes the terrain of the problem. It says, “These are the actual modes of the domain.” Slicing likewise exposes the terrain of sequences. It turns implicit positional manipulation into an explicit geometry of start, stop, and step.
Note systems need the same treatment. A note should not just be a container for content. It should be a point in a navigable landscape. Backlinks are one coordinate, but not enough. Contextual backlinks are better because they reveal a small horizon of nearby terrain. Still, even they tend to collapse when you move away. The challenge is to create interfaces that preserve the shape of the landscape while letting you enter any one point in it.
Here is the key insight: clarity at the point level is not the same as clarity at the landscape level. We need tools that are simultaneously atomic and relational.
A helpful analogy is music. A single note can be cleanly defined, but a melody only emerges when you hear the intervals between notes. Likewise, a note in a personal knowledge system is not the final unit of meaning. Its significance depends on what comes before it, what sits beside it, and what pattern it participates in. Code is similar. A line is understandable only insofar as it fits a broader pattern of control flow or data transformation.
The best systems do not just show you things. They show you how things belong.
The Real Design Principle: Preserve the Field While Editing the Grain
There is a hidden design principle that unites these ideas: systems should let us edit fine grain without collapsing the field of context.
In code, this means language features should reduce boilerplate without reducing intelligibility. A match statement is not just syntactic sugar. It is a way of preserving the domain’s structure while making the code less noisy. Slicing is not just a shortcut. It is a way of expressing transformation at the level of shape instead of procedure.
In note systems, this means the interface should let you revise a note without forgetting its ecosystem. A good note environment would let you see a note, its neighbors, its clusters, and its position in a broader thematic terrain all at once. It would support both the close-up and the wide shot. It would not force you to choose between editing and understanding.
This principle matters because much of our cognitive frustration comes from tools that make those modes compete. We edit, then we search. We search, then we lose context. We open a note, then we close the map. We refactor code, then we wonder why the system still feels tangled.
The answer is rarely more information. It is usually better structure.
Consider a real-world example. Suppose you are analyzing customer churn in a Python notebook. You have a preprocessing function, a few conditionals for segment handling, and a set of notes about hypotheses, data quirks, and business implications. If your code uses verbose branching and your notes live as disconnected pages, you are forced to rebuild the conceptual model from scratch every time you switch tasks.
But if the code uses explicit pattern matching and concise slicing, it becomes easier to see the actual cases in the data. If the notes are arranged spatially around those cases, you can see which hypotheses map to which segments, which assumptions sit near which metrics, and which uncertainties cluster together. The code and the notes then become part of the same mental map.
That is the deeper payoff: the ability to see a problem as a landscape of related structures rather than a sequence of isolated operations.
Key Takeaways
-
Optimize for orientation, not just retrieval. A system should help you understand what something is near, not only help you open it.
-
Treat local clarity as incomplete unless context remains visible. Clean code or polished notes can still be cognitively opaque if they hide relationships.
-
Use syntax that exposes structure. In code, prefer constructs like match and slicing when they reveal the shape of the problem instead of obscuring it with procedural noise.
-
Make relationships spatial when possible. Clusters, contextual backlinks, and persistent layouts help the brain see patterns that lists and isolated pages hide.
-
Ask whether your tool supports the whole thought, not just the current unit. If you can edit a piece but cannot see the system, the tool is helping you work, but not helping you think.
What Better Thinking Looks Like in Practice
The challenge for modern knowledge work is not lack of access. It is lack of coherence. We have abundant ways to open files, jump between notes, and inspect code. What we often lack is a representation of how those pieces compose into a whole.
This is why the best abstractions are not always the shortest ones. They are the ones that preserve the shape of reality. A good match statement respects the underlying cases of a problem. Good slicing respects the geometry of a sequence. Good note architecture respects the network of ideas rather than pretending every note is self sufficient.
The most valuable systems, then, do not force us to choose between precision and perspective. They let us keep both. They let us zoom in without losing the map. They let us inspect the note while still feeling the neighborhood. They let us write code that is easier to read because it is easier to see.
That is the real connection between readable code and meaningful notes. Both are attempts to make thought visible. And thought, if it is to remain intelligible, must be allowed to remain relational.
We do not think in isolated atoms. We think in structures, and the best tools are the ones that help us see the structure while touching the atom.
The next time a tool feels “clean” but strangely hard to use, ask a sharper question: not whether it reduces clutter, but whether it preserves the surrounding field. Because the future of productive systems may depend less on making each part simpler, and more on making the relationships between parts impossible to miss.
Sources
Hatch New Ideas with Glasp AI 🐣
Glasp AI allows you to hatch new ideas based on your curated content. Let's curate and create with Glasp AI :)
Start Hatching 🐣