Главная

Как читать техническую литературу.

Как достичь понимания, а не иллюзии понимания. Советы, основанные на личном опыте.

 

22+

Несколько недель назад я получил электронное письмо с рекомендацией от Amazon. Я уже собирался следовать своему обычному алгоритму «беглый просмотр — архив», но на этот раз рекомендация была действительно хорошей. Книга называлась «Streaming Systems» и имела тот же красный дизайн O’Reilly, что и «Designing Data-Intensive Applications». В надежде, что первая книга будет похожа на вторую, я заказал ее.

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

Разница была огромной. Я вдруг осознал, что во время чтения у меня есть лишь иллюзия понимания. Каким бы ни было содержание предложения, я всегда про себя говорил: “Хорошо, понятно, ну … может быть и не все, но идем дальше”. Когда делаешь заметки, такого не происходит. При чтении возникает то же чувство, но когда пытаешься подвести итог и написать что-то на бумаге, вдруг осознаешь, что понимаешь далеко не все и следует глубже в этом разобраться.

Как обычно происходит чтение

Просто чтение технической литературы — это как минимум скучно и практически бесполезно. Это особый вид скуки, которая возникает из-за этой «иллюзии понимания». У меня это выглядит примерно так:
Разбирая пример, я замечаю, что не совсем понимаю его, но в то же время мне лень останавливаться и пытаться полностью его понять. Происходят быстрые переговоры с самим собой: “Ну, этот пример довольно сложный, и, честно говоря, я его не понимаю. Я уже добился хорошего прогресса, и пускай не совсем понимаю некоторые детали, я пожалуй продолжу”.

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

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

Чтение и заметки

Когда я читал и делал заметки, я обнаружил, что эта нелепая игра компромиссов между «надо» и «хочу» вообще отсутствует. Нет необходимости заставлять себя останавливаться и разбирать пример — каким-то образом вы уже находитесь в режиме “докопаться до истины”, так что это происходит само собой. При таком раскладе отсутствует скука, переговоры с самим собой, приведение во всеоружие силы воли, и процесс становится увлекательным, как решение головоломки или выполнение квеста. Одним из возможных объяснений того, как это работает, может быть теория о том, что у нашего мозга есть два способа мышления: быстрый и медленный. Эта концепция блестяще описана в этом видео:

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

Главным недостатком заметок является то, что они занимают больше времени. По крайней мере, так было у меня — чтение первых нескольких страниц заняло около 10 минут. Чтобы понять примеры, также потребовалось некоторое время, потому что мне пришлось вернуться к прошлым главам, чтобы заполнить пробелы, которые у меня были от предыдущего чтения, без заметок. Однако результат того стоит. Вы определенно получаете намного больше, и в дополнение к этому вы чувствуете себя хорошо. У вас нет пугающего чувства почти полного непонимания. Наоборот — присутствует удовлетворенность, потому что вы что-то поняли. Чувство того, что ты что-то понимаешь, а не просто притворяешься — прекрасное чувство.

Streaming Systems”, а также “Designing Data-Intensive Applications” — это книги, в которых рассказывается больше о концепциях и в них не так много кода. Они отличаются от книг, ориентированных на конкретный язык программирования или технологию. Но идея остается прежней — опыт работы с книгой (а также языком и технологией) будет гораздо более приятным, если вы изучите ее в медленном режиме: записывать код не практично, лучше переписать его и запустить. Однако здесь также есть одна загвоздка: трудно понять код, просто скопировав его. Лучше попытайтесь написать его вручную.

Да, мой совет не уникальный и не новый. Это достаточно старый метод, который используется при обучении. Для меня заметки были всегда связаны с чем-то, что вы делаете в классе во время лекции (и, если честно, записывать все, что лектор говорит в спешке, не лучший опыт). Оказывается, идея заметок актуальна не только в пределах аудитории.

Спасибо!

22+