Rain Lag

Два блокнота для кодера: как запоминать и то, что ты строишь, и то, чему учишься

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

Вступление: почему ваши текущие заметки не работают

Вы проходите туториал, чините мерзкий баг или наконец-то понимаете, как работает dependency injection. Вы хотите это запомнить. Даже делаете заметки.

Через две недели вы сталкиваетесь с похожей проблемой, смотрите на экран и думаете: «Разве я это уже не решал?» Начинаете рыться в логе команд, случайных сниппетах и скриншотах. Находите… хаос.

Проблема чаще всего не в том, что вы не ведёте заметки. А в том, что вы смешиваете два совершенно разных типа мышления в одном месте:

  • Мозг «просто сделать, чтобы работало» (краткосрочный, тактический)
  • Мозг «я хочу реально это понять» (долгосрочный, концептуальный)

Когда они живут в одном блокноте, они конкурируют. Быстрые фиксы закапывают глубокие инсайты. Туториалы тонут в логах багов. В итоге у вас получается хронологический дневник вместо инструмента для роста.

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


Система из двух блокнотов: «Сборка» и «Обучение»

Думайте об этом как о ментальном разделении:

  • Блокнот 1: рабочие (build) заметки — про код, который вы пишете сегодня
  • Блокнот 2: обучающие (learning) заметки — про идеи, которые вы хотите помнить завтра

1. Блокнот «Сборка»: оперативная память вашей кодерской жизни

Ваш рабочий блокнот — это место, где вы фиксируете:

  • Над чем вы сейчас работаете
  • Баги и неудачные попытки
  • Дизайн-решения и компромиссы
  • Команды, конфиги и разовые скрипты

Это ваш черновик и лабораторный журнал. Ему не нужно быть красивым или вечным. Он должен быть честным и «здесь-и-сейчас».

Типичные записи могут выглядеть так:

  • «Пробовал обновиться до React 19. Упал SSR. Ошибка: X. Откатился. Гипотеза: Y.»
  • «Проблема с производительностью — N+1 запрос. Временное решение: индекс по колонке Z.»
  • «Задеплоил v1.2.3 — переименовал env-переменные в CI. Не забыть обновить staging.»

Вы фиксируете контекст вокруг решений, чтобы будущий вы понимал, почему всё устроено именно так и как вы к этому пришли.

2. Блокнот «Обучение»: ваш долгосрочный мозг

Ваш учебный блокнот — это место, где вы отслеживаете:

  • Концепции и теорию (например, CAP-теорема, event sourcing, dependency injection)
  • Паттерны и антипаттерны, которые постоянно встречаются
  • «Выводы и уроки», извлечённые из проектов и багов
  • Обобщаемые практики, чек-листы и ментальные модели

Если рабочий блокнот отвечает на вопрос: «Что я сделал сегодня?», то учебный отвечает: «Что я хочу помнить в долгую?»

Здесь вы превращаете сырой опыт в повторно используемое знание.


Хватит просто логировать — начните думать: как осознанно вести журнал

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

Относитесь к заметкам как к инструменту для рефлексии и решения проблем, а не просто как к журналу событий.

В рабочем блокноте это значит:

  • Записывать гипотезы до того, как что‑то пробуете
  • Фиксировать неудачные попытки и почему они не сработали
  • В конце сессии подводить краткий итог: что вы поняли

В учебном блокноте это значит:

  • Спрашивать себя: «Какой принцип за этим стоит?»
  • Замечать и записывать паттерны, которые повторяются в разных проектах
  • Превращать разовые уроки в правила, чек-листы или эвристики

Простая рефлексия в конце дня:

Рабочий блокнот: Что я пробовал? Что сработало? Что не сработало? Что меня удивило?

Учебный блокнот: Что я сегодня узнал такого, что хотел бы объяснить будущему коллеге (или себе в будущем), даже если текущий проект исчезнет?

Этот небольшой сдвиг — от «просто логировать» к «думать» — очень быстро даёт эффект.


Структурируйте учебные заметки: от набросков к базе знаний

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

Ниже — два проверенных подхода, которые можно адаптировать под себя.

Вариант 1: заметки в стиле Zettelkasten (атомарные и связанные)

Zettelkasten — это умное немецкое слово для коробки с маленькими, связанными друг с другом заметками. Полную систему осваивать не обязательно; достаточно взять основные идеи:

  • Делайте атомарные заметки: одна концепция — одна заметка (например, Что такое идемпотентность?)
  • Используйте ссылки, чтобы связывать родственные заметки (например, идемпотентностьHTTP-методыREST-дизайн)
  • Даёте каждой заметке понятный заголовок, который отвечает на конкретный вопрос или формулирует конкретную мысль

Со временем вы строите не стопку грязных документов, а сеть взаимосвязанных концепций.

Вариант 2: метод Cornell (записать, прояснить, подытожить)

Метод Cornell отлично подходит для туториалов, докладов и курсов:

  • Правая часть: подробные заметки (шаги, примеры, сниппеты кода)
  • Левая часть: ключевые слова и вопросы (например, «Почему тут используют монорепы?»)
  • Низ страницы: краткое резюме своими словами

В цифровом виде это легко имитировать с помощью заголовков:

# Концепция: Message Queue (очереди сообщений) ## Заметки - Producers отправляют сообщения в очереди, consumers обрабатывают их асинхронно… ## Вопросы / Ключевые слова - Backpressure - At-least-once vs exactly-once delivery ## Резюме Очереди сообщений развязывают производителей и потребителей, позволяя системам масштабироваться и устойчиво переживать сбои за счёт…

Суть не в конкретном формате. Суть в том, чтобы:

  • Выделять отдельные концепции
  • Задавать вопросы
  • Пересказывать своими словами

