Top.Mail.Ru
Истории

«Я ненавижу программирование – и после этой статьи вы тоже возненавидите»

Истории
Анна Самойдюк
Анна Самойдюк

Ex-редактор направления «Истории».

Анна Самойдюк

Предприниматель и программист Мика Йеп рассказал, что ему не нравится в программировании, и предложил несколько вариантов, как вернуть этому занятию былое величие.

«Я ненавижу программирование – и после этой статьи вы тоже возненавидите»

Пришло время летних каникул. Все школьники счастливы. Первые несколько недель все наслаждаются свободным временем и ничего не делают. Затем начинают снова жаловаться.

Видите ли, учеников в конечном итоге одолевает вялость. Во время учебы все так скучно и сложно, что они устают от этого и под конец чувствуют себя обессиленными. Но как только наступают каникулы и они верят в то, что все станет лучше, им быстро становится скучно. Я называю этот феномен «отсутствие внутренней цели».

Моя сестра – наглядный пример этого явления. После нескольких бесполезных проектов она достигла дна: недельный период просмотра видео о макияже на YouTube и других социальных сетей. Со временем она начала страдать вслух, и я был вынужден помочь. Тут история и приобретает краски.

Фото: Unsplash

Она хотела заняться чем-то «механическим», где бы не было места творчеству. Раньше она писала рассказы, это занятие требовало продолжительной умственной нагрузки, и она уставала. Прочитав несколько статей о ценных навыках в 2018 году, я предложил ей научиться программировать. Я считаю, что это ценный навык, и сам программирую. Первый день обучения прошел замечательно. Она была заинтересована и нашла смысл существования. Вы, возможно, задаетесь вопросом: а к чему такой заголовок?

На самом деле в своей компании я не очень часто пишу код – лишь в экстренных ситуациях (дедлайны, больничный). Даже в такие моменты мне это очень не нравится. Я ненавижу программирование, потому что большая его часть кажется мне роботизированной.

Основная суть программирования – следовать известному рецепту, придуманному группой очень умных людей.

Цель и процесс ее достижения в программировании обычно ясны. У вас есть набор задач, которые нужно выполнить, и вы пишете код, чтобы сделать это хорошо. Проблема заключается в том, что без какого-либо предупреждения в процессе может возникнуть 20 миллионов ошибок. Исходя из своего опыта, я могу сказать, что не каждая вещь, которая может пойти не так, пойдет не так. Но вещь, которая должна работать, в итоге будет работать не так, и тем самым вызовет еще больше проблем, чем ожидалось в самом начале.

Программирование утомительно. Невозможно проявлять креативность в написании кода, потому что даже обычное и общее его использование едва работает. Нельзя просто сесть программировать без четкой цели в уме. В рисовании это то же самое, что иметь возможность нарисовать картину, только обладая четким ее представлением. Заранее должен быть определен и вычислен каждый цвет, и даже случайный мазок может испортить все полотно.

Фото: Unsplash. Большинство кода, который вы пишете – мусор.

В программировании вы ограничены в возможностях. 

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

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

Я понимаю, что не все читатели знакомы с техническими формулировками и не понимают природу этих страданий. Поэтому я придумал близкую аналогию: представьте, что вам нужно за шесть часов перевезти 50 арбузов из точки А в точку Б, расстояние между которыми составляет 50 км. У вас есть грузовик, в который сразу помещается 50 арбузов. Все просто, правда? Надо загрузить арбузы и отправиться в точку Б. Шесть часов – более чем достаточно, чтобы преодолеть 50 км. Что ж, в зависимости от языка программирования, ход событий будет различаться.

Если вы разработчик С, у вас уже ничего не получится, потому что вы забыли импортировать необходимые библиотеки. Кроме того, ваш грузовик переполнен мусором, что делает его непригодным. Если вы разработчик систем, у вас даже нет грузовика, поэтому вы достаете из арбузов семена, пробегаете 50 км и сажаете их в точке Б в надежде, что там вырастет 30 арбузов. Если вы разработчик Ruby on Rails, грузовик на самом деле беспилотный, и все, что вам нужно сделать, – загрузить арбузы. Но в процессе вы неправильно используете метод ActiveRecord, и теперь ваши арбузы стали авокадо. Хорошие новости – у вас есть 24 книги с рецептами из авокадо.

Фото: Unsplash

Видите? Это очень раздражает.

Программирование – слишком неестественно и не интуитивно, чтобы проявлять креативность.

Я не говорю, что современные методы программирования ужасны. Благодаря коду у нас есть реактивные самолеты, компьютеры, фондовые рынки и, возможно, искусственный интеллект. Представьте, какие бы открылись возможности, если бы программирование было таким же простым, как рисование.

Кодинг откроет нам невероятные возможности, если он просто будет более приятным. Если вы мне не верите, попробуйте научиться программировать. В первый месяц вам будет казаться, что вы контролируете целую галактику. Но как только вы начнете делать реальные вещи при помощи кода, вы поймете, что я имею в виду. Разработчики не просто так получают высокую зарплату.

Как вернуть кодингу былое величие?

Если устранить любое давление, возникающее в процессе кодинга, например, дедлайны или конкретные цели, и вместо этого просто фокусироваться на обучении, вам будет нравиться это занятие долгое время. Тем не менее, вы должны понимать, что в индустрии доминируют люди, которые пишут код по двенадцать часов в день без выходных. Очень редко мы слышим новости, когда тринадцатилетний мальчик изобретает программу на основе искусственного интеллекта спустя два месяца обучения программированию по выходным.

Что нам, программистам, следует делать?

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

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

Мы должны делать кодинг проще и мощнее. Так многие профессии станут куда приятнее. Еще важнее, мы заживем долго и счастливо. Мы уже потратили слишком много времени.

Кодинг – сложная вещь. Вы знаете, что я прав. Пришло время это исправить и фокусироваться на результатах того, что мы делаем, а не на том, как мы это делаем.

Источник.


Материалы по теме:

Что бесит разработчиков в одном из самых популярных языков программирования

Сам себе программист: подборка бесплатных ресурсов для новичков

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

Названы 5 самых популярных языков программирования по версии HackerRank

Нашли опечатку? Выделите текст и нажмите Ctrl + Enter

Материалы по теме

  1. 1 Куда идти с идеей стартапа: кто поможет превратить её в действующий бизнес?
  2. 2 «Наша разработка должна сделать эндоскопию массовым обследованием»‎. Как ИИ из Ярославля помогает распознавать рак на ранней стадии
  3. 3 Студенты хакнули «Газпром нефть» и «Сибур»
  4. 4 Программист, который умеет в data science, круче, чем дата-сайентист, который умеет в программирование
  5. 5 Мобильным приложениям нужен особый подход. 11 советов, как не убить маркетинг
DION
Что ждет рынок корпоративных коммуникаций в 2024 году?
Подробнее