«Со смертью кодинга инженеры повернутся лицом к остальной части человечества»

Разработчик AnyPerks о будущей автоматизации программирования

Разработчик компании AnyPerks Лорен Мендоза написала на Medium заметку о том, что написание кода и профессия программиста переоценены и в будущем необходимость в них снизится.

Редакция vc.ru публикует перевод материала, выполненный командой студии мобильной разработки Live Typing.

С файлами на компьютере можно обращаться множеством способов. В основном людям удобно оперировать ими через визуальный интерфейс, поэтому они используют файловый менеджер Mac Finder. Но можно пойти другим путем и заморочиться с командной строкой в приложении Terminal. В работе с одной и той же информацией может быть несколько подходов.

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

Когда-то я писала электронную музыку в программе Reason. В ней наглядно представлены связи между отдельными блоками: просто бери провод и тяни его из одного гнезда к другому. Этим она в свое время меня и покорила. Провода лучше выпадающих меню, которыми были заражены передовые программы 2000-х годов (по схожим причинам я очень люблю Adobe Flash CS3 Professional). С интерфейсом Reason я осознавала, что делала, поэтому музыки я создала больше, чем Flash-роликов.

Нам не хватает веселья

Не знаю, как так получилось, но в какой-то момент представители ИТ-сферы стали разработчиками, а из разработчиков получились инженеры программного обеспечения. Мне нравится, когда меня называют инженером: ещё бы, я же посвятила «обучению» три месяца. Вот только быть инженером — значит решать новые проблемы и копать глубже. Это интеллектуальная работа, на какую наша работа не очень похожа.

По принципу CRUD созданы уже тысячи программных продуктов. Мы этому научились, проблема решена, хватит. Но чего-то ради мы продолжаем делать и делать подобные приложения, причем с чистого листа.

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

Не накидать ли побольше CSS

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

Чтобы работа в интернете шла гладко, нам нужно использовать основные элементы и тасовать их для достижения цели: «металл, черный цвет, зло», «бизнес, респектабельность, голубой цвет», «хипстеры, веселье, Apple» или «мило, мама оценит». Несколько ключевых слов — и вот вам готовый стиль. И пропади оно пропадом — писать код, чтобы подвинуть что-то на пять пикселей.

Нужно умерить пыл

Написание кода у инженеров считается священным Граалем. «Правильные инженеры пишут код, — говорит правильный инженер. — Написание кода — как раз то, что делает тебя правильным инженером». Многие соединяют свое «эго», свою идентичность с тем, что они пишут код. Не исключено, что таким людям нужна помощь психолога, и я не шучу. Я сама становлюсь таким человеком.

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

Кодить — это тупо

Кодинг предполагает опечатки. Более того, он дает простор для «творчества», и тогда код получается с душком. А вообще, код — в большинстве случаев попросту громоздкая штука. Инженеры копаются в синтаксисе, опечатках и отступах, проводят линтинг, исправляют ошибки, спорят о стилях и лучших практиках и создают ярлыки для того, чтобы часть кода писала себя сама. Это абсурд и трата времени.

Будущее близко

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

Стартап Algolia позволил улучшить поиск. Я не знаю, как они это делают, но точно знаю, что компьютер дешевле и лучше человека в вопросах оптимизации структурированных данных.

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

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

Решение

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

Сейчас я размышляю над таким интерфейсом, который по принципу drag-and-drop позволит создавать разработки со всеми нужными фичами, с клиентской и серверной частью и без строчки кода. Понятия не имею, как я буду это делать, но, думаю, пущу в ход уже упомянутые навыки работы с Adobe Flash CS3 Professional. Ладно, шучу. Скорее всего, я сделаю это на React.

Выгоды

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

Оздоровление инженерной среды

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

Что делать? Уходить в виртуальную реальность и созидать там. Я купила себе шлем HTC Vive и просто зависла, настолько это круто.

0
163 комментария
Написать комментарий...
VVilliam Blake
> Разработчикам неистово переплачивают

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

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

Есть ещё "стартапы" и госконтракты, когда деньги инвесторов также умело "смузифицируются". Но это отдельный разговор, не относящийся ко всей отрасли.

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

Ответить
Развернуть ветку
Сергей Соболев

Просто программистов давно уже пора делить на "кодеров" и "инженеров", не на уровне курилки в IT-сфере, а глобально, с разделением по названиям должностей/вакансий и т.д. Потому что кодер может сделать сайт, а инженер может сделать ПО. Сайт сделать уже давно можно без навыков программирования. Есть куча CMS. Даже для добавления "продвинутых" функций на сайте программист не нужен. Достаточно гугла (stackoverflow) и немного интеллекта. И вот такой сайтодел – уже кодер. Junior кодер.

А вот чтобы стать инженером, нужно разобраться не только в IDE и синтаксисе языка программирования, а научиться выстраивать системы или писать алгоритмы. В том числе, писать приблуды, "чтобы часть кода писала сама себя". Но главное – понимать, как "вот это вот всё" работает. Я думаю, ещё нескоро инженеров заменит ими же написанное ПО.

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

Ответить
Развернуть ветку
sf

Ваше понимание термина "сайт" дальше простого лендинга не ушло видимо.

Ответить
Развернуть ветку
Сергей Соболев

Я сам программист. Читайте лучше, я не писал, что все сайты делаются на CMS. Но используя CMS можно сделать большинство сайтов. 50% интернета составляют сайты на вордпресс.

Ответить
Развернуть ветку
sf

Сайтом может быть все что угодно, как типовой лендинг, для которого даже CMS не нужна, так и простая веб-морда к навороченному и сложному бекенду.

Ответить
Развернуть ветку
Сергей Соболев

Я вроде этому не противоречил.

Ответить
Развернуть ветку
160 комментариев
Раскрывать всегда