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

Анна Самойдюк
Расскажите друзьям
Анна Самойдюк

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

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

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

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

Фото: Unsplash

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

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

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

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

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

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

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

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

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

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

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

Фото: Unsplash

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

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

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

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

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

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

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

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

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

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

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

Источник.


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

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

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

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

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


Актуальные материалы — в Telegram-канале @Rusbase

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


Комментарии

  • Кирилл Зайцев
    Кирилл Зайцев 06:35, 8.08.2018
    1
    • Николай Натаров Николай Натаров
    Слишком много категоричных выводов на пустом месте, особенно если учитывать признание самого автора из первоисточника, что он "не часто программирует". Сам являюсь web-разработчиком, и со многими вещами в статье крайне не согласен, особенно с выводом, что в программировании не осталось места для творчества. "Цель и процесс ее достижения в программировании обычно ясны" - только если делаете что-то предельно простое, вам все разжевано вашим тим лидом до мелочей и никаких подводных камней не предвидится. "Есть четко определенные способы, как выполнить задачу, и на базовом уровне это нормально. Проблема в том, что большинство сред разработки могут принимать лишь ограниченное подмножество подходов" - если у вас в руках молоток, все вокруг кажется гвоздями. Иногда жаль, что вместе с переводами таких вот историй не публикуют также наиболее популярные комментарии из первоисточника. Оставлю это здесь (перевод оригинала, +657): "Данная статья - символ проблемы, которую я наблюдаю все чаще в последние несколько лет: неспособность отделить свое эмоциональное состояние от целого класса людей, с ним связанного. Это своего рода проекция, которую я обычно вижу только в инфантильных политических идентитаристах. Автор не удовлетворен своей работой и ошибочно полагает, что то же самое относится ко всем во всей области. Он проецирует свои собственные неадекватные и плохие решения на всех остальных, а затем отказывается брать на себя ответственность за свой выбор и обвиняет выбранную профессию за собственные ошибки. Ему не хватает модели психического состояния, которую дети обычно развивают в возрасте до 6 лет. Растите. Узнайте, что ваши эмоции не являются универсальным мерилом всего остального."
  • Деннис Ритчи
    Деннис Ритчи 08:40, 8.08.2018
    -2
    • Антон Васин Антон Васин
    • Кирилл Зайцев Кирилл Зайцев
    Да так оно и есть, особенно в разработке связанной с веб. Можно смело сравнивать работу бухгалтера и веб-программиста.
  • Антон Васин
    Деннис Ритчи Антон Васин 17:45, 3.09.2018
    0
    Я веб программист. Мой сайт - универсальный медицинский ИИ, kiberis.ru. Написано php jq. И он делает все известные мне проекты в сфере медицинского ИИ (буду благодарен, если найдете лучше). Никакой рутиной там не пахнет. Все зависит от задач, и от методов решения. А уж программиста в целом называть нетворческой профессией - кощунство.
  • Dmitriy Staeglazov
    Dmitriy Staeglazov 10:15, 8.08.2018
    3
    • Антон Васин Антон Васин
    • Николай Натаров Николай Натаров
    • Кирилл Зайцев Кирилл Зайцев
    Я не смог заставить себя читать это нытье до конца. Мне кажется, что автор просто сезонный кодер. Программистом его назвать у меня язык не поворачивается. Каждый программист проходит один из начальных этапов "взросления", когда что-то обязательно колется, неприятно и кажется, что этому не будет ни конца, ни края. И из такого этапа обычно 2 выхода, либо ты, стиснув зубы, продолжаешь набирать опыт и приходишь к просветлению, либо бросаешь программирование совсем и идёшь заниматься чем-то другим, периодически изливая свой негативный опыт на окружающих в виде соплей и слез
  • Деннис Ритчи
    Деннис Ритчи 11:28, 8.08.2018
    0
    Тема не раскрыта - сестра сестра программистом или нет?
  • Николай Натаров
    Николай Натаров 21:05, 12.08.2018
    1
    • Кирилл Зайцев Кирилл Зайцев
    Сестра писала рассаказы? А кто их читал? Да и автор, видно, так себе программер.
Зарегистрируйтесь, чтобы оставлять комментарии и получить доступ к Pipeline — социальной сети, соединяющей стартапы и инвесторов.
QIWI Techday - Make It Real
17 декабря 2018
Ещё события


Telegram канал @rusbase