От редакции
инженерная культура
обучение

Второй мозг: как организовать хранение заметок и удобную навигацию по ним

795
0
11 марта 2024
Изображение создано с помощью нейросети
От редакции
инженерная культура
обучение
795
0
11 марта 2024
Второй мозг: как организовать хранение заметок и удобную навигацию по ним

Помнить все — невозможно, особенно в современном мире, перегруженном информацией. Попытки удержать много данных в голове снижают эффективность работы мозга, поэтому ученые советуют «выгружать» их в бумажные или электронные системы хранения и выстраивать базы знаний. Способов упорядочивать информацию — десятки, но одним их них начали пользоваться еще в прошлом веке, а сейчас этот метод — Цеттелькастен — лег в основу сервисов для управления знаниями. В тексте расскажем, как он устроен и поделимся опытом инженера, который применяет его для изучения новых языков программирования.

Изображение создано с помощью нейросети

Как появился Zettelkasten и в чем его суть

В середине XX века социолог Никлас Луман разработал метод организации информации Цеттелькастен (Zettelkasten). Занимаясь наукой, Луман создавал множество заметок, о значении которых вскоре забывал. Чтобы не терять полезные знания, он начал вести картотеку. Идея такого хранилища не была новой: начиная с XIV века ученые и исследователи по всему миру пытались систематизировать информацию единственным доступным способом — вели бумажную документацию. Но только Никласу Луману удалось превратить ящик с бумагами в рабочий инструмент. Он описал Цеттелькастен в эссе «Kommunikation mit Zettelkästen», вышедшем в исследовании теории систем, — так метод стал популярным.

Название метода состоит из двух немецких слов, которые переводятся как «карточка» и «чемодан» и дословно описывают способ хранения Лумана. Ученый заводил карточку под одну мысль и помещал ее в ящик, где находились другие связанные с ней карточки. Для записей он выбирал листы обычной бумаги формата А6 — они тоньше, чем специальные каталожные карты, и занимали меньше места.

Как выглядел Цеттелькастен у Лумана

Карточки не работали бы без системы нумерации и ссылок, которая помогала быстрее в них ориентироваться. У каждой заметки был номер: первая цифра — номер темы, вторая — номер заметки. Если Луману нужно было дополнить заметку, он добавлял к названию новой карточки букву. В итоге получается уникальный код, который вы видите на картинке: 9 — номер темы, 8 — номер заметки, j — обозначение дополнительной карточки.

Карточка для Цеттелькастена

В начале каждой крупной темы — например, новой научной статьи — ученый писал карточку с важными подтемами и помечал их заглавными буквами. С них начинался код карточки внутри большой темы. Внутри такой системы номер карточки мог выглядеть так: А (подтема) / 1 (номер темы заметки) / а (дополнение).

Так выстраивалась древовидная структура, похожая на устройство современных облачных инструментов для ведения заметок.

Карточка для Цеттелькастена с содержанием

Социолог полагал, что знание связей между уже существующими идеями помогает придумать нечто новое и стать более продуктивным в научном познании и создании материалов. Он называл свою картотеку «вторым мозгом» и «партнером по общению», так как постоянно обращался к методу для поиска информации. Никлас Луман доказал эффективность Цеттелькастена на собственном примере: за 40 лет научной деятельности он накопил более 90 000 заметок, благодаря которым опубликовал более 400 статей и 70 книг.

Онлайн-инструменты, использующие метод Zettelkasten

Логика, по которой Никлас Луман собирал и хранил информацию, легла в основу современных инструментов для организации данных: Obsidian, Notion, Org-mode (Emax) и других. Сам инструмент — это шкаф, корневые папки — ящики, в который пользователь «складывает» страницы, заменившие карточки. Если бы ученый посмотрел на программы управления данными, он бы удивился, насколько их устройство похоже на устройство Цеттелькастена. Инструменты помогают распределить данные в древовидную систему с четкой иерархией и простым управлением. Пользователь может перемещать заметки, собирать их в группы и организовывать необходимую логику вложенности элементов.

Программы, вдохновленные методом, активно используют как в корпоративных, так и в личных целях — в компаниях ведут базы знаний, а рядовые пользователи составляют в них конспекты, когда читают книги или проходят обучающие курсы. В практическом применении Цеттелькастена много нюансов, поэтому мы попросили активного пользователя метода поделиться опытом. О поиске решения для хранения данных и задачах, в которых оно помогает, рассказал старший инженер по разработке ПО в YADRO Дмитрий Зверев.

