
«Я не просто разработчик, я…» — коллекция самых пафосных IT-титулов
Кодер, инженер или просто «тот, кто всё чинит»? Забудьте о скромности — ваше звание определяет вашу власть, зарплату и место в пищевой цепочке IT.
Основные идеи
Мнение автора
Cейчас ИИ активно забирает себе всю эту «бумажную» работу по коду. А наша роль? По сути, сводится к проверке. Мы становимся такими надзирателями для умных агентов. Так что, друзья, скоро нам снова понадобится придумать новое словечко. Чтобы описать, чем же мы, собственно, занимаемся с этими цифровыми помощничками. Вот такой вот поворот!
На этой неделе прилетело мне письмецо от одного друга. Отреагировал он на мою статью про домены программирования, в которых не шарит ни один нормальный разработчик. И знаете, что он накатал?
Цитата: «Братан, если ты не в теме про Kubernetes, то твои заявления о превращении из программиста в разработчика — это, мягко говоря, дико сомнительно».
Ну, вы поняли. Он-то меня знает давно, так что ясно, на что он намекает. Скорее всего, он вспомнил мой старый отзыв на шикарную книжку Майка Гандерлоя «От программиста к разработчику». Вау, книжка и правда потрясная! И, ага, она была ну прям полностью актуальна для нашей профессии… примерно четыре минуты назад, если мерить по стремительному времени ИИ.
А суть там в чём? Всё просто: книга рассказывает, что нужно делать, чтобы прокачаться в этом деле. И главный фокус — это как раз не написание кода! Вот такой вот поворот. Чтобы стать настоящим профи (что бы это ни значило, да).
Всё это заставило меня задуматься о словах, которые мы используем для самоописания, и о том, как эти слова передают различные значения, цели и уровни понимания того, что значит работать в сфере разработки программного обеспечения.
Гнезда, переключатели и циферблаты
Первые компьютеры не использовали слова или языки для кодирования, а выполняли довольно простые вычисления с помощью физических элементов. «Программисты» подключали провода к гнездам, устанавливали переключатели, поворачивали циферблаты и вращали роторы. В то время это считалось «женской работой», потому что в основном требовало канцелярских навыков. Но если отбросить это в сторону, то всё это было механическим по своей природе. Эти работники называли себя не «программистами», а «операторами», потому что они физически управляли машиной. Между машиной и логикой, используемой для управления машиной, не было разделения. Это было одно и то же.
Термин «программист» появился только после того, как была создана абстракция «компьютерного языка». Языки программирования позволили чётко разделить логику, используемую для выполнения программы, и физическое устройство, используемое для выполнения этой логики. По мере того как компьютеры становились всё более универсальными, появилось понятие «программист».
Изначально компьютерные программы были «линейными» или ориентированными на выполнение задачи, то есть они начинались в точке А и заканчивались в точке Б, чаще всего выполняя какие-то вычисления. Конечно, в них были ветвления, циклы и управление потоком, но чаще всего программы начинали работу с ввода данных и заканчивали выводом результатов.
Я помню, как в старших классах мы писали программы на карточках, сдавали их «компьютерным крысам» в компьютерном классе, которые запускали их и аккуратно обматывали распечатанные результаты вокруг карточек резинкой.
Кстати, я часто фантазирую о том, что бы вы сделали, если бы взяли ноутбук, отправились на нём в прошлое и показали бы армии 1942 года электронную таблицу Excel, с помощью которой можно было бы рассчитать баллистические таблицы, над которыми медленно и кропотливо трудились люди с арифмометрами.
Границы, модули и интерфейсы
Но системы становились всё сложнее, машины — всё универсальнее, а программное обеспечение — всё разнообразнее. Возникла проблема пользовательского интерфейса. Код стал громоздким, многоразовым, разнообразным и запутанным. Программистам пришлось начать мыслить категориями границ и модулей. Интерфейсы между этими границами и модулями стали вызывать серьёзную озабоченность. Появилась система управления версиями. Управление всем этим привело к появлению понятия «разработка программного обеспечения». (Лично мне никогда не нравился этот термин. Я всегда был на стороне тех, кто считает разработку программного обеспечения искусством, а не наукой.)
Все эти изменения привели к тому, что термин «программист» стал немного устаревшим. Вместо него появилось понятие «разработчик программного обеспечения». Тридцать лет назад человек мог назвать себя «компьютерным программистом», но сейчас я почти не слышу, чтобы этот термин использовали в профессиональной среде. В наши дни большинство людей называют себя «разработчиками программного обеспечения» или «инженерами-программистами».
Эти термины подразумевают уровень знаний и навыков, выходящий за рамки простого написания кода. Код по-прежнему лежит в основе, но, как написал Гандерлой в своей книге, в наши дни работа программиста включает в себя гораздо больше, чем просто написание кода. Код по-прежнему лежит в основе, но теперь он окружён слоями абстракции и сложности, из-за чего термин «программист» не подходит для описания того, чем мы занимаемся.
И это подводит нас к вопросу, который мы обсуждаем сегодня: что именно значит быть «разработчиком программного обеспечения» в наши дни? Как я уже говорил, похоже, что «программирование» становится всё менее востребованным. Агентный ИИ начинает выполнять всю «бумажную» работу по разработке программного обеспечения. Он пишет код. В лучшем случае мы будем выборочно проверять то, что он пишет, но давайте посмотрим правде в глаза: даже выборочная проверка отойдёт на второй план.
Оператор. Программист. Разработчик. Инженер. То, как мы себя называем, менялось с годами, как и то, чем именно мы занимаемся. На каждом этапе требовалось время, чтобы функция получила новое название. Интересно, когда мы придумаем новое слово, чтобы описать то, чем мы занимаемся, используя наших агентов по кодированию. Я почти уверен, что рано или поздно мы это сделаем.
Не разработчик? ИИ всё равно лишит вас работы — предупреждают учёные











