Клайв Томпсон — технических писатель, журналист в The New York Times и Wired, автор книг «Coders» и «Smarter Than You Think». По мнению коллег, Клайв — самый узнаваемый автор публикаций о программировании и технологиях.
В статье «Programming Isn’t Hard — But It’s Frustrating» журналист поделился личной историей: как Клайв разочаровался в программировании и понял причину.
Главное — превращать неудачу в положительный опыт.
Публикуем авторский перевод статьи Клайва.
Как я пришел к выводу: проблема разработчика — расстройства и неудачи
«Потерпите разочарование — только так вы научитесь кодингу» |
Мое детство прошло в 70-х. Я частенько играл в Mattel Auto Race — приставка для одной игры. В ней вы водите машину (это точка на экране, размером с палец) и пытаетесь не врезаться в другие автомобили.
Приставка Mattel Auto Race. Справа — экран с машиной, а слева — рычаги управления. Под экраном — кнопка движения авто в стороны.
Спустя 50 лет я вспомнил об этой игре. В субботу вечером решил сделать версию гонки на P5 — фреймворке на Javascript.
У меня получалось: потратил час на игровую площадку, проезжающих автомобилей и логику движения. Проект показался легким, и я решил усложнить. По задумке, автомобили должны были появляться не по алгоритму, а в любое время.
Возникла первая проблема — я не мог управлять новым алгоритмом. Машины не появлялись, как нужно. Повозился с несколькими вариантами и ничего не понял. Я разочаровался и забросил проект.
Прошло 2 дня. Я не вспоминаю о проекте, потому что сомневаюсь. У меня нет навыков профессионального кодера — я любитель с основами программирования в рюкзаке. Если я достиг предела возможностей — не знаю, что придумать дальше и как исправить проблему. Иногда думаю, что опять столкнулся с задачей, в которой нет решения.
Я избегаю сложных проектов, чтобы не разочароваться. А всем отвечаю: «Программировать не трудно. Труднее — не разочароваться после неудачи».
Почему программирование — это ежедневное разочарование
Я осознал это после статьи «What Does Saying That 'Programming Is Hard' Really Say, and About Whom?» Бретта Беккера из школы компьютерных наук Дублина. В публикации Бретт ставит под сомнение: «программирование — это сложно».
Вы могли слышать от преподавателей, из статей или от знакомых разработчиков, что обучение программированию — невероятно сложное занятие. Беккер не нашел доказательств, что кодить сложнее, чем работать медсестре, адвокату или шеф-повару.
«Программировать тяжело» — культурная традиция. Люди не могут объяснить, почему это так. Они приняли суждение за правило. Поэтому новичкам сложно начать, потому что верят: стать программистом — сложно.
Когда писал книгу «Coders», я опросил 200 программистов. Часто люди повторялись: научиться программировать не сложно. Успех зависит от внимательности к деталям.
Для кодинга нужна психологическая установка — вы каждый день можете разочаровываться. Это нужно перетерпеть.
Почему мы разочаровываемся в кодинге
Программист создает код, который должен работать. Написать такой мало. Его нужно прогнать через отладку — найти и исправить ошибки. В этом и главная причина разочарования.
Рассмотрим на примерах:
-
Написали функцию — она не работает.
-
Забыли поставить запятую в строку кода или ошиблись в переменных — код не работает.
-
Функция подтягивает данные из сторонней библиотеки. А вы не понимаете, где допустили ошибку.
-
Команда писала код несколько лет. Проект закрыли, а после — передали вам. Делайте с программой все, что хотите. Но она должна работать.
Вот что я написал в «Coders» по теме разочарования:
«В июле 1949-го ученый Морис Уилкс поднимался по лестнице, когда понял: «Я потратил большую часть жизни, чтобы найти ошибки в собственных программах». |
Разработчик не пишет код каждый день. Он разбирается, как работает система. Хватается голову от ошибок и пробует исправить ситуацию. И решить проблему получается не в каждом случае.
От чего разработчик может стать безумным
Он не знает, сколько времени потратит на программные ошибки. Несколько минут, час или два. Могут пройти недели или месяцы, а разработчик не разберется с проблемой. Тогда он найдет новое решение и понадеется, что код не принесет новых сюрпризов.
Когда спрашивают: «Могу ли я научиться программировать?» — я отвечаю: «Конечно. Каждый сможет, пока вы сражаетесь с разочарованием».
Программирование — не единственное занятие с разочарованиями. Работа с людьми в маркетинге, медицине или гостиничном бизнесе расстраивает. Люди противоречивы, не любят говорить и не всегда приветливы.
Игра на музыкальных инструментах или в баскетбол может разочаровать. Вы практикуетесь раз за разом, но не добиваетесь результата. Мне знакомо это чувство, потому что работаю с людьми — пишу статьи. А еще я музыкант и часто пытаюсь отточить новую технику игры на гитаре.
В программировании процессы поддаются объяснению. Вы учите методологию — базовые понятия и техники. Изучаете языки, фреймворки, новые библиотеки. А когда застрянете на проблеме, это похоже на личную неудачу — не получается следовать правилам.
Решение ошибки в коде приходит по-другому: пробуете другие методики, делаете перерыв, советуетесь с коллегами и проверяете на практике. И это не обязательно сложно. Но поиск проблемы расстраивает, и с этим нужно справиться.
Люди программируют в 18 лет или после 30. С процессором на 2 ядра или на 10. Самостоятельно или с готовой обучающей программой.
В Академии ITSTEP Киев у студентов нет времени на разочарование. Каждую проблему нужно превращать в решение. Ученики находят ошибки вместе с преподавателями. И так пополняют портфолио задачами уровня Amazon, Cisco или криптовалютной биржи Binance с первых недель обучения.
В Академии выводим ваши навыки и знания не следующую ступень. В результате вы — разработчик, дизайнер, специалист по кибербезопасности, который умеет работать над трудностями. Знаете, как решать проблемы компаний и в чем полезны. Останется последний шаг — успешно закрыть собеседование и получить первую работу.
Попробуйте! Перейдите по ссылке, чтобы узнать об обучающих программах ITSTEP больше.
Кто-то думает, кто-то так и не решается. Если делаете первый шаг сейчас, обгоняете 9 из 10 новичков, которые остаются со своими мыслями и не двигаются дальше.