What’s a Zettelkasten Good for in the Age of Affordable LLM’s?

Last Saturday was Global Day of Code Retreat (GDCR) and one challenge session was to only use AI with prompts to implement the Game of Life rules. Folks who don’t use LLM’s a lot tried to describe the rules to the LLM in their prompts – while others knew that the rules are well-known and that the LLM could regurgitate them based on training data easily.

In some way, an LLM can appear omniscient. Prompt input merely primes their output, the actual info is already built-in.

We’re at a point where the large language models can immediately reproduce different things “from memory” without any additional input in the prompt. That makes relying on them more and more alluring, I notice in software craftsmanship meetups over the years. After all, they’re trained on everything, can produce anything (with varying levels of success).

Some junior dev GDCR participants mentioned that their day job already involves more prompting of Claude Code than actual typing to write software. (That’s so wild to hear. This escalated fast!)

Given the process of writing software with an LLM involves an all-knowing regurgitation device, what are your chances to add anything meaningful to the process as a junior developer?

A jaded senior may still feel like they know better and not worry as much; a junior certainly won’t have that self-esteem.

Wouldn’t it be rational to just tell the machine what to re-produce from “memory” and otherwise remove yourself from the production process?

I’m writing about the whole “Zettelkasten” topic for more than 10 years, and I use my own Zettelkasten for more than 15 years.

Given both my positive experience with LLM’s and my years with a Zettelkasten, there’s no reason to stop using my Zettelkasten now. I’ve seen agentic coding tools clearly outperform me when it comes to creating working pieces of software. You cannot compete with an LLM on speed in a lot of cases.

The process also changed me and my process. I love writing. I use writing to think (in my Zettelkasten), and to share (for example, here, right now). Without writing or note-taking, I can’t think myself out of a lot of situations; but give me a pen and paper, or a keyboard, and it’s easy for me to stay on track and move forward.

If anything, I find the workshop I have built for myself within my Zettelkasten to be more valuable, not less.

The Zettelkasten as work environment is an enabler: it allows its user to tackle hard problems over a span of years.

A prerequisite of expertise is to work on problems others can’t. To outperform the majority.

The Zettelkasten is a companion for your whole work life, your whole career, not a tool to merely finish a project in an orderly way.

The Human Factor

For complex writing projects like a dissertation, the cycle of research to note-making to publication can be thought of as a sequence from inception to publication (with many iterative steps and small loops in between, of course). In that process, through reading and thinking and researching, your memory is primed for the problem, and your brain is primed to produce relevant ideas the more you spend time on that project. By the end of the writing process, you can likely recite key concepts from memory and participate in scholarly discussions with ease. You have learned all these things, and you have become an expert.

For programming careers, the writing never stops: one feature or bug fix after another, the coding never ends. One experiment follows the next to deepen your understanding of a problem space. The performance is not in scholarly discussions, but in adapting the system you work on to do different things. The proof of your expertise and understanding is in how the artifact, the software, behaves in the end.

You can work on the same code base for decades. Or can switch apps, projects, companies. The thinking, the knowledge, and the writing stays with you.

That’s what experienced programmers bring to the project: expertise, built over a long period of time.