Нельзя так просто взять и научиться писать код

“One does not simply walk into Mordor.” Эта картинка сделала Шона Бина бессмертным. И это отлично, поскольку он умирает в фильмах больше, чем другие современные актеры.

Нельзя так просто взять и научиться кодить. Потому что писать код не просто. Писать код сложно. Все это знают. Любой, кто рыскал по трассировке стека — или “отрывал голову” в git—может это подтвердить.

К сожалению, есть очень много маркетологов, пытающихся заработать на фразе “Кодить легко!”. Или точнее будет легко, если вы начнете использовать их продукт.

Ссылка на оригинал

Когда кто-то говорит вам, что писать код легко, он оказывает вам очень плохую услугу. Есть три вероятных сценария:

Сценарий 1

Герой 1: “Я однажды пытался научиться писать код. Но у меня было тяжелое время. Жизнь так повернулась, что я больше не возвращался к этому.”

Маркетолог: “Писать код легко!”

Герой 1: “Что? Хм. Может быть, это и правда так. Может, просто я такой тупой.”

Сценарий 2

Герой 2: “Я хочу научиться кодить, но это звучит сложно.”

Маркетолог: “Писать код легко!”

Герой 2: “Правда?”

Маркетолог: “Да. Купите мой курс / программу / электронную книгу и вы будете крутым кодером менее чем через месяц“.

Герой 2:

Заткнись и забери мои деньги!

Герой 2, месяц спустя: “Я думал, что писать код будет легко. Может, просто я тупой”.

Сценарий 3

Герой 3: “Я никогда не планировал научиться писать код. Я успешный менеджер. Если мне понадобится написать какой-то код, то я просто заплачу кому-нибудь.“

Маркетолог: “Писать код легко!”

Герой 3: “О, хорошо. В этом случае, думаю, я не буду много платить этим обезьянкам или смогу еще внимательнее следить за их работой.”

Оперировать мозг — это легко!

Фраза “Писать код легко!” примерно равна фразе “Оперировать мозг легко!” или “Писать романы легко!”

Нейрохирург на вечеринке сказал писателю Маргарет Атвуд: “Я всегда хотел писать. Когда я выйду на пенсию и у меня появится время, я стану писателем.”
Маргарет ответила: “Какое совпадение! Когда я выйду на пенсию, я планирую стать нейрохирургом!”

И тем не менее маркетологи продолжают говорить: ”Писать код легко”, “Кодить не так уж и трудно!” или мою любимую фразу “Писать код легко! Трудно только <любая сложная вещь>!”

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

Проклятие знаний

К сожалению, не только маркетологи говорят, что кодить легко. Я все время встречаю опытных разработчиков, которые говорят то же самое.

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

Проклятие знаний мешает многим опытным разработчикам сопереживать новичкам. Хорошей иллюстрацией отсутствия эмпатии является картинка из Google по запросу “учебник по программированию”

“Все когда-либо написанные учебники по программированию”

Сколько раз вы реально прошли случайно найденый туториал до конца без загадочных ошибок и дополнительных вопросов?

И самое ужасное, когда автор бессознательно использует в названии своей инструкции слова “очевидный”, “легкий” и, хуже всего, “простой”.

Нет ничего более кошмарного, чем 30 минут провозиться с учебником и застрять на шаге “просто интегрируйте API Salesforce” или “просто задеплойте на AWS”.

И когда это происходит, голос тысячи маркетологов эхом раздается в голове: “Кодить легко!”

Вы вспоминаете всех тех опытных разработчиков, которых вы встречали пару недель назад, и как они изо всех сил пытались вас убедить, что “писать код просто!”

Вы даже припомните все плохие голливудские сцены с хакерами, где все выглядит очень просто.

Прежде чем вы осознаете это, вы вдруг услышите звук собственного крика, почувствуете как вскакиваете на ноги и (╯°□°)╯︵ ┻━┻

Но это нормально. Сделайте глубокий вдох. Писать код не так просто. Писать код трудно. Всем это известно.

Разработка в реальной жизни VS Разработка в кино

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

Давайте сразимся с этим драконом. Давайте станем этим элитным программистом из Голливуда. На секунду представим каково это.

Поехали:

Шаг 1: Выключить свет, поднять воротник, надеть очки-авиаторы

Шаг 2: Выпить энергетик, раздавить банку и выкинуть ее точно в мусорку через плечо

Шаг 3: Зайти сюда и стучать по клавиатуре на пределе человеческих сил

Заветная мечта осуществилась.

Так лучше? Вы смеетесь над абсурдностью нашего собирательного образа разработчика программного обеспечения?

Теперь, когда мы сверили наши видения мира, давайте поговорим о самых коварных словах.

Ничто не просто

Очень велик шанс, что вы встретите слово “просто” в первом же учебном материале. Такой материал предполагает, что у вас уже достаточно усвоенных знаний.

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

В любом случае, вероятно, что мануал не будет предназначен для человека с вашим уровнем навыков программирования.

Стоит помнить “просто-правило”:

Не используй слово “просто” в своем учебном материале и не используй учебные материалы, в которых встречается слово “просто”.

Запомните это. Знайте это. Живите с этим.

К сожалению, через двадцать минут отчаянных попыток нагуглить подходящее решение, вы уже не вспомните, что нужно искать мануал, автор которого не использовал слово “просто”.

Что ж, мы вас подстрахуем. Альберт Мейя создал расширение для браузера Chrome, которое будет находить слово “simply” в статье, и показывать всплывающее уведомление о том, что материал не предназначен для начинающих.

Это расширение Chrome выполняет роль пресловутой канарейки в угольной шахте, уведомляя о наличии слова “просто” перед тем, как вы погрузитесь в изучение статьи.

Альберт создал это расширение всего за несколько часов в ответ на мой твит. Вот некоторые из аналогичных решений участников Free Code Camp:

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

Но в то же время эти простые расширения могут отвести вас подальше от этих потопляющих суда айсбергов под названием “просто” в холодном океане обучения программированию.

До тех пор пока мы не встретимся снова — оставайтесь сильными и не ведитесь на обман. Учиться писать код трудно.


P.S. Если вам понравилась эта статья — нажмите зеленое сердечко. Это много значит для меня. Спасибо!

Нашли ошибку? Воспользуйтесь функцией Private notes: выделяете текст с ошибкой, нажимаете на символ замка в появившемся дудле и оставляете свой комментарий. Спасибо!

Перевод статьи One does not simply learn to code Куинси Ларсона.