Инструменты, которые помогают «двухмозговой» системе заработать

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

Настройте два пространства

В выбранном инструменте создайте:

  • Пространство Build (Сборка)
    • Ежедневные заметки (например, 2026-01-04) о том, над чем вы работали
    • Отдельные страницы для текущих проектов
  • Пространство Learning (Обучение)
    • Страницы‑концепции (например, Основы индексирования в базах данных)
    • Тематические хабы (например, Производительность backend, Стратегии тестирования)

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

Используйте бэклинки, теги и шаблоны

  • Бэклинки (обратные ссылки): помогают увидеть, «где ещё я это упоминал?»

    • Из журнала бага: ссылка на Ошибки типа Off-by-One в учебном блокноте
    • Из Стратегии кеширования: видно все рабочие заметки, где всплывали проблемы с кешем
  • Теги: группируют связанные заметки без жёсткой структуры папок

    • #bug, #pattern, #refactor, #frontend, #performance
    • Пример: заметка с тегами #bug и #sql появится и в обзоре багов, и в конспектах по базам данных
  • Шаблоны: стандартизируют записи

    Шаблон рабочей заметки:

    # Build Log – YYYY-MM-DD ## Что я делал - ... ## Проблемы / Баги - Проблема: - Симптомы: - Гипотеза: - Эксперименты: - Решение: - Ссылка на концепцию: [[Здесь связанная концепция]] ## Решения - Решение: - Альтернативы: - Обоснование:

    Шаблон учебной заметки:

    # Концепция: [Название] ## Что это ... ## Зачем это нужно ... ## Пример ... ## Связано - [[Связанная концепция 1]] - [[Связанная концепция 2]]

Сделайте обучение наглядным, удобным для навигации и повторения

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

Организуйте туториалы как wiki-страницы

Вместо одной огромной страницы «Конспект по курсу Kubernetes» разбейте материал на части:

  • Kubernetes — Pods
  • Kubernetes — Services
  • Kubernetes — Deployments
  • Kubernetes — Типичные грабли

Затем свяжите их из центральной хаб-страницы:

# Kubernetes — учебный хаб ## Базовые концепции - [[Kubernetes — Pods]] - [[Kubernetes — Services]] - [[Kubernetes — Deployments]] ## Практика - [[Kubernetes — Troubleshooting]] - [[Kubernetes — Типичные грабли]]

Используйте визуализацию там, где она помогает

  • Грубые схемы архитектуры
  • Sequence diagrams для ключевых потоков (например, логин, оплата)
  • Простые таблицы для сравнения подходов (например, REST vs GraphQL)

Визуальные образы дают мозгу больше «крючков», за которые можно зацепить идею.


Пересматривайте, рефакторьте и поднимайте инсайты на новый уровень

Учебный блокнот — это не «однажды написал и забыл». Он должен развиваться.

Раз в неделю (или с комфортной частотой):

  1. Просмотрите свежие рабочие заметки.
    • Спросите себя: «Есть ли тут повторяющаяся тема?» (например, баги с авторизацией, ошибки в SQL, race conditions)
  2. Вытащите из этого концепции в учебный блокнот.
    • Превратите «тот странный баг с JWT» в заметку‑концепцию: JWT: истечение срока и рассинхрон часов
  3. Повышайте инсайты до чек-листов и best practices.
    • Из серии багов с авторизацией → Чек-лист изменений в auth перед деплоем
    • Из проблем с производительностью → Чек-лист по оптимизации API

Эти чек-листы затем управляют будущей разработкой:

  • Перед крупным деплоем проходите по Deployment Checklist
  • Перед мёрджем новой фичи пробегайтесь по Security Gotchas

Ваши сегодняшние проблемы становятся завтрашними защитными барьерами.


Замкните цикл: связывайте рабочие заметки с концепциями

Настоящая сила системы появляется, когда вы связываете два блокнота.

Каждый раз, когда вы решаете конкретную проблему, задавайте вопрос:

«С какой концепцией связан этот баг или решение?»

Примеры:

  • «Баг с кеш-инвалидацией» → ссылка на Стратегии кеширования и Паттерны устаревших данных
  • «Race condition в асинхронном коде» → ссылка на Управление конкурентностью и Идемпотентные операции
  • «Больная миграция схемы» → ссылка на Лучшие практики миграции баз данных

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

И наоборот, когда вы сталкиваетесь с новым багом, вы можете:

  • Найти в учебном блокноте похожие концепции
  • Пройти по бэклинкам и посмотреть, как вы уже решали родственные проблемы

Ваши блокноты начинают ощущаться не как архив, а как расширение вашего «кодерского» мозга.


Заключение: строите сегодня, учитесь для завтра

Разделить заметки на рабочий блокнот и учебный блокнот — это не лишняя бюрократия, а усилитель.

  • Рабочий блокнот сохраняет контекст, эксперименты и решения, чтобы вы могли «отлаживать» собственную историю.
  • Учебный блокнот превращает разрозненный опыт в паттерны, чек-листы и ментальные модели, которые со временем накапливаются и усиливают друг друга.
  • Структурированные заметки и инструменты вроде Obsidian или Notion помогают связывать эти два мира так, что реальные баги подкрепляют абстрактные идеи.

Не нужен идеальный процесс. Начните просто:

  1. Создайте два пространства: Build (Сборка) и Learning (Обучение).
  2. Заведите по одному простому шаблону для каждого.
  3. В конце каждого дня переносите минимум один инсайт из BuildLearning.

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

Два блокнота для кодера: как запоминать и то, что ты строишь, и то, чему учишься | Rain Lag