The Best Tools Do Not Remove Friction, They Transfer Judgment to You

Sarah Marie

Hatched by Sarah Marie

Aug 14, 2026

11 min read

90%

0

Most people choose a note taking app the way beginners learn to code: they compare features, watch demonstrations, and wait for the perfect system to make difficult work feel easy.

But the difficult work usually begins after the tutorial ends. A developer discovers that a real codebase has unclear conventions, missing documentation, and tradeoffs no lesson anticipated. A note taker discovers that a beautiful workspace can still become a graveyard of disconnected pages. In both cases, the central problem is not a lack of information. It is a lack of contact with reality.

The deeper question is this: Do our tools help us practice judgment, or do they merely help us organize instructions?

That question connects software development with personal knowledge management in an unexpectedly useful way. The best learning environments are not necessarily the most polished or feature rich. They are the ones that move us from passive consumption into active participation, from following a path to deciding where the path should go.

The tutorial is a map, not a place

Tutorials are valuable because they reduce the initial complexity of a subject. They provide a sequence, a vocabulary, and a visible definition of success. You can build the example, run the command, and experience the satisfying feeling of progress.

The problem is that tutorials often remove the very conditions that create expertise. They supply the requirements, choose the architecture, resolve the errors, and tell you what to notice. You learn how to reproduce a solution, but not necessarily how to recognize which solution a new situation requires.

This distinction can be understood through two kinds of difficulty:

  1. Execution difficulty, which comes from not knowing how to perform a known task.
  2. Judgment difficulty, which comes from not knowing what task should be performed in the first place.

Tutorials are excellent for reducing execution difficulty. Real projects develop judgment. When you read an unfamiliar codebase, you must infer its design principles from imperfect evidence. When you contribute to open source, you must interpret a problem report, negotiate with maintainers, and adapt your idea to constraints you did not create. The learning is powerful because the answer is not waiting in the next chapter.

Note taking systems have the same division. A template can tell you where to put a project brief, how to label a meeting, or how to create a database view. That is execution support. But no template can decide what deserves to be remembered, which ideas belong together, or when an old note should change your current plan. Those are judgment problems.

A sophisticated app can make execution effortless while leaving judgment untouched. You can create nested pages, properties, kanban boards, and linked references without developing a clearer relationship with your own thinking. The workspace becomes active, but the mind remains passive.

A tool teaches you most when it forces you to make decisions that a tutorial would normally make for you.

This is why real codebases and flexible knowledge tools have something important in common. Both expose you to unfinished structure. They give you enough support to begin, but not enough certainty to avoid interpretation.

The surprising connection: open source and open ended thinking

Open source is often described as a place to improve coding skills. That is true, but incomplete. Its deeper value is that it turns learning into a relationship with a living system.

A small project is not simply an exercise with a correct answer. It is a world with history. Someone made choices before you arrived. Some choices are elegant, others are accidental, and many are constrained by time, compatibility, or the behavior of existing users. To contribute effectively, you must learn to see the system from inside its own logic.

That experience is remarkably similar to working in an open ended note taking environment. Tools such as Joplin, Logseq, Anytype, Affine, and AppFlowy differ in design, maturity, and learning curve, but their most important feature is not any individual function. It is the invitation to construct a personal information environment rather than merely fill in a predetermined form.

Consider the difference between a flat notebook and an environment that allows pages within pages, databases, whiteboards, outlines, or relationships between ideas. The latter gives you more expressive power. You can represent a project as a board, a research topic as a network, or a decision as a collection of linked evidence. But expressive power comes with a cost: you must choose the representation.

That choice is not administrative. It is intellectual.

If you place every idea into a rigid folder, you imply that each idea has one natural home. If you use an outliner, you emphasize hierarchy and sequence. If you use a whiteboard integrated with pages, you can move between spatial exploration and structured explanation. If you use databases, you turn distinctions into properties and patterns into views.

Each structure makes some relationships visible and others harder to see. The design of your tool therefore becomes a design of your attention.

This is precisely what happens in a real codebase. An architecture is not a neutral container. It makes certain changes easy, others expensive, and some nearly invisible. A developer becomes more capable by noticing these consequences. A thinker does the same when learning to shape a knowledge system.

The common skill is not memorization. It is model building: deciding what distinctions matter, what relationships deserve emphasis, and what kind of change the system should support.

Friction is not always a flaw

Modern software culture often treats friction as an enemy. The ideal tool is expected to be intuitive, fast, synchronized across devices, and immediately useful. These qualities matter. Syncing problems can destroy trust, and a steep learning curve can prevent a promising tool from becoming part of daily life.

Yet removing every form of friction can also remove opportunities to learn.

Imagine two kitchens. One has every ingredient premeasured, every knife positioned for you, and an appliance that automatically selects the cooking time. The other is less convenient. You must understand the ingredients, adjust the heat, and recover when something goes wrong. The first kitchen helps you produce dinner quickly. The second helps you become a cook.

The same distinction applies to software. Product friction prevents you from achieving your intention. Learning friction forces you to understand the system well enough to act intentionally. Confusing these categories leads people to discard tools that might have helped them grow, or to celebrate tools that quietly make all meaningful decisions on their behalf.

