experience of four engineers

I work with each big topic using the same scenario. First of all, I read the input documentation for the language, for example, A Tour of Go. For each language, I create a separate folder, inside which I collect information into phoneme groups – they form a high-level structure of files inside the language folder. The set of groups does not necessarily correspond to the table of contents in the sources – I compose it as it is convenient for me.

High-level structure of notes for the Go language

High-level structure of notes for the Go language

Inside the top-level group, I write a large summary, and then divide it into separate documents. One document – one subgroup. The example shows that in the Data structures group, I created the Array, Map, and Slice subgroups. I search for information on each of them and write it down in the corresponding document as I read.

Subgroups

Subgroups

Each object in a programming language has specific behavior that you need to know about. For example, the Map data structure in Go has a concept called “data evacuation.” Each of these concepts is a great candidate for a micro-note, like the one in Zettelkasten.

Micro note about Map evacuation in Dmitry's system

Micro note about Map evacuation in Dmitry's system

In addition to the key idea, each document has tags that connect it to other notes. Using tags, Obsidian allows you to build a graph, where arrows show what is connected to what. This visualizes connections quite well and builds a system in your head.

All of Dmitry's notes in graph form

All of Dmitry's notes in graph form

This graph shows that the range function in Go works for 4 objects (slice, map, channel, array), and can only be used with a for loop. This connection was not obvious to me until I visualized the information in the program.

Once I have a solid technical foundation for the language, I go to an interview. In my case, an interview is a tool for verifying knowledge. During the interview, I compare the interviewer's questions with my notes: can I answer the question based on the information in the note? If I can't, then I need to restructure the existing data or add new ones.

As a result, a set of language notes turns into a theoretical reference book that can be used as an ultimate set of questions for studying the language and preparing for interviews.

I think Obsidian is suitable for anyone who wants to learn a new discipline, provided that their level of preparation is not zero. If you are completely unfamiliar with the topic, there is a risk of incorrectly dividing the information into groups and getting even more confused. Before you start taking notes, I recommend taking a basic course or studying with a mentor on the topic of interest. I can definitely recommend this tool to:

  • for those who are used to working on a desktop and don't need constant access to notes – Obsidian has an inconvenient mobile app,

  • for those who are tired of problems with Notion and want to use a faster service,

  • for those who need a tool with offline support,

  • for those who are willing to painstakingly collect notes and update data.

I update the information after interviews or when a new version of the language comes out. In a year of using Obsidian, I did not have time to transfer all the notes from Notion – it is a long job, but the result is worth it: I return to the notes every time I want to refresh my knowledge, and a system has already been built in my head that helps me remember complex information.

“IDEs are for code, for everything else there is Obsidian”

Natalia Sagel

Software engineer and member of the Zettelkasten community. Develops telephony modules for Asterisk, Maxim Technology. Writes in Scala and Java. Learns Kotlin with the help of a note system

It is impossible to completely replicate Luhmann's base and in part it is even harmful. In our digital age, there are enough different tools for structuring information, in addition to real paper cards. During long discussions in our chat We have come to the conclusion that Luhmann's system can become a good basis on the basic principles of which something unique can be created. That is why I do not try to call my system Zettelkasten.

All of Natalia's notes in graph form

All of Natalia's notes in graph form

I have been actively using the method for 3 years, and if you count the first attempts – almost 7 years. I maintain my knowledge base in Obsidian, this program works on top of regular markdown files. The system has a huge community that writes plugins. You can create a tool “for everything” from Obsidian, or you can just keep notes. The main advantages of Obsidian:

  • All files are local. No connection to the network and forced synchronization on other servers.

  • Convenient full-text search.

  • Possibility of customization (which I almost never use).

  • By adding the Excallidraw plugin, you can draw directly inside Obsidian. It's convenient to sketch while discussing a task.

  • Minor advantages: graph, backlinks, code highlighting, links within pages, display of images and tables.

With the advent of the notes system, my life has become more interesting and at the same time easier. At first, a lot of time is spent on maintaining your own database, but then it returns with a convenient search and no need to go into the search engine again. It has become easier to work. To look for sources of problems in the code, to explore new libraries, frameworks and languages, to describe the system itself. I began to write more often and share my knowledge with others. Various ideas for pet projects were not lost, but turned into notes and real code.

