Connected notes with Zettelkasten
- How we normally take notes
- For Developers
- Personal perspective
- Wrap up
How we normally take notes
Ever since my bachelor thesis, I watched a lot of conference talks on YouTube and read a lot of blog articles about various topics related to programming and software development. I have also watched a lot of content on platforms like Udemy. And every once in a while, I re-read something that I read years ago and come across an idea that still feels new to me, although I must have read this already (I’m guessing you can relate to this). This is despite that I almost always took notes, either on paper or in digital form.
Why is that? Why can’t we have the persistent and reliable memory of the computers we work with every day? And what can we do about it?
There is a lot of research going on about how the brain learns new things (see the references below). In essence, the brain learns by connecting new things to what it already learned. The problem is that this is not the way we normally take notes: When we take notes, we usually take out a new sheet of paper (or a new file) and write bullet point after bullet point. We might even have a look at our notes at a later point to make sure we understand all of it. Most people (and myself in the past) stop at this point and just put the notes into a drawer or directory on their hard drives, never to be ever looked upon again. This creates the illusion that we have learned something. However, we will have trouble remembering what the talk was about after a very short amount of time.
There are, of course, other approaches: You can create your own Wiki like Wiki from Ward Cunningham and utilize hyperlinks between pages to make connections. Back in the 40s, Vannevar Bush created the concept of the “Memex”, a mechanical research partner that would also create links between documents. Both the Wiki and the Memex concept did not force the researcher to cramp a page into a specific category, but rather use a web-like structure, which is more natural to the brian. However, the problem that both approaches have it that they do not provide a workflow that one can use while researching or learning something. They only provide a structure to place and connect full documents.
Lastly, these approaches also do not help you with writing your own texts, such as a blog post or a thesis. Writing is one of the best ways to learn and something, and your note-taking method should help you with it.
The Zettelkasten method was invented and used by German sociologist Niklas Luhmann. Luhmann was a very productive writer and always said his productivity was based upon his usage of the Zettelkasten. His notes were so good that some articles were finished by others and attributes to him, even after his death. Luhmann used little sheets of paper to write down his thoughts and used a reference system to create connections between them. You can see a picture of his Zettelkasten below. Do not be intimidated by the picture, modern approaches do not require you to have an entire room for your notes 😉.
By externalizing his thoughts into a reliable storage, he freed his mind so he could concentrate on the more important task: Understanding what he read without having to fear forgetting something.
He not only had this structure, but also a workflow for taking notes.
- Extract atomic ideas from something you read or watch. The atomicity of an idea is key: This ensures the note can connect to many other notes later. Not only write down what the text says, but also what thoughts you have when you read something. Is there a flaw in the argumentation? What questions are left unanswered?
- Detach the idea from it’s context; make it more general and make sure you use your own words. The translation into your own vocabulary helps with the learning progress.
- Add the note to the Zettelkasten with references on where you got the idea from (very important in academia).
- Connect the idea with other notes in the Zettelkasten using some sort of link. How does this relate to other that? Do these ideas conflict each other or do they complement each other? Does this idea mean anything in this (possibly unrelated) other context?
That way, your notes form a deeply connected web of ideas instead of being isolated to each other.
The workflow for writing something is now a like an exploration: You start with a note that you want to write about, and see where it connects to. Then you follow the connections that seem to be interesting, leaving out the unimportant ones (kinda like when you’re spending hours on YouTube, jumping from one note to the next). Since the notes are already short, in your own language, and contain references to further literature, the path through the Zettelkasten notes forms a argumentative chain. Translating this path of notes into a full text is much easier than coming up with a structure yourself and having to look up references for each point.
When creating these notes, be sure to be selective about them. The quality of notes is important and you should not hoard notes just to make you feel like you accomplished something.
This explanation of the Zettelkasten method is far from perfect. In fact, there is a whole book about it called “How to take Smart Notes” from Sönke Ahrens, where the author explains the whole system and why it works in great detail. If you want to learn more about the Zettelkasten method, I suggest you read this book.
This method of note-taking has a lot of benefits.
- The knowledge of multiple sources is connected with each other and does not lie in isolated places.
- The mindset while reading a text changes: You don’t just summarize what you read, you “hunt” for atomic ideas for your Zettelkasten and try to see how they connect with already existing notes.
- Connections that did not seem obvious can emerge.
- The connections between notes form a natural argumentative chain.
- You do not have to read anything to make new connections, you can work with what you have in your Zettelkasten already alone.
Since this is a blog about software development, it seems appropriate to elaborate how the Zettelkasten method works for developers.
The method comes from sociology, which is a very different field of study than software development. Computer Science is somewhat more “fact based”, while sociology is more “argumentative” (hope I’m not stepping on anyones toes here). The Zettelkasten method will likely not yield any benefit when doing research on theoretical runtime analysis of algorithms. Neither is it likely to help when you’re working on low-level embedded hardware or even when learning the syntax of a new programming language and it’s data types, because that is just documentation and you can look that up elsewhere.
When it comes to content, software developers (and basically any other practitioner of the Zettelkasten method) should keep only notes on topics that interest them. What works (in my opinion) are design principles of software. Some examples are:
- Functional programming
- SOLID patterns
- Domain Driven Design Principles
- Architecture patterns
These topics, along with arguments when to use them and links to alternatives, seem to be more promising to result in benefits.
The paper-based solution is obviously not desirable once the Zettelkasten grows to a certain size. It also is not searchable and not backed up anywhere.
Luckily, the requirements for a Zettelkasten setup are not very big. We just need some mechanism to (hyper)-link small files together. Vimwiki might just be enough. I personally use a software called Obsidian, which specializes in the Zettelkasten method. You can see a screenshot from one of Bryan Jenks, a YouTube who has a bunch of videos about the Zettelkasten method below.
One of Obsidian’s coolest features (in my opinion) is the graph view, which shows you how the notes are connected together visually. There’s also a local graph view, which shows you outgoing and incoming connections to one specific note. Plus, it is based on simple markdown files, which means that the notes are independent from the tool and can be kept under version control.
Personally, I am also very new to this method. I am still in the progress of building a “critical mass” of notes, where the contents of the Zettelkasten alone is enough to work with. To reach that goal, I still need to create notes for a large amount of topics and this will take time. I do wish I started cultivating a Zettelkasten years ago.
In this blog post, I gave a brief introduction to the Zettelkasten method. If you’re interested, I again want to encourage you to read “How To Take Smart Notes” from Sönke Ahrens. It is a comprehensive guide and explains the method a lot better than I could ever do, all backed up by scientific papers. There are also some links to interesting resources below.
Feel free to leave comments if you have questions or remarks, I would love to answer them.