DEV Community

Cover image for How to take smart notes (as a developer)
Emma Goto 🍙
Emma Goto 🍙

Posted on • Originally published at on

How to take smart notes (as a developer)

I recently read the book How to Take Smart Notes by Sönke Ahrens. It explores the note-taking method of a famous German sociologist Niklas Luhmann, who published a huge amount of work in his lifetime (70 books and 400+ articles) - and it was quite possibly due to the efficient way he took notes.

Although the book was primarily aimed at students and academics who have to write papers, I still gleaned some really good lessons from it that I think are applicable to developers, especially those who write blog posts about what they learn.

Write notes in your own words

When studying and making notes, a common approach is to copy down definitions of things straight from the textbook or learning resource that you are using. If you’re attending a lecture or listening to a course online, and are a super-fast typist, you might even be able to directly quote what your instructor is saying straight into your notes.

The problem that comes with writing notes this way is that you’ve been able to skip the work of actually understanding the content. If you go back and re-read your notes a couple of times, this will create the illusion of understanding (as you will be able to recall bits of it in your memory) but saying it in your own words takes a bit more thought and brainpower to do.

When writing your notes, it is important that you do the work upfront of understanding the meaning, by making sure they’re written in your own words. This will save you the hassle of trying to understand it later.

Where writing notes can turn into a problem

You probably will have some sort of notebook (whether it’s paper-based or digital) where you jot down all your notes. If you’re organised, you may even have some sort of tagging system too! Keeping notes is good practice, but problems can arise depending on what you do with the notes after you’ve written them.

Over time as you learn and note down new things, your collection of notes will grow bigger and bigger. It can start to be a bit overwhelming, especially if your notes are disjointed and all over the place without much clear organisation. If you’re looking through your notes for a new topic to blog about, it may be hard to find something worth blogging about.

Even worse - you may have documented the solution to a particularly gnarly problem you solved at work (which would make for some great blog content!) but after coming back to it later you’re finding it hard to turn it into a blog. What made solving this problem so difficult, exactly? Why did we need to solve it in the first place?

When you quickly jot down notes, you’ll probably skip writing down all of the details, because in that moment, you can remember all of it just fine. But when you come back to these notes later, you may have completely forgotten the context in which they were written, and thus these notes will lose some of their value.

Understanding and writing down your notes gets you two thirds of the way there. But there's a third thing you need to do to write truly effective notes. Step three involves something called a slip-box.

What is the slip-box (or Zettelkasten) method?

Soon after you’ve jotted down your notes you need to rewrite your notes into “permanent notes” that will live in your slip-box.

A slip-box, also known as a “card index” or “zettelkasten” in German, is where Niklas Luhmann would store all of his permanent notes on index cards. Today, you can also accomplish the same sort of thing thanks to using various software, some even specifically made for Zettelkasten.

Each of these notes shouldn’t be excessively long - Luhmann kept things succinct by only using one side of each index card. But at the same time, he made sure that the notes themselves were written properly with full sentences, and were able to be understood without any additional context.

As he created more notes, he would find links to other notes he had created, and with a numbering/lettering system would denote certain notes as “sub notes” of other notes. If a note was related to two separate notes, it might be made a sub note of one, and the linkage to the other note would be noted on the index card itself.

The act of writing these notes (properly) and finding the connections between them and other notes isn’t easy. It’s a lot harder than just jotting down notes in a notebook and calling it a day. But by doing this expensive brainpower up front, you’re essentially building up a library of interconnected knowledge from the ground-up.

As you build up your knowledge library and find the relations between bits of knowledge, the real beauty of this system is that it will organically let you find topics to write about - they essentially will have written themselves because you will have done the work upfront of explaining it in your own words, and connecting it to other notes in your slip-box.

Implementing the slip-box method as a developer

Prior to reading this book, my collection of notes was messily stored in Dropbox Paper without much categorisation, and missing lots of context. In some cases, it was just a link to an article or some documentation with a "TIL" written underneath it.

I've taken a little look around at what's available to store and write my notes in, and for now I've settled on Notion. I've started to make the effort to convert some of my "messy" notes into "proper" ones, and I'm finding that I'm actually skipping the act of putting the permanent notes into a slip-box and going straight to creating blog draft out of this content. So I can't yet comment on the effectiveness of properly using a slip-box but for me at least it is providing some results!

If I do find this approach useful in the long term, I'll be sure to write up a post detailing my experiences. In the meantime, I'd love to hear about your note-taking experiences - what does and doesn't work for you?

Thanks for reading!

Top comments (16)

slavcoder profile image
Sławomir • Edited

"I'd love to hear about your note-taking experiences - what does and doesn't work for you?"

I have my own system of course :)
I was reading about taking notes techniques and tested some for a while and for now Im just trying to simplify everything.
I'm using a notes stack for learning purpose. It means I write notes mostly on paper cards in modified Cornell Notes System (without summary). The process looks like this:

When I learn new thing I'm taking notes about that on paper card like this:

|    topic                    |
|  k  |     content           |                     
|  e  |                       |
|  y  |                       |
|  s  |                       |
|     |               |-------|
|     |               |       |
|     |               |  date |
|     |               |       |
Enter fullscreen mode Exit fullscreen mode
  1. The keys are good for repetition, I can hide content and try to bring it back from my head.
  2. Date is a place where I write next repetition date. Every note paper card is stand alone, I decide about next repetition based on how good my previous repetition was, so there is only date of next repetition and previously done. I may need more repetitions or less

    Basic repetitions after learning day:

    • tomorrow
    • after 7 days
    • after 30 days
    • after 1 year
  3. After I write a next repetition date, I place the note in notes stack (a stack of paper notes). The right place in stack is a next repetition date. So everyday I can just take the stack od notes and repeat those on top of it (up to current date) and after that write next repetition date on each note and place it in stack again. Notes wchich I learned enough goes to archive stack.

