Объявлениями о курсах программирования, которые сделают из вас зарабатывающего в валюте разработчика, заклеен не только интернет, но и весь общественный транспорт. Школы, курсы, кружки, книжки, самоучители соревнуются в том, кто легче и быстрее произведет на свет IT-шника. Кто-то утверждает, что навык программирования должен быть у каждого человека. И, конечно, они твердят, что перерождение в разработчика – это просто и безболезненно. Но вы действительно думаете, что научиться программировать легко? Этот вопрос в блоге на Medium озвучил один из преподавателей Freecodecamp Квинси Ларсон. Он попытался развенчать это убеждение, созданное маркетологами. Редакция AIN.UA приводит адаптированный перевод его заметки.
Нельзя просто взять и научиться программировать. Потому что программирование — это непросто. Это тяжело. Это знает каждый. Любой, кто занимался трассировкой стека или сходил с ума из-за конфликтов git, подтвердит это.
К сожалению, множество маркетологов пытаются заработать на представлении о том, что «программировать легко!» Или что программирование станет простым при использовании их продукта.
Когда кто-то говорит, что программировать легко, тем самым они оказывают вам медвежью услугу. Это может привести только к трем вещам:
Сценарий № 1
Человек 1: «Однажды, я пытался научиться программировать. Это давалось мне очень тяжело. Потом на первое место вышли другие заботы, и я больше не учусь программированию».
Маркетолог: «Программировать легко!»
Человек 1: «Что? Ой, может, программировать все-таки легко. Может, я просто тупой».
Сценарий № 2
Человек 2: «Я хочу научиться программировать, но это, кажется, тяжело».
Маркетолог: «Программировать легко!»
Человек 2: «Правда?»
Маркетолог: «Да. Купи мой курс / программу / электронную книгу, и ты станешь высококласным программистом менее чем за месяц».
Человек 2:
Человек 2, спустя месяц: «Я думал, учиться программированию легко. Может, я просто тупой».
Сценарий № 3
Человек 3: «Мне никогда не было интересно программирование. Я успешный менеджер. Если мне когда-нибудь понадобиться написать программу, я просто заплачу кому-то».
Маркетолог: «Программировать легко!»
Человек 3: «Хм, дайте-ка подумать. В таком случае, я не буду переплачивать этим обезъянкам-программистам или слишком высоко ценить их работу».
Операции на мозге — это легко
Говорить «Программировать легко!» — это все равно, что говорить: «Проводить операции на мозге — сущий пустяк!». Или утверждать, что «писать романы — это просто».
Нейрохирург, сидя на вечеринке, поворачивается к романистке Маргарет Этвуд: «Всегда хотел писать. Когда уйду на пенсию и у меня появится время, стану писателем». Маргарет Этвуд отвечает: «Какое совпадение, ведь когда я выйду на пенсию, я собираюсь стать нейрохирургом».
Тем не менее, маркетологи продолжают твердить: «Программировать легко!», «Программировать вовсе не так сложно»… и мое любимое: «Программировать легко! Это <что-то, из-за чего программировать сложно> делает обучение сложным!»
Все, чего добиваются этим маркетологи, — это заставляют людей чувствовать себя тупыми, иногда попутно отбирая у них деньги.
Проклятие знания
К сожалению, не только маркетологи говорят, что программировать легко. Я постоянно встречаю опытных программистов, которые также повторяют эту мантру.
Почему человек, который прошел через тысячи часов, необходимых, чтобы начать хорошо программировать, говорит, что это легко? Потому что он страдает от когнитивного искажения, называемого «проклятие знания». Он не может вспомнить, каково это было, когда он не умел программировать. А даже если и может, он, вероятно, давно забыл, каким трудным казалось для него программирование в начале обучения.
Проклятие знания не позволяет многим опытным разработчикам сочувствовать новичкам. Нигде так не проявляется этот недостаток эмпатии, как в любимом поисковом запросе Google: самоучитель по программированию.
Сколько раз вам удавалось пройти до конца случайный самоучитель, найденный в недрах Google, и не быть сбитым с пути какой-то непонятной ошибкой или неоднозначным условием?
Самое худшее в этом процессе, когда авторы самоучителя несознательно наполняют его словами вроде «очевидно», «легко» и наиболее издевательским «просто».
Нет ничего более раздражающего, чем копание в учебнике в течении 30 минут, прежде чем наткнуться на шаг, гласящий «просто интегрируйтесь с API Salesforce» или «просто разверните проект на AWS». И когда это происходит, в голове звучит голос тысячи маркетологов: «Программировать легко!» Вы вспомните опытных программистов, которых встретили на прошлой неделе и которые пытались вас приободрить, говоря: «программировать легко!» У вас даже промелькнут перед глазами все эти глупые сцены с голливудскими хакерами, которые жмут несколько клавиш, чтобы взломать Пентагон.
Прежде чем вы осознаете это, вы вдруг услышите звук собственного голоса, срывающегося на крик, вскочите на ноги и… (╯°□°)╯︵ ┻━┻
Но это ничего. Глубоко вдохните. Программировать сложно. И каждый это знает.
Но все же вам захочется овладеть навыками «крутого хацкера». Вас будет снедать желание исправлять ошибки при помощи лишь своего интеллекта — и приличного количества черно-зеленых мониторов.
Давайте попробуем оседлать этого жеребца. Представьте на секунду, что вы именно тот невероятный голливудский хакер. Начнем.
- Шаг 1: выключите свет, поднимите воротник, надвиньте на глаза очки-авиаторы.
- Шаг 2: выпейте банку энергетика, раздавите ее и небрежно бросьте через плечо.
- Шаг 3: Перейдите по ссылке и лупите по клавишам так быстро, как только можете.
Все, ваша фантазия о хакерской мощи сбылась. Вам лучше? Вы хохочете из-за абсурдности нашей коллективной реконструкции процесса разработки?
После того, как мы избавились от этого образа, давайте поговорим о самом коварном слове в английском языке.
Ничто не бывает простым
Если вы встретите в учебнике слово «просто», есть вероятность, что авторы учебника строили предположения о имеющихся у вас знаниях. Может, автор считает, что в прошлом вы уже программировали что-то подобное и решили просто свериться с учебником. Может, автор писал самоучитель, держа в голове самого себя в качестве целевой аудитории. Так или иначе, есть хороший шанс, что вам попался учебник, разработанный не для вашего уровня знаний.
Таким образом, первое «правило простоты»: «Не используйте слово “просто” в своих курсах, и не проходите курсы, где оно используется». Запомните это. Знайте это. Живите с этим.
P. S. После 20 минут беспрерывного копания в курсах по программированию вы едва ли будете высматривать в каждом слово «просто». Поэтому можно воспользоваться расширением для Chrome, которое, как золотой петушок из сказки Пушкина, предупредит вас о надвигающейся «простоте».