Zettelkasten на практике

Дмитрий Зверев, Go-разработчик в департаменте объектных хранилищ, пишет API для TATLIN.OBJECT:

Я использую Obsidian — самый близкий к Цеттелькастену инструмент — для изучения новых языков программирования уже год. До Obsidian пользовался Notion, но у этой программы есть значительный минус: когда сущностей становится слишком много, инструмент загружается медленно и с трудом открывает новые страницы. Когда мои заметки перестали влезать в Notion, я начал искать новый метод хранения данных и наткнулся на обсуждение программы Obsidian в чате Gopher Club. Заинтересовался методом, по которому работает сервис, прочитал несколько статей на Хабре про Цеттелькастен и решил переносить данные из Notion в новое пространство. За год в моей коллекции накопились заметки по двум языкам: Go и Python.

С каждой большой темой я работаю по одному и тому же сценарию. В первую очередь читаю входную документацию по языку, например, A Tour of Go. Для каждого языка завожу отдельную папку, внутри которой собираю информацию в группы-фонемы — они формируют верхнеуровневую структуру файлов внутри папки для языка. Набор групп необязательно соответствует оглавлению в источниках — составляю его так, как удобно мне.

Cтруктура организации данных в Obsidian

Внутри верхнеуровневой группы я пишу большой конспект, а потом делю его на отдельные документы. Один документ — одна подгруппа. На примере видно, что в группе Data structures я завел подгруппы Array, Map и Slice. По каждой из них ищу информацию и в процессе чтения записываю в соответствующий документ.

У каждого из объектов в языках программирования есть специфическое поведение, о котором нужно знать. Например, структура данных Map в Go содержит понятие «эвакуация данных». Каждое из таких понятий — отличный кандидат на микрозаметку, как в Цеттелькастене.

Единица информации в Obsidian. Заметка о Map evacuation

Помимо ключевой мысли, у каждого документа есть теги, которые связывает его с другими заметками. При помощи тегов Obsidian позволяет строить граф, на котором стрелками показано, что с чем связано. Это довольно неплохо визуализирует связи и выстраивает систему в голове.

На этом графе видно, что функция range в языке Go работает для 4 объектов (slice, map, channel, array), а применить ее можно только с циклом for. Для меня эта связь была неочевидной, пока я не визуализировал информацию в программе.

Когда я сформировал крепкую техническую базу по языку, я иду на собеседование. В моем случае интервью — инструмент для верификации знаний. На собеседовании я сопоставляю вопросы интервьюера с моими записями: могу ли я ответить на вопрос, руководствуясь информацией в заметке? Если не могу, значит, нужно реструктурировать существующие данные или добавить новые.

В итоге набор заметок по языку превращается в теоретический справочник, который можно использовать как ультимативный набор вопросов для изучения языка и подготовки к интервью.

Думаю, Obsidian подойдет любому, кто хочет изучить новую дисциплину при одном условии: уровень подготовки должен быть ненулевым.

Если вы совсем не знакомы с темой, есть риск неправильно разделить информацию на группы и запутаться еще больше. Перед тем, как начать вести заметки, советую пройти базовый курс или позаниматься с ментором по интересующей теме.

Кому точно могу посоветовать инструмент:

  • тем, кто привык работать на десктопе и не нуждается в постоянном доступе к заметкам — у Obsidian неудобное мобильное приложение,
  • тем, кто устал от проблем с Notion и хочет пользоваться более быстрым сервисом,
  • тем, кому нужен инструмент с поддержкой офлайн-режима,
  • тем, кто готов кропотливо собирать заметки и обновлять данные.

Я актуализирую информацию после собеседований или когда выходит новая версия языка. За год использования Obsidian я не успел перенести все заметки из Notion — это долгая работа, но результат того стоит: возвращаюсь к записям каждый раз, когда хочу освежить знания, а в голове уже выстроилась система, которая помогает запомнить сложную информацию.

Больше сценариев применения метода и советы от практиков вы можете найти в тематическом сообществе и подкасте «Управление знаниями».

Если вы тоже пользуетесь Цеттелькастеном или программами, основанными на методе, пишите в комментариях, как они помогают в работе.

Наверх
Будь первым, кто оставит комментарий