База знаний в программистском стиле

База знаний в программистском стиле

Nuances of programming

Перевод статьи  Alexander Lopatin: How to Take Notes Like a Programmer

Предыстория

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

При этом мои записи все еще оставались плохо структурированными. И что важно – у меня не возникало желания открыть и попытаться понять, что содержится, например, в следующем:

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

Главная идея в том, чтобы спроецировать свою память в записи (а не память лектора), опираясь на принципы программирования:

Залог успеха

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

Также предполагаю знакомство с приемом чанкинга (см. примечание переводчика) из курса «Как учиться» (курс размещен на курсере) или книги, прилагавшийся к этому курсуе под названием «Думай как математик».

Примечания переводчика

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

2.  Любопытно почитать обзор этого курса, впечатления о нем и книге на хабрахарбре.

Повышайте читабельность

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

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

Черновые наброски

Создавайте заголовок и ссылайтесь на источники (книги, статьи, заметки, видеоролики, то есть на все то, что вы используете) в определенной части ваших записей. Начните анализ первого источника и дописывайте опорные идеи во время проведения анализа.

Рефакторинг

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

Продолжайте изучать другие источники и обновляйте соответствующие заметки: добавьте новую и уточняйте старую информацию.

По мере разрастания объема записей – разнесите ее по отдельным файлам или даже по структуре каталогов:

Как выбрать структуру? Поступите удобным для способом: представим, вы ищите что-то в своих записях. Как именно вы смогли бы это найти? Каков короткий путь к искомой записи?

Указания и подсказки на будущее

Вам наскучило учиться, хочется приступить к делу? Будьте прагматичны. Добавьте предположения и гипотезы, помеченные комментарием TODO, чтобы затем исследовать в будущем.

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

Комментарии TODO рассматриваются некоторыми разработчиками как организационные антишаблоны, тем не менее я считаю их полезными для личных проектов и заметок.

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

Пересмотр и улучшение

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

Попробуйте выполнить поиск файлов:

Ничего не нашли? Возможны следующие причины:

  • опечатка в поисковом запросе – в первую очередь проверьте правильность написания слов запроса
  • ошибочное ключевое слово – синоним был использован для описания этой же идеи
  • в ваших заметках имеется опечатка

Теперь давайте внесем улучшения. Найдите запись вручную и исправьте ошибку с помощью:

  • исправления опечатки
  • добавления ключевого слова

Таким образом следующий раз вы быстро найдете эту заметку.

Иногда случается странное – вам снова не удается найти эту запись. Например, недавно я пытался найти кое-что о математической статистике:

Ничего не нашлось. Проверили правильность написания?

Нет, не помогает. Я загуглил нечто, но какого лешего я нашел?

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

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

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

Обновите структуру в соответствии с вашим представлением

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

  • запись расположена в неверном месте
  • правильное местоположение не определено (например, записи в нотации "О большое" помещены в раздел "Математический анализ" или раздел "Алгоритмы"?)

Как исправить?

  • переместите раздел или файл в соответствующее место
  • добавьте ссылку с одной записи на другую

Повторный рефакторинг

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

Ищем золотую середину

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

Если вам это кажется сложным или затратным по времени – воспользуйтесь «правилом трех»: если ищете эту конкретную запись два раза в неверном месте – оставьте как есть. И только после третьего раза проведите рефакторинг.

К чему это?

Возможно, я так и не убедил вас в том, что вложение дополнительных усилий и времени в написание качественных заметок так уж важно: заниматься этим слишком скучно или это не относится к сфере работы / учебы. Возможно это так, а возможно – и нет. Запомните, время, проведённое за творческой работой, позволяет вам быть «в потоке».

Примечание переводчика: согласно позитивной психологии «быть в потоке» значит находиться в состоянии полной включенности, вовлеченности в происходящее.

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

Поскольку вы не найдете это в Интернете – используйте свои записи и заметки. Таким образом наступает решающий момент: если сможете быстро найти нужные сведения – сохраните фокус внимания на работе. А если не можете – придется прерваться и потратить время на поиск этой информации. А это аналогично тому, как если бы вы временно отложили выполнение работы.

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

Вам все еще кажется, что сбор и запись полезных сведений – слишком затратно? Но у при этом есть время для привычной работы? Подумайте еще раз. Частые отвлечения крадут много рабочего времени.

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

Контрольный список

  • Делайте короткие черновые записи со ссылками на источники и простой структурой
  • Изредка делайте рефакторинг ваших заметок:

- Выделяйте ключевые слова

- Разбивайте длинные предложения на короткие

- Совершенствуйте списочную структуру

- Используйте подзаголовки

- Упрощайте и сокращайте текст

- Получилась слишком длинная заметка? – разбейте на отдельные файлы

- Слишком много файлов? – Улучшите структуру каталогов

  • Добавляйте TODO подсказки
  • Наслаждайтесь своей творческой работой, не отвлекаясь ни на что на постороннее. Соберите данные, как только они вам потребуются:

- Не можете быстро найти запись?

- Исправьте опечатки

- Добавьте ключевые слова (иногда ключевые слова с типовыми опечатками)

- Неверное расположение? – Переместите раздел / файл в соответствующее место

- Местоположение не определено? – добавьте ссылки из других мест

- Что-то непонятно в записи – сделайте повторный рефакторинг

Это же не сложно, правда?

Перевел статью Владислав Семёнов



Report Page