Hacker News new | ask | show | jobs
by tagh 2213 days ago
It's important to keep in mind that Zettelkasten's creator was an academic in the humanities. When I tried this system, I found it really shone when my goal was literature review -- i.e. to weave together arguments from disparate sources and articles, particularly when there was no quantitative or numeric way to do that weaving (e.g. in a table).

I think that more technical and quantitative subjects do not benefit as much from these large 'connectionist' note-taking systems. For example, if your goal is to learn a new programming language, I don't see Zettelkasten being particularly helpful: you've already grokked a a for loop in other languages, and you gain nothing by creating a new linked note under the 'for loop construct' heading. Just do some practice problems instead!

But if your goal is to compare and contrast features across many languages, or to identify where certain software architectures are lacking, Zettelkasten would work just fine.

11 comments

I tried Zettelkasten a few months ago and I found a lot of what you said to be true. It also has a serious upfront labor overhead that really makes it hard to stick with.

Then I discovered Building a Second Brain and it's P.A.R.A. method which was like Just-in-Time Zettelkasten and it's suddenly become a cornerstone of my productivity routine.

I compare the two approaches in this blog post: I recently studied both Zettelkasten and Build a Second Brain (aka P.A.R.A) note taking methods. They share some core principles but BASB seems much more practical for most people

I compared the two here: https://zainrizvi.io/blog/remembering-what-you-read-zettelka...

I find that for myself, the ease with which I can take notes depends on the tool that I'm using. I've tried Notion and Zettlr, but both take a bit to get going.

Have you used anything that you find well suited for the tasks of either PARA or Zettelkasten?

Pen and paper, there is something about writing and quickly drawing diagrams using the pen that seems to be involving the right parts of my brain that seem to be asleep otherwise.
Agreed. Pen and paper is great for taking notes

Yet discoverability becomes a huge challenge. I find that I almost never go back to reference those paper notes. I'd need a good system to keep those notes organized

The solution for me is to keep an index in the front or back of the notebook. Each time I write something of significance I put it in the index.
I have something resembling a Zettelkasten using Tiddlywiki with the Stroll plugin. I'm loving it. I feel like this system is taking me from being someone who hoards notes and never looks at them to someone who actively learns and remembers by making connections between newly-added notes and pre-existing ones in my Tiddlywiki.

https://tiddlywiki.com

https://giffmex.org/stroll/stroll.html

Take a look at Emvi [1]. We wrote about how you can use it as a Zettelkasten [2] even it's not build primarily for that.

[1] https://emvi.com/

[2] https://emvi.com/blog/luhmanns-zettelkasten-a-productivity-t...

I'm using Evernote as my main note taking tool. They've put more effort into making it easier to put notes into it than the other systems I've seen and the PARA system was designed by a guy who used Evernote so it works really well with it.

However, I'm starting to experiment with Roam to write more long form notes to see if I can take advantage of the easy linking capabilities it offers

org-roam
Obsidian recently came up here.
Roam Research
great but expensive.
To be honest, they aren't even charging yet.
Great write up, thanks!
My pleasure!
Well, yes. It is important to clarify the purpose for note taking. Zettelkasten-like approaches are useful when you're trying to synthesize knowledge into a framework/perspective, sometimes as a way to find and contextualize new ideas. If one doesn't care about that, and ones notes already have a well-defined taxonomy/structure then the linking feature of Zettelkasten is not particularly useful.
I disagree. The general idea that human mind stores information as a connected knowledge graph is still valid for technical subjects.

Sure, for simpler examples like if statements, you may not gain much. But, even for loops have differences across languages. JS uses for..of for iterating while Python and Swift use for..in

Also, there are different approaches in each language for getting the index and value while iterating.

Then, there are more complex topics like generics which have significant implementation differences between Java and Swift etc.

It would lead to a better understanding looking at these notes in connection rather than in isolation

Side tracking: What is complex about implementing generics? It is either monomorphization or type erasure. It is not complex in the sense of "stuff entwined with other stuff".
You've just listed two possible things the concept intertwined with, those in turn are interwined with other things.
I mostly agree.

Recently I started with the Zettelkasten approach (120 notes now), so not much experience yet. I did not use something like this for my phd thesis. Thinking back, I don't think it would have helped significantly because computer science works differently than the humanities.

What works very well is to use Zettelkasten as the next step after taking notes from reading book, blog posts, and articles to collect your personal insights. Probably also from movies, podcasts, whatever.

I believe Zettelkasten will help me with writing for my own blog and when I'm collecting information for personal projects. In both cases, I have lots of ideas which are not fully formed yet to be published or implemented. With a job and a family there is little time to pursue it, so I have to work in little steps. Externalizing this ideas is essential and a very-hyperlinked style like Zettelkasten seems to fit well.

For learning little facts about programming languages, spaced repetition is probably more suitable.

> you gain nothing by creating a new linked note under the 'for loop construct' heading. Just do some practice problems instead!

