Zettelkasten на практике: с нуля, без эзотерики
Я завёл свой первый Zettelkasten в 2023. Прочитал "How to take smart notes" Зоренна Аренса, вдохновился, открыл Obsidian, написал три заметки и через неделю забил. Через полгода вернулся, разобрался, что я делал не так, и с тех пор веду живой Zettelkasten уже два года. Сейчас в нём около 1900 заметок, и я им реально пользуюсь — статьи пишу из него, продумываю проекты, спорю сам с собой о технических решениях.
Этот текст — то, что я хотел прочитать в 2023, чтобы не угробить полгода на ложные старты.
Что такое Zettelkasten на пальцах
Это система заметок, в которой каждая заметка — атомарная мысль, связанная с другими через явные ссылки. Без папок, без жёсткой иерархии, без "проектов". Просто сеть из коротких заметок, которая разрастается, когда ты что-то узнаёшь или думаешь.
Главный смысл — не "коллекция знаний". Главный смысл — место, где идеи соприкасаются друг с другом, и из этих соприкосновений рождаются новые мысли. Условный пример: ты записал заметку про "оптимизацию SQL-запросов через индексы" и через год — заметку "кэширование GraphQL-резолверов". Эти две темы не лежат рядом ни в одной папке. Но они говорят про одно: "делать дороже один раз, чтобы дальше было дёшево". Когда ты их связываешь — это становится отдельной идеей про инженерные паттерны.
Три типа заметок
Зачем вообще разделение — а затем, что разные типы живут разной жизнью.
Fleeting (мимолётные). Записал на бегу. "Прочитал, что Sonnet 4.5 хорошо в TypeScript-генериках". Не структурно, без ссылок, скорее всего пишется в дневник или Inbox. Цель — не потерять, пока не дошли руки разобраться. Большая часть фитингов в итоге не доживёт до постоянных заметок, и это нормально.
Literature (книжные). Конспект из источника — статьи, книги, видео. Своими словами, с явной отметкой, откуда. Не цитата, а пересказ. Если ты копируешь буквально — ты ничего не запомнишь. Если переписываешь — у тебя в голове остаётся структура.
Permanent (постоянные). Это сердце Zettelkasten. Атомарная мысль, сформулированная как утверждение, со связями к другим заметкам. Permanent заметка не про источник, она про идею. Если ты завтра прочитаешь другую книгу с похожей мыслью, ты не заведёшь новую permanent — ты добавишь связь к существующей.
Что значит "атомарная"
Самая частая ошибка новичка — писать "универсальные" заметки на тему. "Postgres" — заметка на 5 страниц про индексы, типы, MVCC, репликацию. Это не Zettelkasten, это Wikipedia. Такая заметка не связывается с другими — она про всё сразу.
Атомарная заметка — про одно конкретное утверждение. Примеры из моего хранилища:
- "GIN-индекс ускоряет полнотекстовый поиск, но замедляет вставки"
- "MVCC в Postgres хранит старые версии строк до VACUUM"
- "Уникальный индекс — это и индекс, и ограничение целостности"
Каждая — одно предложение или абзац-другое с пояснением. Они связаны между собой и с другими заметками про индексы, базы, оптимизацию. Когда я пишу новую — она примыкает к этой группе.
Размер заметки — не догма. У меня есть permanent на четыре строчки и есть на полторы тысячи слов. Главное правило — одна заметка, одно утверждение.
Связи важнее заметок
Zettelkasten без ссылок — это куча файлов. Когда ты заводишь заметку, обязательно вшивай в неё минимум 1–2 ссылки на существующие. Это самый важный приём, и он же самый тяжёлый, особенно в начале.
Когда я пишу новую заметку про условно "паттерн single-flight в кэшировании", я делаю несколько подходов:
- Ищу по словам, которые в заметке упоминаются: "кэш", "гонка", "race". Что-то да всплывёт.
- Открываю свою "карту контента" по теме (об этом ниже) и смотрю, к какой ветке это пристёгивается.
- Если заметка не связалась ни с чем — это либо новая тема, либо я её плохо сформулировал. Чаще второе.
Связь — это не "тег". Тегу всё равно. Связь — это конкретная заметка, которая что-то говорит по теме, и ты явно решаешь "эта мысль продолжает ту".
## SQL-индекс — это и структура, и ограничение
Когда добавляешь UNIQUE INDEX — ты создаёшь и B-tree, и проверку
на уникальность одной операцией. Это разница с UNIQUE constraint:
он под капотом тоже создаёт индекс, но семантически выражает другое.
Связано с:
- [[Индексы в Postgres B-tree vs GIN vs GiST]] — почему именно B-tree.
- [[Чем CONSTRAINT отличается от INDEX]] — наоборот, со стороны констрейнтов.
- [[Денормализация и индексы]] — как это влияет на стратегию хранения.Maps of Content (карты контента)
Когда заметок становится несколько сотен, искать вручную больно. Появляются карты — заметки-указатели. Они не содержат знаний, они содержат ссылки на тематические группы.
У меня в хранилище около двадцати карт: "Postgres", "Архитектура веб-приложений", "Производительность фронтенда", "Привычки и продуктивность", "Письмо и тексты". Каждая карта — список ссылок с короткими комментариями.
## MOC: Postgres
### Хранение и MVCC
- [[MVCC хранит старые версии строк до VACUUM]]
- [[VACUUM освобождает место, но не блокирует чтение]]
- [[TOAST режет большие значения на 2 КБ блоки]]
### Индексы
- [[Индексы в Postgres B-tree vs GIN vs GiST]]
- [[Уникальный индекс - это и индекс, и ограничение]]
- [[GIN ускоряет поиск, но замедляет вставки]]
### Производительность запросов
- [[EXPLAIN ANALYZE - что важно смотреть]]
- [[Когда seq scan быстрее index scan]]Карты живут и меняются. По мере развития темы я переставляю заметки между подразделами, добавляю комментарии, переписываю порядок. Это сильно отличается от папок: карта — мой текущий взгляд на тему, не "единая истина".
Как я веду заметки в Obsidian
Один vault, один большой граф, никакого деления на "work" / "personal" / "books". Чем больше пересечений — тем полезнее.
Структура папок минимальная: 0_Inbox, 1_Permanent, 2_Literature, 3_MOC, 9_Archive. Папки нужны только для разной "температуры" — что в работе, что устоявшееся, что в архиве. На граф связей это не влияет.
Имя заметки — короткое предложение-утверждение. Не "Index", а "Уникальный индекс - это и индекс, и ограничение". Это потом удобно вычитывать в графе и в Backlinks.
В каждой permanent внизу — секция "Связано с:" с явными ссылками. Я знаю, что Obsidian показывает Backlinks автоматически, но писать связи руками — это часть мышления, не дублирование.
Ритуалы, которые делают систему живой
Сама система не работает. Работают ритуалы вокруг неё.
Inbox-разбор. Раз в день, обычно вечером, я открываю папку 0_Inbox, читаю всё, что туда упало за день. Что-то превращается в permanent, что-то в literature, что-то — в TODO для пет-проекта, что-то выкидывается. Inbox должен быть пустым к ночи.
На разбор уходит 10–20 минут. Если заметок мало — пять минут.
Чтение с заметками. Когда я читаю книгу или длинную статью, я не пишу выписки в процессе. Я делаю пометки в Kindle / Readwise / в самом тексте. На следующий день, на свежую голову, я открываю эти пометки и пишу literature-заметку — пересказ своими словами. Это самый главный шаг: понимание возникает в момент пересказа, не в момент чтения.
Еженедельный обзор. Раз в неделю — 30 минут на просмотр permanent-заметок недели. Что хорошо лежит, какие связи я не дописал, что хочется развить. Иногда нахожу пары, которые "кричат" друг другу — пишу третью, объединяющую заметку.
Чего я не делаю
Не использую теги. Совсем. Поначалу пробовал — получался хаос: одно и то же помечено как #postgres, #sql, #database. Когда я перешёл на связи и MOC, теги потеряли смысл.
Не делаю формальную нумерацию (Лумановскую). Это работало, когда заметки были на бумаге. В Obsidian связь — клик по ссылке. Нумерация просто шум.
Не пишу "общеобразовательные" заметки. Если я не собираюсь использовать эту мысль в работе или мышлении — её здесь не место. Zettelkasten — не справочник.
Что система реально дала
Скорость письма. Мой средний пост раньше я писал 4–6 часов. Сейчас 2–3, потому что 60% материала уже лежит в виде заметок, и я их сшиваю. Этот пост, например, на 80% собран из существующих permanent.
Качество мышления. Когда ты вынужден формулировать каждую мысль атомарно и связывать с другими, ты замечаешь противоречия в собственных взглядах. У меня в хранилище есть пары permanent, которые друг с другом не согласны, и я их специально оставляю — это маркер того, что вопрос не закрыт.
Память. Я больше не пытаюсь помнить, в какой книге было это утверждение. Я помню формулировку, и через graph search нахожу заметку за две секунды.
Главное, что я понял за два года: Zettelkasten — это не приложение и не методология. Это привычка думать в письменном виде, связывая идеи. Obsidian, Logseq, бумажные карточки — детали. Привычка — суть. Если ты пишешь atomic notes и связываешь их регулярно, через полгода у тебя будет что-то полезное. Если пишешь раз в месяц по три файла — никакой инструмент не спасёт.