О вреде книг: напутствие начинающему программисту

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

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

Под катом два небольших видео (каждое по 5 минуту) частного мнения программиста Николая Ясинского (Екатеринбург) о том, почему учиться программированию по книгам — не самая хорошая затея. И хотя аргументы у него иные, суть получается аналогичная. В заключение я подвожу итог примерной схемой погружения в программирование для новичка, которую я считаю предпочтительной.

О вреде книг: советы начинающему программисту учеба образование ит скачать ebooks pdf

Почему книги не должны подменять навык самостоятельного, заинтересованного в результате, практического навыка поиска?

Если у вас очень мало времени, советую смотреть сразу вторую часть видео как более конкретную и понятную большинству (встроено ниже), первая же часть доступна по этой ссылке.

Не учите программирование по книгам! часть 2 (7 мин.)

Выковырял из-под видео вот такой вот суммирующий комментарий-отзыв:

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

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

Прогресс пришел после чтения чужого кода в интернете, написании собственных программ разного рода, когда приходилось лезть в интернет за документацией, смотреть примеры на том же stackoverflow, когда подтянулся уровень английского языка… тогда и перестала читать книги, т.к. поняла, что в учебниках азбука, а в жизни художественные произведения. Это хорошее сравнение, потому что существует огромная пропасть между тем, чему учат книги, и тем, с чем потом приходится сталкиваться (отсюда и разочарование и множество ошибок). Так что я согласна с каждым словом в видео.

Подводя промежуточный итог

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

Полезное дополнение можно отыскать в комментариях:

Другой способ есть и он очень даже элегантный — «Пишите код!».

  1. Возьмите простой исходник
  2. Напишите дополнение для основной задачи, модернизируйте исходник.
  3. Обдумайте все ещё раз, отладьте, приведите сложившуюся архитектуру в порядок.
  4. Добавьте еще новый функционал, который ломает вашу стройную архитектуру.
  5. goto 3.

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

Книга при таком «продвижении боем» по реальному коду выполняет своего рода вспомогательного справочника, который лежит подле правой руки и используется только по мере надобности в узком интервале каждой конкретной проблемы. Ещё раз — мы учимся не чтению абстрактных книг и надуманных примеров, мы изначально учимся решению и пониманию реальных проблем/кода.

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

Короче говоря, всё сводится к банальному —

О вреде книг: советы начинающему программисту учеба образование ит скачать ebooks pdf

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

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

Наши вузы — видео-бонус

Кроме изобилия пустых книг существует другой полюс проблемы современного синтетического образования, о котором также по хорошему бухтит наш сегодняшний герой. Николай Ясинский прошёлся ещё и по отечественной системе высшего образования (смотрите видео-бонус ниже), которая также превратилась в очередную постсоветскую имитацию, которая всего лишь насос для откачки денег из бюджета-карманов наивных студентов. Эта огромная Pascal«евидная поросль не умеющая после 5 лет обучения каких-то более-менее серьёзных практических умений и навыков, и которой в конечном итоге приходится переучиваться-доучиваться уже непосредственно в жестко-стрессовых рабочих условиях.

С другой стороны я бы не рассуждал на эту тему столь категорично, как это довольно лихо делает Николай — позитивные примеры, я бы даже сказал легендарных вузов всё-таки у нас есть, до сих пор в России пор продолжают готовить штучных продвинутых специалистов в деле ИТ. Например, тот же ИТМО известен своей сильной школой программирования, например, в 2015 году этот университет из Питера стал шестикратным чемпионом мира по спортивному программированию ACM ICPC-2015. А это тебе не формочки двигать на аутсорс-проектах, впрочем, что касается большинства региональных вузов — тут Николай, к сожалению, полностью прав.

Институты для программистов это п***ц. 18+

Таким образом, на книгу и вуз у новичка нынче почти никаких серьёзных надежд. Спасение — дело рук самого утопающего. Посему выбирай собственную инициативу и интерес + интересный тебе проект на Github, написанный заведомо качественно и толково, скачивай его тарбол себе на комп и начинай свою личную одиссею постижения настоящего мастер-класса программирования от маститых гуру, общую схему я схематично обрисовал выше.

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

Ключевые слова для более релевантного поиска: с чего начинать программировать новичку, как учиться программированию. Какие есть хорошие книги по программированию и видеокурсы, что нужно знать, чтобы стать программистом. Где скачать курсы и книги для программирования и обучения ИТ? Как обучаться и научиться программировать на языке? Схема и алгоритм постижения профессии кодера. Как начать читать код, научиться понимать написанное в листинге программы. Где учат и готовят на программиста или на айтишника в России? Как стать настоящим айтишником и настоящим хорошим программистом, как получить опыт и начать читать чужой код. В каком вузе учат настоящих программистов и какие книги нужно читать и видео смотреть при учебе на программеров? Скачать книги по программированию и видео курсы бесплатно онлайн для айтишников по Ит и программированию.

© Blogerator