The “canonical” Zettelkasten uses special indexes, but I have adapted the system a little for myself. I try to write meaningful names for notes with various keywords. All my notes are divided into folders-spheres:

  • Inbox – all new notes go here.

  • Simple – various notes about life. Book clippings, recipes, and the like.

  • Work — working records and schemes.

  • Edu — notes, as well as study plans. All selected information from professional literature also goes here.

  • Knowledge – short, concise notes similar to Zettelkasten.

Note from the Knowledge category

Note from the Knowledge category

My entire life is collected in my database. Here is information about what I have read and watched, work notes, daily notes and various summaries that I write during self-study. Here I also reflect on everything that worries me.

A little tip for all engineers: take notes and you will find it much easier to communicate information to others.

Once a week I sort through my inbox and sort notes by purpose. I throw some out, and add to others. Sometimes I come across new information for old notes that get updated.

The program is always running. All long messages, all useful thoughts that arose during meetings, useful links, reflections, everything immediately flies into the database. Every time I search for something, I start the search from it and only then go to Google.

“The human brain is unreliable”

Stanislav Bogatyrev

Software development expert at YADRO. Has been collecting a knowledge base using the Luhmann method for many years

I have been keeping notes for over 12 years: at first my knowledge base was just similar to Zettelkasten, then I studied the issue on the blog SachaChua and began to change the system towards Luhmann's method. The knowledge base developed along with the tools in the Emacs program.

The initial requirement to keep all data in plain text or something standard, avoiding closed proprietary software, has proven its worth in the first few years. I am gradually adapting the process to changing circumstances: I can throw out some parts of the method or implement my own improvements at my discretion.

It has become easier to explain to other people how I work with my personal information storage. My system is still far from complete. Ultimately, I want to achieve a practical implementation of the concept for everyday use. Memex.

I advise everyone who works with information to maintain a knowledge base. The human brain is unreliable, and without an external carrier it is difficult to analyze accumulated knowledge, find defects and errors of perception, and enhance thinking capabilities.

“I need to imagine how I will use the note in the future.”

Sergey Vasiliev

Space technology engineer. Does electrical testing, uses a note system for work and self-study, and runs a channel where he shares his Obsidian experience.

I have been using the approaches described by Niklas Luhmann for about a year. I agree with my colleagues: almost no one implements Zettelkasten in its pure form, but many, like me, take notes in special programs. I used to collect notes in Evernote, but this tool has far fewer options than Obsidian.

Obsidian has a built-in system of connections between notes that is tracked by the program itself. But the main thing is that this connection system can be represented as a graph. And the graph of connections itself can be dynamically configured to be displayed in different ways (colors, direction, and depth of connections).

I use my knowledge base for self-education and for keeping test records at work. My main rule in keeping cards is to completely avoid numbering. In a digital knowledge base, the name of the card should be meaningful, so that it is easier to find the necessary material.

Technically, this is provided by links, hashtags, three templates, two plugins (text formatting, context menu for images). In the system itself, you need to decide on the types of note structures (that is, in which case a note is a continuation of the previous one, in which case it is a separate independent note).

My system contains a bunch of chains that I'm pretty good at navigating. But creating a card takes 90% of the time from mastering the material. I need to imagine how I'll use the information in the future, what connections to make with other cards.

I currently manage two repositories at the same time and plan to create several more. My experience has taught me that there should be two types of repositories for two note-taking styles:

  1. A common everyday style for managing projects and a slew of note sequences. Here I allow for atomic thinking and a “zoo of topics” in one common repository containing unrelated notes.

This is what the main page of the first repository looks like

This is what the main page of the first repository looks like

  1. A verified style for systematizing the properties of a technical tool or subject matter without reference to projects and at the same time with a fundamental absence of unrelated notes. In such a style, one subject should correspond to one repository, thereby not polluting the detailed information.

And this is the main page of the second repository.

And this is the main page of the second repository.

During my time working with the knowledge base, I realized that when you have a developed system for taking notes, the process of adapting to different situations becomes easier. Because you only need to focus your efforts in one direction – to define the architecture concept. The most important thing is to realize that a universal solution is unlikely to be found. And to ensure that improving the architecture is not an endless process. It is better to make a new adaptation for the next similar situation than to try to fix the errors of the existing architecture.

Do you keep a personal knowledge base? If so, tell us in the comments what program you use to do this and what notes are stored in your “box”.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *