Как читать книги по программированию

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

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

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

Ахмед получал образование электротехника, и из языков программирования был знаком только с Matlab, Assembler и C/C++. Надо сказать, что этот набор уже неплохой, но в какой-то момент Ахмед понял, что ему нужны новые навыки, чтобы реализовать себя в информатике и разработке программного обеспечения.

В течение полугода он изучал Python, JavaScript, Java (для Android), CSS (для web-разработки) и HTML. Вывод, к которому пришел программист, лег в основу его системы: читать любую книгу или туториал нужно трижды.

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


Первое прочтение

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

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

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

Второе прочтение

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

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

Третье прочтение

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

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

Еще один способ

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

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

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

Время

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

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



Комментарии

Комментарии (0)

Ваш e-mail не будет опубликован.
Обязательные поля помечены *

ПОСЛЕДНИЕ КОММЕНТАРИИ

  • Эстония
    Tien
    : Is that really all there is to it because that'd be flaibergastbng.
  • Полезные советы новичкам WordPress
    Роман
    : В строке с "else if" в примере (на картинке) вроде не хватает одной закрывающей кавычки. И
  • Gekos красно-золотой
    Админ Блогович
    : ИЛИ выступлениями на внешних семинарах/конференциях
  • Gekos в Стамбуле: мы работаем там, где лето
    Денис
    : Очень крутая статья!
  • Как увернуться от гранаты или «Яндекс АГС – уберется все!»
    Рустем
    : Спасибо за кейс. На счёт хостингов - полностью согласен. Некоторые сайты расположены на ка
  •