
Я полюбил программирование ещё молодым. Мне очень нравилась удовлетворённость от достигнутого результата и сам процесс решения задач. Ещё я любил делиться своими достижениями с другими, просто ради их удивления или в качестве помощи.
Один особенно мудрый взрослый (где-то в 1996 году) однажды отвёл меня в сторону и сказал: «Знаешь, хорошо, что программирование приносит тебе удовольствие, потому что в будущем оно тебя не прокормит. Делать это из любви, а не ради денег — отличный подход.
Программированию приходит конец. Объектно-ориентированный подход позволит одному человеку, который будет намного умнее любого из нас, один раз написать библиотеку, которую мы будем использовать бесконечно. Решив какую-либо задачу, повторно решать её больше не придётся.
Через пять лет соберётся целая библиотека объектов, где они будут лежать подобно книжкам на полках, и бизнес сможет решать любую программную задачу по щелчку пальцев, просто комбинируя нужные библиотеки как детали LEGO. Вы ему не потребуетесь».
Я начал размышлять об этом совете и о том, что разработка ПО сойдёт на нет к тому моменту, как я поступлю в институт. Тогда я понял, что ещё даже не думал о перспективах своего образования. Я учился в средних классах и уже явно понимал, что это будет не программирование.
И вот я здесь почти 30 лет спустя, и разработка, несмотря ни на что, продолжает меня кормить. Существует опенсорс, и всегда находятся библиотеки, с помощью которых я могу скроить что-то нужное. Постоянно возникают новые серии задач, для которых ещё нет готовых решений. Комбинирование деталей LEGO по-прежнему требует усердного труда. Как только я решаю эту задачу на одном уровне абстракции, мы переходим на другой… и так продолжается по кругу.
Всякий раз, когда меня пугают словами вроде «твоё время подходит к концу», единственное, что в итоге меняется, это моя работа становится более раздражающей. Так что блаженного расслабления от исчезновения востребованности я пока не ощутил.
Сфера вычислений безвозвратно изменилась, оставив всех зазевавшихся не у дел
Где-то в 1993 году наступил расцвет «Эпохи мультимедиа». «Мультимедиа» стало модным словом. Отовсюду звучали требования вроде «Программное обеспечение должно поддерживать мультимедиа» или «Образовательные программы должны готовить детей к эпохе мультимедиа». Если разработанный вами инструмент не имел поддержки мультимедиа, даже совершенно для него не уместной, вы оставались не у дел. Вы должны были сопровождать свои продукты видео-руководством, записывать их на CD. Всё это просто становилось новой нормой.
По факту «мультимедиа» лишь означает «звук и видео». То есть для вполне заурядного явления мы создали целый громкий концепт.
В итоге весь этот шум вокруг мультимедиа кончился ничем. Интерес к этой идее пропал. Никого не впечатлишь видеороликом на сайте, и никто не станет думать о сайте без видео и звука плохо, если там эти вещи ни к чему. Вы просто добавляете в HTML-код тег <video />, и дело сделано. Ранее удивительные феномены стали рутиной. Мечта о «Мультимедиа» превратилась в обыденность, и все стали принимать это явление как данность. Я не знаю ни одной отрасли, которая бы рухнула из-за появления мультимедиа. Переучиваться никому не пришлось. Редактирование видео до сих пор встречается редко, да и звукоинженеров, работающих над UX в сфере ПО, тоже немного.
Смерть профессии разработчика ПО: вторая волна
В 2000 году был случай, когда один из коллег подозвал меня на своё рабочее место и показал новенькую копию IntelliJ IDE. «Для нас всё кончено» — сказал он. — «Эта штука исключает необходимость в программистах. С ней вполне может работать один человек, а остальных просто уволят».
Я был довольно шокирован. Он показал мне удивительную функцию автозавершения в этой IDE. Кроме того, теперь не нужно было держать отдельное окно JavaDocs и вручную открывать страницу документации для нужного класса — всё это было встроено. IDE ещё до компиляции дала ему обратную связь по куче проблем, которые ты обычно не видишь, пока не соберёшь код. Это был приятный превентивный элемент работы, который сулил разработчику возможность дольше оставаться в потоке.
А затем он показал мне киллер-фичу «которая лишит нас всех работы»: инструменты для рефакторинга.
С помощью этих инструментов он с лёгкостью перемещал код в новые файлы, менял имена классов по всей кодовой базе и делал всякие штуки, реализация которых вручную потребовала бы пары дней. Всё это выглядело как магия.
Немного подумав, я сказал: «Удивительно. Но может ли она писать новую логику или же просто перемещает код с места на место?»
Его мой вопрос нисколько не смутил, и он продолжил настаивать на том, что эти мощные инструменты поставят на нас крест. Я понимаю различия между «полезным» кодом и «заполняющим», но, очевидно, здесь ценность представляли не качество и природа кода, а его объём и наличие. И этот инструмент явно придавал крохотной смысловой начинке, написанной человеком, и то, и другое.
Как я автоматизировал чужую работу
На свою первую работу я устроился ещё в старшей школе. Тогда я трудился в офисе, расположенном в пригородном бизнес-парке, вместе с программистами из многих местных организаций. Там я заобщался с одним наёмным разработчиком. Этих ребят очень уважали как специалистов и в некотором смысле даже побаивались. Конкретно этот работал над многолетней миграцией какой-то системы здравоохранения округа с языка MUMPS на более современную реляционную платформу. Желая продемонстрировать свою продвинутость, он показал мне основной набор задач, которые решал. Но их было очень много, и он трудился в поте лица, чтобы успеть к дедлайну.
Тогда я немного подумал и из желания получить от него признание, а заодно и оценку своих навыков, предложил свою помощь. Хотелось показать ему, на что я способен. Я написал на Python скрипт, который мог решить 85% его задач (в основном через манипуляцию со строками) и даже добавил с помощью TKInter небольшой диалоговый интерфейс, чтобы можно было наглядно выбирать файлы для миграции. Работал скрипт прекрасно, но когда я показал его этому парню, тот со слегка испуганным видом спросил:
«Ты его больше никому не показывал?»
«Не-а».
«Слава богам».
По всей видимости, он взял мой инструмент на вооружение, так как у него появилось намного больше свободного времени, чтобы чувствовать себя вальяжно в течение последующих шести месяцев контракта. И вряд ли он кому-то об этом рассказал. Плюс ему наверняка удалось заполучить куда больше заказов на миграцию с MUMPS, когда он начал щёлкать их в считаные дни.
Как я автоматизировал свою работу
На той же работе мне платили за обслуживание правительственных сайтов. Одной из моих задач было поддерживать в актуальном виде список психиатров на HTML-странице, и загружать этот список на сервер.
Весь процесс был довольно механистичен: взять таблицу Excel из почты, открыть, скопировать её в таблицу HTML.
В течение месяца я этот рабочий поток полностью автоматизировал:
Я наладил отслеживание моего ящика в Outlook с помощью Windows Automation.
Когда в него падало письмо от человека, который присылал мне эти таблицы Excel, программа это письмо скачивала.
Тот же Windows Automation открывал скачанную таблицу в Excel.
Далее она экспортировалась в CSV (тоже инструментом автоматизации; я лишь через удалённый доступ наблюдал, как окно Excel открывалось и закрывалось).
Затем выполнялся скрипт Python, который вставлял эти CSV-данные в файл в виде HTML-таблицы.
В завершение ещё один скрипт Python подключался к FTP-серверу и загружал туда файл. При этом он случайным образом приостанавливался и совершал опечатки, маскируя всё это под работу человека с клавиатуры, чтобы никто не разгадал мой коварный замысел.
Тогда я жил со страхом быть раскрытым и никому не говорил, что мне платят за работу, которую я уже не делаю.
Где-то через 9 месяцев этот департамент нанял веб-разработчика на полную ставку в $45k/год, чтобы работа с сайтом велась полностью изнутри. Мои аутсорсинговые услуги обходились им где-то $25/час, то есть около $2000/год. Дело явно было не в деньгах.
И то, чего я боялся, тоже не случилось. Когда мне больше не потребовалось делать ту работу, руководитель просто переключил меня на другую.
Всегда есть ещё какая-то работа.
Мы не занимаемся кражей
В последние годы университета и ещё пару лет после его окончания я работал над проектами, связанными с задачами NLP. Для них требовались обучающие данные, и чем больше, тем лучше.
По этой части у нас были определённые обязанности. Мы должны были следить, чтобы полученные данные сопровождались некой лицензией или неявным разрешением на использование. Нельзя было просто украсть кучу PDF или обчистить чей-нибудь сайт, добавив собранные материалы в обучающий набор. Существовали этические ограничения и юридические последствия. При обучении моделей ИИ действовать нужно было в открытую.
Бывали случаи, когда мы обучали модели на данных с Wikipedia. Располагая такими обширными и качественными инструментами, удавалось добиться весьма впечатляющих результатов. Они были убедительные. Интересные. Даже простая цепочка Маркова, обученная на Wikipedia, выглядела умной.
Программируя веб-краулеры, мы закладывали в них необходимость учитывать robots.txt и хранили эти инструменты на локальных доменах. Поле user-agent включало наш адрес e-mail, и если какому-то злобному веб-мастеру не нравилось, как краулер собирает данные, мы вносили корректировки. Агрессивный краулинг приводил к перегрузке их серверов и засорению журналов, поэтому мы растягивали процесс на несколько часов или даже дней. Если же файл robots.txt отсутствовал или был каким-то образом искажён, и владельцы сайта не хотели видеть нас на своей территории, мы просто исключали этот сайт из списка.
Мы следили за тем, чтобы иметь явное разрешение на сбор данных для обучения.
Сфера вычислений безвозвратно изменилась, оставив всех зазевавшихся не у дел: вторая волна
Безумным периодом стал знаменитый пузырь доткомов. Тогда интернет только набрал популярность, и вокруг него возникла новая «золотая лихорадка». Деньги разлетались только в путь. Огромное количество инвесторов вкладывались в бизнес-планы, которые выглядели как «традиционный бизнес с тем-то тем-то, только в интернете!». И деньги лились рекой.
Но большинство компаний с такими наполеоновскими планами по факту даже не имели бизнес-модели — разве что купили какие-то серверы и доменное имя с идеей «вывести свой продукт в интернет».
Но нет худа без добра, и на руинах их амбиций взошла свежая концепция Web 2.0, в основе которой лежало нативное и органичное использование веб-среды, обеспечивающее приятный пользовательский опыт. В конечном итоге, когда многие люди получили свои болезненные и зачастую ненужные уроки, мечта об интернете и связанный с ним хайп всё же обрели осязаемые формы. Люди начали тратить меньше и выводили свои идеи в интернет, потому что в тот период времени они были для него актуальны, а не потому, что за ним будущее.
Мечта о всепроникающем интернете стала явью, и фатальных случаев было очень мало. Некоторые бизнесы загнулись, но по временной шкале это напоминало, скорее, таяние ледника, нежели извержение вулкана. Когда онлайн-сервисы стали повсеместным и привычным явлением, их использование превратилось в рутину. И в этом процессе не ощущалось горячки. Он был противоположен буму доткомов, произошедшему всего пятью годами ранее. Всё происходило под лозунгами типа: «Интернет уже здесь, и мы будем строить в нём устойчивый бизнес» вместо «Мы должны как-то срочно перенести свой устойчивый бизнес в интернет, потому что за ним будущее».
Завершение
Это была мощная серия пассивно-агрессивных выпадов в сторону непрекращающегося потока LLM-хайпа, переполняющего каналы нашего восприятия.
Комментарии (2)

sepulkary
07.12.2025 09:59Через пять лет соберётся целая библиотека объектов, где они будут лежать подобно книжкам на полках, и бизнес сможет решать любую программную задачу по щелчку пальцев, просто комбинируя нужные библиотеки как детали LEGO.
Если я правильно помню (пусть старшее поколение меня поправит), такой подход имеет корни как минимум в шестидесятых. Тогда тоже была надежда, что вот сейчас составим библиотеку всех потребных численных методов, вроде определения арктангенса, расчёта ФОТ и движения тела в атмосфере, а потом нагрузка на программиста существенно снизится.
saipr
Вот случай из моей практики (1979 -1980 года):
Были и другие более анекдотические случаи....
За статью спасибо!