Когда я был мал — писал ужасные конспекты: они представляли из себя тетради с грязным текстом и плохой структурой. Практически бесполезные.
Потом, когда я открыл для себя MOOC видео курсы, продолжил использовать те же антипаттерны, что и в школьные времена, но уже не так безобразно: с помощью VimWiki и позже — с Jupyter.
Записи всё еще были плохо структурированы. Посмотрите на это: у меня даже мотивации не хватает на то, чтобы просто открыть и посмотреть на то, что там внутри:
В какой-то момент я понял какой метод ведения записей работает на мне лучше всего, чем и хочу поделиться.
Основная идея заключается в том, чтобы спроецировать нашу память в записи (а не память лектора), используя принципы разработки программ.
Необходимые условия
Полагаю вы уже знаете про базовые советы, вроде выражения мыслей с помощью своих слов (из своего словарного запаса, с более простой терминологией) или фокусировании на вопросах, ответах, выводах и доказательствах.
Также предполагаю что вы знакомы с техникой «чанкинга» из курса «Учимся учиться» или из книги «Думай как математик».
Сделайте так, чтобы хорошо читалось
Мы, разработчики программного обеспечения, очень серьезно относимся к качеству кода. И мы не любим код с запашком.
Мы общаемся с помощью кода и вкладываем дополнительное время и энергию в написание элегантного кода, чтобы потом его могли эффективно читать другие разработчики. В том числе и мы сами: в будущем мы в буквальном смысле становимся другими людьми.
Этот же подход мне показался удобным и для личных заметок: вы можете оптимизировать поиск и чтение заметок, применяя чуть больше усилий к написанию.
Сырой черновик
Запишите заголовок и источники (книги, статьи, научные работы, видеозаписи, что бы вы не использовали) в конкретный блок информации. Начните анализировать первый источник. Пока анализируете — добавляйте некоторые ключевые детали.
Рефакторинг
Теперь выделите ключевые слова, разбейте длинные предложения, используйте более сложную иерархию маркированных списков, добавьте подзаголовки. Используйте Бритву Оккама: уменьшайте запись несколько раз не теряя изначальный смысл.
Продолжайте изучать остальные источники и обновляйте соответствующие записи, добавляйте новую информацию и уточняйте старую.
Когда запись становится большой — делите ее на файлы или вовсе структурируйте с помощью папок.
Как выбрать структуру? Выбирайте такую, которая будет вам удобна: представьте что вы ищете что-то в своих записях. Как именно будете искать? Какой наиболее короткий путь к записи подойдет?
Добавьте подсказки себе на будущее
Надоело учиться и хочется уже начать что-то делать? Быть прагматичным — это хорошо. Добавьте предположения, которые возможно захотите исследовать в будущем, с помощью TODO-комментария.
Нашли клёвый ресурс на тему, которую уже отложили? Найдите соответствующую запись, добавьте источник и продолжайте делать то что делали.
TODO-комментарии считаются антипаттерном некоторыми разработчиками. Тем не менее, я всё же считаю их полезными для личных проектов и заметок.
Вам не надо продолжать свое исследование при очередном пересмотре заметки. TODO-комментарий — лишь знак того, что вы все еще чего-то недостаточно хорошо знаете и возможно захотите улучшить знание в конкретной области, в случае если встретите ее на практике.
Пересмотр и улучшение
Предположим что прошло какое-то время и вы решили воспользоваться своими записями. Вы решаете конкретную задачу и вам понадобилось что-то быстро найти. Возможность найти информацию быстро важна: она понижает вероятность потерять фокус на задаче, которую вы пытаетесь решить.
Попробуйте поискать в файлах:
Не нашли ничего? Возможные причины:
- опечатка при вводе поискового запроса — проверьте сначала это
- неверное ключевое слово — та же идея в прошлом была описана синонимом
- опечатка в самой записи
Пришло время улучшать. Найдите запись вручную и почините проблему с помощью
- исправления опечатки
- добавления ключевого слова
В следующий раз эту же запись получится найти быстро.
В особо странных случаях запись снова не получится найти. Например, недавно я искал кое-что связанное с математической статистикой:
Не нашлось. Написал неправильно?
Неа. Я нагуглил что-то, но что за… ерунду я нашел?
Так как я не носитель английского у меня заняло еще немного времени на осознание того, что всё-таки это была опечатка при вводе.
Опечатки редко используемых слов — это нормально, даже если вы носитель языка. Возможное решение — добавить ключевое слово с опечаткой, чтобы потом можно было быстро найти такую запись.
Другой вариант — использовать какой-нибудь хитрый поисковик с поддержкой нечеткого поиска.
UPDATE: Оказывается в данном конкретном случае это всё-таки был вредный совет. Вместо того, чтобы торопиться записать ключевое слово с опечаткой, стоило сначала нормально разобраться во всех этих запутанных для меня терминах и дописать «quantile» в качестве валидного ключевого слова.
Обновите структуру заметок в соответствии с вашей памятью
Представьте что вы не смогли найти заметку быстро, даже когда попытались поискать ее вручную. Возможные причины:
- запись находится не на своем месте
- правильное место трудно определить
- куда бы вы положили записи про нотацию «большая О»: в математический анализ или алгоритмы?
Как это исправить?
- переместите блок или файл в правильное место
- добавьте ссылку с одной заметки на другую
Отрефакторьте еще раз
Предположим, что вы таки нашли что искали, но понять написанное с ходу не получается — тогда просто упростите это снова.
Еще одна типичная проблема — найти несколько заметок, которые на самом деле должны быть одной. Просто объедините такие фрагменты в одну заметку и положите в соответствующее место.
Найдите баланс
Как не переборщить с этим всем? Если вы ловите себя на том, что тратите время на поиски заметок, которые находятся не на своем месте — это знак того, что структура всё еще плохая. Просто исправляйте каждый раз, как встречаетесь с этой проблемой.
Если чувствуете что это тяжело или отнимает много времени — используйте что-то вроде «правила трёх»: если вы искали эту запись два раза не в том месте — оставьте как есть. На третий раз — отрефаторьте.
И в чем смысл?
Вы наверное сейчас скажете, что я вас не убедил, что вкладывание дополнительного времени
в написание качественных заметок так уж важно: мол это слишком скучно или неприменимо к области вашей работы/учебы. Может быть да, а может и нет.
Вспомните то время, когда вы занимались креативной работой, находясь в состоянии потока. Иногда вам нужно получить некоторую информацию и продолжить работу, не теряя фокуса. Можно взять эту информацию из Гугла, но иногда она слишком специфична: например ваши собственные выводы по поводу конкретной темы или вовсе проектно-специфичные вещи.
Так как в сети найти это нельзя — вы используете свои заметки. И тут решающий момент: если вы можете быстро найти эти заметки — тогда вы не потеряете фокуса на работе. А если нет — прервётесь и всё равно потеряете время на поиск. Технически это тоже самое что и быть прерванным кем-то.
А потом нужно возвратиться в свое креативное состояние сознания и продолжить работу. Только представьте сколько энергии это отнимает у вас.
Всё еще кажется что написание заметок таким вот образом отнимает слишком много времени? Но у вас ведь есть время на практику, да? Подумайте еще раз. Прерывания часто воруют у нас много времени из практики.
В любом случае это лишь стратегия: в каких-то случаях возможно она и неприменима, так что используйте с умом.
Чеклист
- Напишите сырой черновик с источниками и плохой структурой
- Периодически рефакторьте свои записи:
- Выделяйте ключевые слова
- Разбивайте длинные предложения
- Улучшайте иерархию маркированных списков
- Используйте подзаголовки
- Упрощайте текст, уменьшайте его
- Слишком длинные документы? — Делите их на файлы
- Слишком много файлов? — Улучшайте структуру каталогов
- Добавляйте TODO-комментарии
- Наслаждайтесь своей креативной работой без потери фокуса! «Хватайте» заметки когда они вам нужны:
- Не получается найти заметку быстро?
- Исправьте опечатки
- Добавьте ключевые слова (иногда неверно написанные ключевые слова)
- Заметка не на своем месте? — Переместите блок/файл в правильное место
- Место двусмысленно? — Добавьте ссылки из других мест
- Не можете понять что написали? — Отрефакторьте еще раз
- Нашли дубликаты/фрагменты одной и той же заметки в разных местах? — Объедините их
- Не получается найти заметку быстро?
Не так уж и сложно, правда?
Данная публикация является переводом собственной статьи.
UPDATE: вместо git grep
+ копипасты + поиска по странице, теперь использую ngp + скрипт (+ изменение в ngprc) который открывает файлы Jupyter в браузере и даже переходит к соответствующему якорю на странице. К сожалению, этот проект не поддерживает Юникод, но уже есть временное решение.
Перевод статьи Alexander Lopatin: How to Take Notes Like a Programmer