How do you manage knowledge and ideas?

I’ve found the Clojure community to be a rich ground for novel ideas. Not just to get a specific working solution in a Clojure app, but how to solve problems in general. Rich’s The Language of the System and Hammoc Driven Development has helped set the tone.

Personally, I need to write in order to think. Figure out what the right problem is. Enumerate approaches/solutions. Perhaps start getting into the details of a specific solution.

How are you guys managing knowledge and ideas?

Are you writing a lot? If so, how? Plain text files? Org-mode? Some note taking system?

Are you able to “package” your ideas and knowledge for sharing in a nice way? Systems like clerk make it easy to publish an exploration of words and code. Literate programming has been around for a while.

PS — I didn’t find a suitable category for this question. Perhaps fringe, but it’s not about other programming languages. Suggestions welcome.


Across each novice effort in wading through a few languages I’ve noticed a pattern.

I want to learn a concept. → I take notes → I want to organize them to save or share. I have X method in mind to do so → What good practice to apply these new ideas → Spend some fun time on a small project → To flesh out the toy I need to work with more new concepts :arrows_clockwise:

So I slowly accumulate a collection of discrete and useful things. Like file hosting clients, static site generators, working with tree structuring, parsing, routing. So just about all of my programming journey has been a cycle of personal knowledge management :sweat_smile:

1 Like

I know for lots of people, knowledge mgmt setups are as important as editing setups. The recent outgrowth of notebook libraries (clerk) is a fun demonstration to witness. I think like all good tools your system should inspire the work you do with it.

Personally I’ve been agnostic to the narrower use cases because I’m taking notes on more than clojure and programming. For specific software, I have enjoyed Trilium for some years. It’s a single-author electron app wrapping note file navigation around ckeditor panes.
Obsidian with pandoc makes notes remarkably fun when you can go from nothing to good-looking content across formats in seconds.
Trilium, extensibility has a manual flair and its hotkey support is superior. Obsidian’s plugins have an active community, it’s easier, hotkey navigation is patchy and their pure focus on markdown limits how complex formatting can be. The killer features between the two, in Trilium I love note cloning, property inheritance, and how parent nodes can be leaves (Obsidian, reflecting directory structure, folders ≠ notes).

Still I’ve never gone all the way with manual latex setups. If people here use any of those type of systems (*tex?) for building/working with programming knowledge I’d love to know why, how, with what.

1 Like works great for me. Besides writing I also record a lot of screencasts as documentation (and store them in Notion). For our company wiki we do the same.

1 Like

org mode for anything typed and GoodNotes on iOS for drawings. It’s not perfect but I’ve reached the point where I don’t want to tweak things anymore. I’ve found a lot of value in plain text notes - getting them out of proprietary software was a pain

1 Like

I tend to jot things down in Apple’s Notes app. I like the convenience of always having a device close by I can write on and Notes keeping my entries synchronised.

Then I periodically move notes I want to keep to a personal TiddlyWiki. Anne-Laure Le Cunff has a good introduction. I’ve followed it to set up my wiki, including Stroll (née TiddlyBlink) for backlinks and autocompletion. I also have a small backend running on localhost that commits every change I make to a local Git repository. It took some fiddling to set it all up but I’m happy with the outcome.

The next step, the packaging and sharing part, would probably entail seeding a digital garden, but that’s a whole new ethos to explore.

Have fun!

1 Like

For me the most important things are:

  1. taking small notes on a very specific subject;
  2. linking each note to other ones;
  3. being able to perform a full-text search.

I tend to organize notes in broad categories (e.g. Clojure, Node.js, Operative Systems, Databases) and break them down when they become too big. But that’s not really a stringent requirement, since I would be able to find the notes anyway thanks to the full-text search and the links/backlinks each note contains.

That’s basically what the zettelkasten method is all about:

A Zettelkasten is a personal tool for thinking and writing. It has hypertextual features to make a web of thought possible. The difference to other systems is that you create a web of thoughts instead of notes of arbitrary size and form, and emphasize connection, not a collection.

I use Notion for this, but apart from using links and backlinks I don’t rely on any Notion-specific feature, so it should be easy to replicate the zettelkasten method with many other tools. I use Notion because it is convenient, its mobile app is quite ok (it used to be super slow) and the free tier covers all my needs.

1 Like

I use Roam Research to jot things down as I learn them. Any task that’s tricky and that I’m likely to do more than once goes in there, so the second time it’s much quicker. Any interesting fact I’d like to remember goes in there. Ideas for new projects go in there. Etc. If I was starting again from scratch maybe I’d use Logseq which is very similar but free.