It may seem complicated, but it accually is very simple. The good part of it is that even if I stop doing my repetitions for 2 weeks because of some reason, I just need to go through my stack up to current date, no need to worry about planing repetitions and be angry on myself if I miss them.

What about fast notes, some tutorial notes etc.

For fast notes, TODO, ideas, project notes etc. Im using google sheets. So I have easy access from smartphone and computer. I have a sheet with list of things I want to learn, so when I find something interesting I just put it there to not distract myself from current work. Google sheets are pretty nice for lists.

For more like tutorial notes with a lot of code, my thoughts or post notes Im using markdown. I have one folder with cheat-sheets, snippets, and all other stuff, each file is a .md file and I'm keeping it on private github repo. I have a quick access to that kind of notes, even this comment I'm writing in this folder as a temporary .md file :)

So when Im going through 4h long tutorial what I do is I code with author (and try to experiment too) and take notes in file at same time. After that I go through my .md note and write a paper note with things to remember from that tutorial and place it in note stack.

And that's it I guess. There is no perfect system for everyone I think, but you can take a bit from many systems to create your own perfect one.


emma profile image
Emma Goto 🍙

Wow thanks so much for writing that out (you could probably write a blog post on that system!). I'm really impressed you're doing handwritten notes for programming stuff.

What sort of things are you trying to memorize? Is it everything and anything or are there specific things you're focusing on?

slavcoder profile image

Things which I want to have quick reffer I try to note in .md files, but things I want to remember and understand I write also or only on my paper note cards.

For example:

  • how strict mode works in js, what are the differents?
  • what are webhooks?
  • some common methods (for example array methods in JS)
  • when I read paper books it is easier for me to take notes on paper too
  • answers for common interview questions

The benefit of it is easy repetition. You remember less if you write on keyboard and it is harder to test your knowledge. My notes stack is not only for programming related stuff, but for all kind of knowledge. I don't make categories - like I said, I simplify everything :)
I'm not sure if it is a right answer for your question.

Thread Thread
emma profile image
Emma Goto 🍙

That answers it - thanks! I could definitely see myself doing this for certain JavaScript concepts.

marcusatlocalhost profile image

Thanks for describing the Zettelkasten principle, I will check it out again.

My note taking process is inspired by plaintext productivity ( - because I love the idea of just the filesystem, plain text files (incl. markdown) and portability, but there are some limitations I can't overcome.

I'm still searching for a Markdown editor, that allows me my own folder structure, indexes files for search and lets me paste images/attachments into a document (with a dedicated folder to that markdown file).

I come close with that setup using sublime text and some markdown extensions in addition to package. Sublime Text indexes all the notes and I can navigate files quickly. But something makes it not as fun to write in Sublime Text (I love coding in ST tough). And it's hard to link notes.

After trying out Joplin and Boostnotes, I have some hopes for but even if I'm free to edit my notes with whatever app (on a phone e.g), Notable forces me to have a flat file structure, when I import existing notes. That's a bit of a bummer.

I checked out notion but as promising as it looks, I feel like this is another vendor look-in (remember Evernote and when they changed their plan?) and filesystem based Dropbox/nextcloud synced plain text/markdown notes with contextualized attachments looks like the holy grail to me. Open, individual, rich (export HTML/PDF with pandoc etc).

Maybe at the end it's how disciplined one is, in writing/tagging their notes. That's maybe where the Zettelkasten principle helps :)

marcusatlocalhost profile image

Looks like is keeping the file structure alive and much more

codevbus profile image
Mike Vanbuskirk

I've tried different note systems, and I'm beginning to feel like Zettelkasten is the first one that really brings something novel to the table.

Combined with something like makes it incredibly powerful.

emma profile image
Emma Goto 🍙

Is Roam free to use? I've never heard of it before.

tmhall99 profile image
Tom Hall

It is for now, it will eventually be pay-to-play. I wrote a little about it in my post* but the links at the end of my post will give you a more thorough introduction.


juanfrank77 profile image
Juan F Gonzalez

Hey @emma
In case it's useful as an update to this 'note-taking' thing, there's a new tool (which is OSS) that allows this kind of workflow, especially for developers.

It's been going for the past 3 weeks, I've been using (and contributing to) and it's awesome. Check out Foam and lmk what you think

rmhogervorst profile image
Roel Hogervorst

I also just read that book. I've noticed I'm reading a lot better while taking notes. That is also a benefit

emma profile image
Emma Goto 🍙

Nice! How did you find out about the book? I borrowed mine from a coworker.

rmhogervorst profile image
Roel Hogervorst

I stumbled across the zettelkasten method ( slipbox) read many blogposts and bought this book on the blogpost recommendation. The method fits very nicely with my more scattered approach to learning.

frankytse_07 profile image
Franky Tse

I have tried using Notion but still my notes are in a mess. Can you please share some of the captured screen on how do you organise your notes? :)) Thanks in advance

emma profile image
Emma Goto 🍙

I've just gotten started with Notion so I'm not sure my way will scale - for now I have all my notes/drafts in one section (with tags e.g. react, preact, jest...) and then I have another section for blog post drafts, and they're organised onto a calendar so I know when to release them.