This is when you are learning very basics and not equivalent of literature review.

The proper equivalent would be doing overview of current frameworks. Or learning about bitcoin where you are going through math, design, algorithm, economics considerations and social consideration. Or security where you jump between modeling, attack, defense and tradeoffs.

>overview of current frameworks

Or simply linking libraries to ideas for applications, and explaining how they fit together to provide end user functionality.

This is useful for anyone whos life goals are a little more generic. If all you use it is for learning a new programming language, it's probably limited in usefulness. If however you use it to not just note interesting ideas in a language but whatever you learn about tech in general, it will become more useful. I intend to use it to keep track of interesting tech notes, my project ideas, potential things I want to learn and read further, and some other life activities as well such as house hunting.
I have notes on the internal of a programming language, or what library function does what, along with accompanying example code, as well definitions for things I saw in the wild.

It was sometime difficult for me to figure out how to use an API due to lack of examples. So it's important to document that.

> I have notes on the internal of a programming language, or what library function does what, along with accompanying example code, as well definitions for things I saw in the wild.

I don't think Zettelkasten will provide much benefits for this type of note taking. It probably still is better than normal note taking, but don't expect great benefits using ZK for things like this.

That's fair. All my notes goes into one system, regardless of how applicable a Zettlelkasten system is to certain notes.
It’s useful in pure (abstract) math for linking similar proofs. If you can spot some subjective link between proofs (e.g a proof in algebra and a proof in number theory that use essentially the same counting method) then you might be onto a deeper connection. I used this as an undergrad to “borrow” proofs from other areas.
> if your goal is to learn a new programming language, I don't see Zettelkasten being particularly helpful

I started using one to learn Erlang, and have found it incredibly helpful. Going down a wikipedia-style rabbit hole of my own notes is cool, like I'm exploring my own brain. Sometimes I completely forget how something works, and when I look up the note I took I just have to read a few of my own words to immediately remember it all.

I will say though that progress actually feels pretty slow compared to my usual strategy of just reading through books and articles once or twice, and then web searching whenever I forget something. But I guess that just has more to do with meticulous note-taking in general rather than the "zettelkasten" thing.

> you've already grokked a a for loop in other languages, and you gain nothing by creating a new linked note under the 'for loop construct' heading

So don't do that. Your notes are for you and you only. If you write useless notes, then the notes will be useless. Just write down what you think you might have trouble remembering later.

As a programmer, every time I try to nail down the flow for a new program, I quickly realize that I'm just writing pseudo-code - and often, just straight code.

Maybe the problem is English. Maybe there's a way to structure English sentences in a more precise and meaningful way with hypertext linking and structuring like a legal document? ...but for human-to-human communications?

I like this idea of somehow augmenting human language with more associative structures for deeper meaning and shared understanding.

Maybe one implementation of this is that if the people we talk to (perhaps via a chat app) have their own Zettelkasten, the chat is supplemented/augmented by each others Zettelkasten (either publicly or privately) so we have a deeper understanding of each other and we can go on interesting tangents and create new links. This also aids in more progressive discussions.

(I'll add this concept to my Zettel and see where it takes me :) Thanks for the inspiration)

Be sure to write something about this if you ever take it further. I think it'd be a cool concept and could potentially help connect with people.

I could also see it being too overwhelming and nobody reading the extra context available to them.

Legal documents have cross-references to annexes/addendums. In addition, some words used are defined in the definitions section.

For contracts, there is a customary order, you start with subject of the contract and end with force majeure, severability, term etc.

I don’t believe there is a hyperlinked inherent structure in legal documents. Skilled lawyers can of course draft a meaningful, concise document. But, I think that’s analogous to a skilled programmer writing clear and understandable code.

Most lawyers I know dread formatting and checking for cross-refs.

However, I think we do have one quality, we are used to subconsciously analyze sentences for ambiguities, double meanings, logical contradictions etc. Therefore, lawyers may use English in a way that would do the least harm (or most harm depending on which side they’re on :)).

If we figured out natural language processing or (even if very unlikely) switched our legal documents to an unambigious context-free language such as Lojban, lawyers’ jobs could be entirely automated.

I suspect that impressively structured legal documents stem from templates that have been perfected over the years by multiple lawyers, battle-tested by actual use.

That’s my impression being a junior associate and normally doing the grunt work of checking cross-refs and formatting contracts.

> if your goal is to learn a new programming language, I don't see Zettelkasten being particularly helpful

I don't have experience with Zettelkasten, but after reading this article I'm imagining using it for studying algorithms in general and physics simulations in particular.

It even might be more useful than you think for learning languages. For example, the return expression in Haskell might look like a return statement from an imperative language, and might even be used in a similar way, but under the hood the two have nothing in common. There's a significant amount of foundational knowledge you need before you can jump in and start doing practice problems.

I would find such a thing invaluable for connecting different articles on “the best way to for loop in bash” and “how decomposing a for loop results in AVX512 optimizations”, for example, even if my goal isn’t literary review.