A difficult learning curve can be valuable when it reveals a powerful way to think. A whiteboard integrated into a page may require more experimentation than a simple list, but it also allows a user to move between spatial relationships and written detail. An outliner may feel restrictive to someone accustomed to freeform documents, yet its constraints can sharpen the ability to express ideas as nested claims. A database may initially seem excessive for personal notes, but its properties can expose patterns across projects that would otherwise remain anecdotal.

Still, not all friction is educational. An unstable sync system does not deepen judgment. It merely taxes attention. A confusing interface that obscures basic actions is not a philosophical challenge. It is an obstacle. The crucial test is whether the difficulty produces a useful capability.

We can use a simple diagnostic:

  • If the friction makes you notice a meaningful distinction, keep exploring it.
  • If the friction makes you repeat a mechanical task, automate or remove it.
  • If the friction makes you question your model of the work, treat it as a learning opportunity.
  • If the friction makes you doubt whether your work is safe, solve the reliability problem first.

This framework also clarifies why real projects outperform endless tutorials. Real projects contain productive friction. They force you to read unfamiliar decisions, debug assumptions, and discover that the first representation of a problem is often wrong.

Build systems that make your thinking visible

The goal of a personal knowledge system should not be to store everything. It should be to make the evolution of your understanding easier to observe.

A useful system creates a feedback loop:

  1. You encounter something that matters.
  2. You represent it in a provisional form.
  3. You use that representation to make a decision or create something.
  4. Reality exposes what the representation missed.
  5. You revise both your understanding and your system.

This is the same loop that makes software practice so effective. You write code based on a model, run it against reality, encounter unexpected behavior, and update the model. The result is not merely a functioning program. It is a better programmer.

In note taking, the equivalent of running the code is retrieval and application. A note becomes valuable when it helps you write, decide, explain, build, or notice something earlier than you otherwise would have. If it never changes an action or a thought, it may be an archive, but it is not yet part of a working knowledge system.

This suggests a practical design principle: organize notes around future encounters, not past collection.

Instead of asking, “Where should I save this?” ask:

  • What problem might this help me solve?
  • What decision could this evidence inform?
  • What concept does this complicate or clarify?
  • What would make me search for this again?
  • How could I test whether this note is useful?

These questions transform note taking from storage into experimentation. You are no longer trying to build a perfect library. You are building an environment in which ideas can meet future problems.

The best developers do something similar with code. They do not merely accumulate syntax examples. They develop a library of patterns, failure modes, tradeoffs, and questions that become useful when circumstances change. Their knowledge is not a museum of completed lessons. It is a set of instruments for navigating uncertainty.

The three stage path from consumer to contributor

A useful way to combine these insights is to view learning as a progression through three stages.

Stage one: Reproduction

You follow instructions and copy a working pattern. In coding, this might mean completing a tutorial application. In knowledge work, it might mean adopting a productivity template or copying someone else’s tagging method.

Reproduction is not fake learning. It builds fluency and lowers the barrier to entry. But it should be treated as a beginning, not evidence of mastery.

Stage two: Modification

You change the example to fit a real need. You replace the tutorial’s data, add an unfamiliar feature, or alter the structure of your workspace. At this point, the hidden assumptions of the original system begin to appear.

Modification is where many people experience their first meaningful confusion. That confusion is useful because it reveals which parts of the system they actually understand.

Stage three: Contribution

You create something that must survive outside your private intention. You submit a code change, document a confusing process, publish an explanation, or design a knowledge system that supports a real project over time.

Contribution introduces an audience, even if that audience is your future self. It creates standards that private experimentation can avoid: clarity, reliability, maintainability, and usefulness to someone other than the person who built the system.

The transition from modification to contribution is especially important. It converts learning from a private feeling into a public test. A code contribution must fit a larger project. A serious note system must help you recover an idea months later, under pressure, when you no longer remember why you wrote it.

Mastery begins when your work has to remain understandable after the excitement of creating it has passed.

This is why open source participation and deliberate note taking reinforce each other. Both train you to build for continuity. Both ask you to respect context. Both reveal that good systems are not defined only by what they can do, but by how well they help other actions happen later.

Key Takeaways

  • Use tutorials as scaffolding, then leave the scaffold. After completing a lesson, change the requirements, remove the instructions, and build a small variation that solves a real problem.

  • Choose tools that expose meaningful decisions. A feature rich workspace is valuable when it helps you see relationships, not when it gives you more settings to configure.

  • Separate educational friction from harmful friction. Keep difficulties that sharpen your judgment. Remove difficulties caused by instability, repetition, or poor reliability.

  • Make every important note face a future test. Connect it to a decision, project, explanation, or question that could reveal whether it is genuinely useful.

  • Move from reproduction to contribution. Share a small project, improve documentation, publish a clear explanation, or build a system another person could understand and use.

The best learning tool is therefore not the one that gives you the smoothest path. It is the one that gradually makes you responsible for the path itself.

A tutorial gives you a solved world. A polished application gives you a ready made world. Real expertise begins when you enter an unfinished world and learn to improve it without pretending that its ambiguity can be eliminated.

That may be the most important feature to look for in any tool, whether it is an editor, a codebase, or a notebook: does it merely help me finish tasks, or does it help me become the kind of person who can decide what deserves to be built next?

Sources

← Back to Library

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 🐣