Возможно, заголовок этой заметки звучит возмутительно, но многие действительно начинают погружение в мир программирования с чтения литературы. И это действительно не лучший шаг.
Обучение программированию эффективно только тогда, когда оно связано с практикой. Программирование можно сравнить с атлетикой, здесь важную роль играют нейронные связи. У атлета нейромышечная связь развивается от работы с отягощениями, а у программиста нейроны растут от работы с кодом. Код нужно буквально почувствовать, привыкнуть к нему, и это — лучший первый шаг.
И здесь кроется проблема обучения программирования по книгам. Книги — самый неудобный способ набить руку. Конечно, они содержат код, но его подача часто игнорирует многие вещи, которые могут быть важными для новичка. Например, способы выполнения программы, особенности редактора кода и настройку окружения вообще. По книге будет сложно даже просто повторить код слово в слово, то есть сделать первый шаг в программировании.
Сам формат подачи кода в книге не очень подходит для этого. Нередко повторяющиеся фрагменты кода игнорируются для экономии бумаги, а строки приводятся в таком формате, что одна программа оказывается разбросанной по нескольким страницам. Книга проигрывает в этом плане видеоформату, где комментарии озвучиваются голосом, а код представлен отдельно. Добавим в копилку сноски на странице, заметки и уточнения, которые вовсе не помогают чтению, а только отвлекают.
Еще одной проблемой книжного формата является отсутствие комьюнити. Даже у роликов на YouTube есть комментарии, вопросы и ответы на них от других зрителей. Для книг эта ситуация, конечно, невозможна.
Конечно, книги не игнорируют практику написания кода. Наоборот, каждый автор делает акцент именно на ней. Но сама эта практика организована так, что тебя отправляют писать код либо на отдельном сайте, либо прямо на страницах книги карандашом, либо искать способы написания кода самостоятельно. Все эти варианты имеют свои недостатки.
Наконец, содержание книг обновляется реже, чем содержание онлайн-курсов или видеороликов, просто потому что выпустить обновленное издание книги куда сложнее.
Значит ли это, что не стоит начинать учить программирование с книг? Первые несколько месяцев лучше уделить более удобным формам обучения: онлайн-курсы, репетиторство или видеоролики, сопутствующие практике. И уже после того, как вы привыкли к написанию кода, можно приступать к чтению книг — в таком случае все озвученные минусы подачи мешают куда меньше.
В жизни программиста обязательно наступает момент, когда именно книги становятся источником новых качественных знаний по программированию. Потому что многие вещи, которые сегодня на слуху, например, функциональное программирование, были придуманы давно. И для их исследования нужно погрузиться в тему с помощью книгам опытных профессиональных программистов.
А как думаете вы? Стоит ли начинать изучение программирования именно с книг?