‹ go back
I’ve started seeing a whole trend around Zettelkasten with a lot of developers online, especially those who are into plaintext notetaking. I was interested in how I’d tweak the system, so I decided to try it out for a while. (It’s been like 2mo, nothing extreme).
Going to school online has allowed me to begin porting a lot of my normally physical notes to a digital platform, especially as I predict my senior (damn, I’m really about to become a senior in a couple months) year will be mostly online as well. I’m also planning on doing a lot of online learning over the summer (and during the school year as well), and I’d rather not have to jump between primarily paper / physical notes and primarily online notes for different subjects.
(I know they say it’s better to write it out by hand to remember, but I have a quirky way of doing things that works for me, and that’s my choice. Y’all best not try to scronch me. And in the end, I do write my hand some of the time before I transcribe to digital, so I really don’t know why I wrote this.)
As well, I’m planning to perhaps move to Manjaro soon, so I couldn’t stay with my dear friend Microsoft Onenote. So, plaintext productivity it is.
As a small aside, whenever I refer to notes in this article, I also am referring to some classwork and essays. I have a weird way of doing things, I know.
Migrating from OneNote
My first step in this journey was to migrate all my previous notes and schoolwork from OneNote. Previously, all my schoolwork, blog posts, and development notes were collated into one large binder. This way, I wouldn’t have to fumble around with different binders, especially when inevitably, one piece of writing or work would fall between two or more categories.
First, I began by creating a OneDrive (yes, I’m still going to use OneDrive simply because I don’t want to deal with setting up DropBox or whatever right now) folder. Then, for each section in my binder, I’d create a folder.
This was the hard part: copying all my information over. For each page in each section, I’d
touch a new file with the same name. (As another aside, my naming convention is usually ‘[topic] - [subtopic / class]’. For things like blog posts, I use a ‘yymmdd’ convention.) OneNote has the capabilities to embed rich text and formatting and things like that, which I lost during the process. I know there’s a couple of hacky ways to preserve formatting with pandoc and Azure conversions, but the way I did it was simply with good ol’ Ctrl-C, Ctrl-V.
Yes, for each of my 100ish files, I manually copy pasted everything in. When I’d looked at navigating the OneNote API, I honestly didn’t want to go through the file conversions and spend ages writing an automation script. Relevant XKCD.
One other thing I did was to set up my files so they’d display in order of creation date. This let me have my files in roughly the same order as before in OneNote.
Zettelkasten and its Problems
If you’re still unsure what Zettelkasten is, I’d recommend you look at the ‘official’ Zettelkasten site. Lots of good beginner resources there, and they explain it a lot better than I can.
The basics: Zettelkasten is a knowledge system of smol, interconnected notes.
Right off the bat, I knew I wouldn’t exactly like the ‘small’ bit about the notes. Originally, these notes were stored in a slipbox, and I get how it’s easier to have just one idea on one side of the card. However, my personal workflow is more file-focused, with longer, more in-depth explorations rather than small little chunks of information.
As well, I didn’t like the idea of having to interlink all my information. Logically, it seems to make sense to link files, just to make sure that you don’t forget a great resource you created earlier. However, I don’t have that many files yet, and I have a very clear organization, where every topic is in its own file. I won’t get the full benefits of having these interconnections, so I abandoned them in my own system.
How my system works is a bit different, and in hindsight, completely unlike the Zettelkasten system. It’s more an offshoot derivation1.
My workflow looks something like:
- Learn something
- Categorize whatever I’ve just learned into a broad topic and then create a subtopic file
- Begin writing notes. More about this soon.
- If necessary (i.e. is an assignment essay) then convert to .docx with Pandoc
- Archive it and make sure that everything’s uploaded to OneDrive
- Sometimes, I’ll come back to review. If I do review, I usually go through a list of topics and try to rewrite my notes completely from memory.
I suppose each of my files is a collection of Zettels, or a Zettelkasten in and of itself. Each of my smaller notes would represent a Zettel, especially in the Principle of Atomicity (minus the ID part. I will sometimes link within a document, but don’t give them explicit IDs. Markdown FTW!)
I’m also currently using a dual-write system, where I write things down on paper first (despite what I said in intro, I still do write by hand), and then converting to Markdown (manually). I’ve found that I’ve been writing my notes in Markdown as well (like, physically handwriting hashtags and using Markdown syntax with physical notes) I personally find the Markdown syntax very productive, even while using pen-and-paper for notetaking. Especially because I transcribe my notes again to digital format, that cements knowledge and information even better.
I also have this interesting notetaking format with each Zettel where I begin each topic with a full sentence. I call it ‘conversational notetaking’, especially because I try to use humour and take notes as if I’m teaching or having a conversation. For example, I’ll have a sentence along the lines of ‘I’m not sure how I feel about Zettels.’, followed by some bullet points about what exactly I dislike or what I’m unsure about. I find this system productive, especially during review. Humour is the best way to remember things!  I end up having to explain a lot of things to myself with my current learning system with self-learning, so making studying fun is essential for self-motivation.
Vim and Pandoc
I’m sure absolutely no one particularly cares about what tools I use, but in case you do: a mixture of Vim, VSCode, and Pandoc.
I use Vim for lightweight editing, and am exploring it for normal plaintext editing. Eventually, when I become more familiar with it, I’ll see if I want to use it for programming as well. I switched to Vim because of its low battery / CPU / RAM usage, compared to OneNote and VSCode. It’s also distraction free, and I was also interested in the hype behind Vim. So far, I’m familiar with several of the basic commands, and I really enjoy the workflow. It’s almost like magic.
However, I still need to do a fair bit of customization to get it ready for normal use. I might want to set up a code navigation plugin (or get more familiar with how it works natively), and understand how the :Explore commands properly work instead of Googling it each time. As well, I’d like to see how to set up an integrated terminal (or adapt my workflow) like VSCode uses.
VSCode is what I use for other heavier editing. When navigation is important (when I’m jumping in between several places very frequently, for example) or when I’m just not feeling like trying to deal with Vim, I generally use VSCode. However, it’s a little heavy for just plaintext editing, especially with my terrible battery life. I’m trying to adapt to only using VSCode for proper programming.
Pandoc is my tool of choice to convert .md (in which I format all my notes at the moment) to .docx, if required. My teachers generally request work in Word format2 and it’s a bit annoying to have to convert between formats right now. I’ve had to set up a custom reference docx (thank heaven Pandoc makes this available) with my preferred formatting, which greatly reduces the amount of customization time right now. I plan on using this quite frequently, especially when I move to Linux. Need to spend a little more time investigating other functionalities and use cases to which I can apply Pandoc.
For the last bit, I’ve been exploring various notetaking and productivity workflows, and I think my system of conversational notetaking works quite well for my use cases. I don’t claim that it’ll work for everyone, nor work for anyone besides me. It’s what works for me, and that’s all that matters.
I’ve been writing the backend of my Opus rewrite, but for the last while I’ve been feeling a little burnt out regarding development. I plan on doing a lot of development learning over the summer, so I might rest up and take a short break between now and then. I might have overspent my creativity for the last bit - I’ve made nearly exactly 4 commits a day on projects for the last couple months. During this break, I might want to take some time to explore algorithms via Khan Academy. It doesn’t require much creativity, just learning and using my notetaking system. Besides, I think I’ll need it for what I’m doing over the summer.
Another thing I’d like to do is continue writing blog posts, which requires slightly less creativity3 or mental thinking. I’ve been enjoying it so far, so we’ll see what comes up in the future!
A Zettelkewbish, perhaps. badumchh 🥁 ↩︎
Which is another reason why I’m contemplating remaining solely on Windows. I don’t see how efficient it is to write and do work in Manjaro, or Linux in general, and have to boot into Windows each time I’d like to reformat a file and check that it’s done it properly. I could use Word Online, but it lacks many of the features that native Word uses. And again, I could use LibreOffice, but I’m not familiar with it yet. We’ll see what I invest time into using. ↩︎
It probably doesn’t, but I feel more motivated to write right now rather than to code and I really don’t know why. ↩︎
‹ go back