Александр Пряхин
18 929
Блоги

Как вынести максимум пользы при чтении профессиональной ИТ-литературы

Преподаватель GeekBrains Александр Пряхин об эффективном чтении книг по программированию.

Поделиться

В избранное

В избранном

Александр Пряхин

Начинающие программисты, вне зависимости от выбранного подхода к обучению (будь то курсы или самостоятельное изучение теории), обязательно должны работать с профессиональной литературой. Книги, посвященные выбранному направлению, не только дают новую информацию, но и систематизируют уже имеющиеся знания, порой исправляя неправильно понятые в начале моменты.

При этом очень много книг, связанных с профессиональной деятельностью, довольно велики по объёму и редко могут быть прочитаны за один вечер. Да и нужно ли так торопиться?

В начале карьерного пути многие стараются поглотить как можно больше литературы, найденной в списке «Топ-10 книг для начинающего программиста». Но без сформированного подхода к чтению технической литературы книга может не оставить и следа в вашей памяти. Давайте рассмотрим шаги, которые помогут вам эффективно читать книги с максимальной отдачей для себя. Будем подразумевать, что вопрос о том, стоит ли читать ту или иную книгу, у вас не стоит.

Также до начала разговора о пользе отдельно взятой книги нужно отметить, что начинающим разработчикам (да и не только им) крайне не рекомендуется бросаться на несколько книг сразу. Ниже в статье станет понятно, почему не нужно этого делать с практической точки зрения. Очевидно, что при параллельном чтении разных книг либо не выйдет сделать чтение вдумчивым, либо в голове окажется каша из информации. Так что возьмём за аксиому факт чтения одной книги от начала до конца на одном промежутке времени.

Теория

В 1940 году Мортимер Адлер уже столкнулся с задачей, которую мы пытаемся осветить в данной статье. Его работа «Как читать книги. Руководство по чтению великих произведений» послужит фундаментом для создания собственного подхода к чтению литературы.

Адлер делит чтение на четыре типа:

  • Элементарный.
  • Инспекционный.
  • Аналитический.
  • Исследовательский.

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

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

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

Аналитическое чтение

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

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

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

  1. В чём суть прочитанного? Если это книга по программированию, общую суть бывает довольно тяжело выделить: она будет формироваться в виде типа «Книга про Java». Но материал в подобного рода книгах разбит по довольно большим главам или разделам. Поэтому отвечайте на этот вопрос после каждого раздела.
  2. Если в книге автор делится с вами своей точкой зрения, отметьте, согласны вы с ним или нет. Разумеется, это должен быть не односложный ответ, а аргументированная позиция.
  3. Какие выводы вы сделали для себя после прочтения раздела? Заметьте, что здесь вы указываете только выводы! Многие начинающие разработчики спешат тут же применить свои знания на практике, не систематизировав их и не имея общей картины. Поэтому сначала дочитайте книгу до конца.

  4. Что полезного для себя вы вынесли из раздела или книги? Нужно чаще делать бэкапы? Или использовать системы контроля версий? Ещё что-то? Здорово! Сформулируйте этот ответ как конкретную рекомендацию к действию («Мне нужно начать использовать GIT, потому что версионирование кода облегчает командную разработку»), а не как констатацию факта («Резервирование систем – это хорошо»).

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

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

Второй хинт будет чуть сложнее. Он заключается в том, чтобы обмениваться с людьми своим мнением о книге. Как показывает практика, социальная сеть не станет для этого лучшим решением. Гораздо лучше использовать блог или специализированные сайты. Немаловажно здесь не просто прочитать чужие отзывы, а именно поделиться своим мнением, сформированным по вышеуказанной методике. Такой метод позволит получить критику (в хорошем смысле этого слова) сложившегося у вас мнения, узнать взгляд других на прочитанную вами книгу и сравнить его со своим.

Практика

Самым очевидным и в то же время самым игнорируемым моментом в чтении технической литературы является практическое применение новых знаний. Хорошим примером книг с практической частью является серия Head first, которая содержит множество упражнений по пройденному материалу в конце занятия. Эти упражнения ни в коем случае нельзя игнорировать. Вспомните школьные занятия по русскому языку — они насыщены практическими примерами для каждого правила в огромных количествах.

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

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

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

«Потрачено»

Не исключена в реальной жизни и ситуация, когда книжка, что называется, «не зашла». Такое происходит по разным причинам: неправильный выбор, высокая для текущего уровня знаний сложность, плохой перевод. Момент потери интереса к книге должен чётко фиксироваться читателем.

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

Здесь есть коварная ловушка — лень. Она всегда будет на стороне отказа от дальнейшей работы над материалом и оправданий в силу его бесполезности. Будьте крайне осторожны! Как всегда, ответственность перед собой будет самым эффективным противодействием. Всегда помните цель, с которой вы начинаете читать ту или иную книгу.

Резюме

Создатель методики эффективного чтения книг Мортимер Адлер говорил: «Если, научившись читать и изучив величие книги, вы продолжаете действовать неразумно в личной жизни или в политике, значит, вы напрасно потратили время. Возможно, вы получили удовольствие, но долго оно не продлится».

Чтение технической литературы для ИТ-специалиста — это такая же часть работы, как проектирование систем и написание кода. Поэтому к нему нужно подходить серьёзно и системно. Приёмы, которые были рассмотрены в этой статье, — лишь малая (но не менее эффективная от этого) толика в построении процесса работы с литературой.

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

#библиотека

{ "author_name": "Александр Пряхин", "author_type": "self", "tags": ["\u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430"], "comments": 29, "likes": 42, "favorites": 75, "is_advertisement": false, "section_name": "blog", "id": "31778", "is_wide": "" }
{ "is_needs_advanced_access": false }

Комментарии Комм.

Популярные

По порядку

0

Прямой эфир

Команда калифорнийского проекта
оказалась нейронной сетью
Подписаться на push-уведомления
[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "create", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-158433683", "adfox_url": "//ads.adfox.ru/228129/getCode?p1=bxbwd&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid21=&puid22=&puid31=&fmt=1&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } } ]