Я всегда считал, что как мои родители позаботились о том, чтобы я научился читать и писать, так и я позабочусь о том, чтобы мои дети могли программировать компьютеры. Это одно из самых молодых искусств, но в то же время одно из самых насущных, и с каждым днём оно становится всё важнее в любой сфере, от съёмки фильмов до физики. Беглый кодинг станет частью грамотности моих детей и обеспечит им работу. На момент написания статьи моя жена беременна нашим первым ребёнком и должна родить через три недели. Я профессионально пишу код, но когда мой ребёнок научится печатать, ценность кодинга как навыка может померкнуть для мира.
Я начал считать так утром одной из пятниц этого лета, в процессе работы над небольшим хобби-проектом. За несколько месяцев до этого мы с моим другом Беном решили создать компьютерный генератор кроссвордов. В 2018 году мы создали кроссворд при помощи ПО и удивились, насколько маленьким был наш вклад — достаточно было небольших вкусовых дополнений в паре мест. Теперь мы хотели создать программу для генерации кроссвордов, не требующую вмешательства человека.
Приступая к подобным проектам в прошлом, мы работали и с аппаратным, и с программным компонентами; Бен в основном был силён в первом. Однажды мы изготовили неоновую вывеску, которая начинала светиться, когда поезд метро останавливался рядом с нашими квартирами. Бен сделал стеклянные трубки и спаял плату. Я писал код обработки данных прохождения поездов. У Бена был опыт профессионального кодинга, но кратковременный и неглубокий, и теперь он уже устарел лет на двадцать; весь серьёзный кодинг был оставлен мне. Однако для нового проекта с кроссвордами Бен пригласил третью сторону. Он подписался на тариф ChatGPT Plus и использовал GPT-4 как помощника в кодинге.
И тут начало происходить нечто странное. Мы с Беном обсуждали ту программу, которую хотим создать для проекта. Вскоре после этого Бен, к моему удивлению, написал её сам. На одном из этапов мы хотели создать команду, выводящую из файла словаря сотню случайных строк. Я поразмышлял об этой задаче несколько минут, а когда понял, что не справлюсь, начал гуглить. Пока я занимался тем, что умею (программированием), на основании полученных гуглением знаний, у меня произошло несколько фальстартов; Бен же тем временем сказал GPT-4, чего он хочет, и получил идеально работающий код.
Ладно, допустим: подобные команды известны своей запутанностью, и их всё равно все гуглят. Это ненастоящее программирование. Несколько дней назад Бен сказал, что было бы здорово создать приложение для iPhone, ранжирующее слова из словаря. Но он понятия не имел, насколько сложно создавать приложение для iPhone. Я пробовал несколько раз, но так и не написал ничего полностью работающего. Я нахожу среду программирования Apple отталкивающей. Нужно учить не только новый язык, но и новую программу для редактирования и запуска кода; необходимо изучать зоопарк разных «компонентов UI» и все изощрённые способы их связи; и, наконец, надо разбираться, как упаковывать приложение. Мне никогда не казалось, что целая гора новых знаний оправдывает их освоение. Проснувшись на следующее утро, я увидел в своих входящих приложение, которое делало именно то, что хотел Бен. Оно работало идеально и даже имело милый дизайн. Бен сказал, что создал его за несколько часов. Основной труд взял на себя GPT-4.
Сегодня у большинства людей уже есть опыт взаимодействия с ИИ. Не всех он впечатлил. Бен недавно сказал: «Я не ценил его, пока он не начал писать код за меня». Подозреваю, что скептичные непрограммисты, наблюдавшие за тем, как ChatGPT выдаёт неуклюжую прозу или выдуманные факты, недооценивают всю мощь происходящего.
Комплексы знаний и навыков, освоение которых традиционно требовало целой жизни, сейчас поглощаются одним глотком. Кодинг всегда казался мне бесконечно глубокой и богатой областью. Но теперь у меня появилось желание написать для него некролог. Я не перестаю думать о Ли Седоле. Седоль был одним из лучших в мире игроков в го, национальным героем в Южной Корее, но теперь он больше всего известен как проигравший в 2016 году компьютерной программе AlphaGo. Седоль пришёл на соревнования, считая, что с лёгкостью победит ИИ. К концу длившегося несколько дней матча он гордился тем, что смог вытянуть одну игру из пяти. Когда стало очевидно, что он проиграет, Седоль сказал на пресс-конференции: «Хочу попросить прощения за то, что настолько бессилен». Три года спустя он ушёл из го. Похоже, Седоля тяготил вопрос, который начал казаться мне знакомым и насущным: что станет с тем ремеслом, которому я посвятил такую большую часть своей жизни?
Впервые я был очарован компьютерами в возрасте шести лет, в Монреале в начале девяностых, когда играл в Mortal Kombat со своим старшим братом. Он рассказал мне о «фаталити» — жестоких, кровавых способах убийства противника. Ни один из нас не знал, как их делать. Он подключился по модему к FTP-серверу (где хранились файлы) и ввёл в терминале MS-DOS загадочные команды. Вскоре он вывел страницу кодов — инструкции по каждой фаталити в игре. Мы вернулись в подвал и начали взрывать друг другу головы.
Я думал, что мой брат — хакер. Как и многие программисты, я мечтал о взломе и контроле удалённых систем. Смысл был не в создании хаоса, а в поиске потайных мест и скрытых вещей. «Моё преступление — любопытство» говорится в написанном в 1986 году «Манифесте хакера» Лойда Блэнкеншипа. Моя любимая сцена из фильма 1995 года «Хакеры» — это когда новичок Дэйд Мёрфи показывает свои навыки в андерграундном клубе. Кто-то начинает вытаскивать из рюкзака радугу компьютерных книг, и Дэйд узнаёт каждую из них по обложке: зелёная книга — о средах Unix; красная — о сетях, которые АНБ считает надёжными; с парнем в розовой рубашке — о IBM PC. Дэйд применяет свои навыки, включая систему пожаротушения в школе и помогая уравновесить балласт на нефтяном танкере; разумеется, всё это он делает, быстро щёлкая по клавиатуре. Урок заключался в том, что знания — сила.
Но как же научиться хакингу? Когда я был в пятом классе, моя семья переехала в Нью-Джерси; учась в старшей школе, я зашёл в книжный магазин Borders в торговом центре Short Hills и купил «Beginning Visual C++» Айвора Хортона. В книге было двенадцать сотен страниц, она стала моим первым гримуаром. Как многие учебные пособия, поначалу она была простой, а потом резко становилась сложнее. Средневековые студенты называли момент, когда рядовые ученики терпят поражение, pons asinorum, или «мост ослов». Этот термин появился благодаря пятому постулату из первой книги «Начал» Евклида — первому по-настоящему сложному понятию в книге. Те, кто пересёк мост, переходили к сложной геометрии; не освоившие его оставались дилетантами. Раздел 4.3 «Beginning Visual C++» о динамическом распределении памяти стал моим мостом ослов. И я его не пересёк.
Но я и не забросил эту тему. Я помню тот момент, когда всё начало укладываться в голове. Я находился на долгом рейсе в самолёте, взяв с собой чёрный ноутбук и CD-ROM с компилятором Borland C++. Компилятор преобразует код, который вы пишете, в код, который может выполнять машина; чтобы заставить работать этот код, я боролся уже несколько дней. Традиционно, первая программа каждого кодера не должна делать ничего, кроме как печатать слова «Hello, world». Когда я попробовал запустить свою версию, то получил сердитые сообщения об ошибках. Каждый раз, когда я устранял одну проблему, всплывала другая. Я читал книги о Гарри Поттере и чувствовал себя так, как будто у меня есть метла, но пока я не выучил заклинание её полёта. Понимая, что станет возможно, если я его узнаю, я продолжал упорно трудиться. В результате я понял, что программирование — это вопрос не знаний или навыка, а терпения или, возможно, одержимости. Программисты — это люди, способные выдерживать марафон скучных препятствий. Представьте, что вам приходится объяснять по телефону неопытному человеку, как собирать мебель, без фотографий и на языке, который вы едва знаете. Ещё представьте, что в ответ вам говорят только то, что вы предлагаете нечто абсурдное и что вся сборка пошла прахом. Тем больше удовольствия вы получаете, когда вам всё-таки удаётся что-то собрать. Я чётко помню, как лежал на ряду сидений в самолёте и нажал на Enter. Я приподнялся. Компьютер наконец-то сделал то, что я просил. Над курсором появились слова «Hello, world», сказанные компьютером. Показалось, что его интеллект проснулся и проявил себя мне.
Большинство из нас никогда так и не стали теми хакерами, которых мы видели в фильме «Хакеры». «Хакинг» на жаргоне программистов — это просто эксперименты, выражение своей изобретательности через код. Я никогда не учил программирование по программе; я продолжал развлекаться, заставляя компьютеры делать полезные или потрясающие мелочи. На первом курсе колледжа, когда проходил третий раунд турнира Мастерс 2006 года и на поле выходил Тайгер Вудс, я находился в дороге. Мне хотелось в реальном времени знать, что там происходит. Я написал программу, которая скрейпила таблицу лидеров с pgatour.com и отправляла мне текстовое сообщение каждый раз, когда Тайгер делал «бёрди» или «богги». Позже, прочитав «Улисс» на занятиях по английскому, я написал программу, которая извлекала случайные предложения из книги, подсчитывала количество слогов и собирала хайку — это была более грубая переработка языка, чем та, которую можно получить от современного чат-бота, тем не менее, способная, на мой взгляд, на настоящую поэзию:
I’ll flay him alive
Uncertainly he waited
Heavy of the past
Я начал воспринимать кодинг серьёзно. Предложил программировать в стартапе друга. Я понял, что мир вычислений обширен, но организован почти геологически, как будто из слоёв. От веб-браузера и до транзистора, каждая подобласть или система построена поверх какой-то другой, более старой подобласти или системы. Слои тесно соединены, но различимы. Чем больше копаешь, тем сильнее в тебе развивается то, что гонщик Джеки Стюарт назвал «механической симпатией» — чувство сильных сторон и ограничений машины, того, на что она способна.
Я ощущал, что в компании моего друга моя механическая симпатия развивается. На втором курсе я смотрел телевикторину с другом и он предложил, чтобы я создал её играбельную версию. Я подумал над этим несколько часов, а потом с большим чувством разочарования решил, что это выше моих возможностей. Но когда эта идея возникла снова на третий год обучения, я увидел способ её реализации. Я начал лучше ощущать, что человек может сделать с машиной. Следующие четырнадцать часов я потратил на создание игры. Спустя несколько недель игра в эту викторину стала традицией моих друзей. Это был очень серьёзный опыт. Я могу понять, почему люди тратят всю свою жизнь на освоение этого ремесла: ничто не сравнится с наблюдением за тем, как люди наслаждаются созданным тобой.
В процессе всего этого я совершенно забросил учёбу и перестал следить за оценками. Я трудился упорно, только не над домашней работой. Однажды вечером я собрал полдюжины машин в подземной компьютерной лаборатории, чтобы они выполняли программу параллельно. Я разложил на полу распечатки с кучами цифр, обдумывая алгоритм поиска пути. За это пришлось расплачиваться воплощением ночных кошмаров — я пришёл на выпускной экзамен, совершенно не зная материала. (Моей темой была теория функций вещественной переменной.) В 2009 году, в момент самого серьёзного за десятки лет финансового кризиса, я выпустился со средним баллом 2,9 [прим. пер.: по четырёхбалльной системе США].
Тем не менее, я с лёгкостью нашёл свою первую постоянную работу. У меня был опыт работы программистом, поэтому никто не спрашивал меня об оценках. Это были замечательные времена для молодых кодеров. Компании всеми силами старались привлечь лучших программистов. Способы найма опытных программистов были настолько агрессивными, что они жаловались на «рекрутерский спам». Университетские программы computer science испытали взрыв популярности. (Я получил степень по экономике.) Появились «буткэмпы» по кодингу, убедительно рассказывавшие о том, что менее чем за год превратят новичков в программистов с высокими зарплатами. На одном из первых собеседований, когда мне было чуть больше двадцати, CEO спросил, сколько, по моему мнению, я заслуживаю получать. Я осмелился назвать число, от которого испытывал небольшое смущение. Он сразу же подготовил договор, в котором было на десять процентов больше. Навыками «разработчика ПО» хвастались. В компании, где я работал, у одного сотрудника возникли проблемы, когда он задал моему коллеге вопрос в HipChat (предшественнике Slack). Ему сказали: «Никогда не обращайся напрямую к разработчику в HipChat». Мы были слишком важными для этого.
Это была эпоха почти нулевых процентных ставок и экстраординарного роста технологического сектора. Тогда устанавливались определённые стандарты. Компании наподобие Google приучили отрасль к тому, что у кодеров должны быть бесплатный эспрессо и доставка еды, здравоохранение мирового уровня и отпуск по уходу за ребёнком, спортзалы в офисах и комнаты для хранения велосипедов, свободный стиль одежды и «двадцать процентов времени», то есть они могут посвящать один рабочий день в неделю той работе, которая им нравится. Их навыки считались настолько критически важными и деликатными, что вокруг этой профессии сложилось что-то типа суеверий. Например, считалось глупым оценивать, сколько времени займёт задача по написанию кода, потому что в любой момент программист может перевернуть камень и обнаружить скопление багов. Дедлайны подверглись анафеме. Если давление оказывалось слишком сильным, то кодеру достаточно было сказать волшебное слово «выгорание», чтобы получить ещё несколько месяцев на выпуск продукта.
С самого начала у меня было ощущение, что в этом есть что-то не то. Почему же мы настолько ценны? Как долго продлится этот бум? Когда я был подростком, то немного занимался веб-дизайном, в то время эта работала имела большой спрос и дорого ценилась. Можно было заработать тысячи долларов за проект, занимающий пару выходных дней. Но потом появились инструменты наподобие Squarespace, позволившие владельцам пиццерий и фриланс-художникам создавать собственные веб-сайты при помощи мыши. А у профессиональных кодеров пропала ниша высокооплачиваемой, относительно непыльной работы.
Сообщество программистов отреагировало на подобный прогресс просто: да, нам нужно продолжать развивать свои навыки. Изучать сложные, непонятные вещи. Разработчики ПО любят автоматизацию. Неизбежно лучшие из них создадут инструменты, из-за которых работа других окажется устаревшей. Именно поэтому о нас так заботились: код имеет непосредственную ценность. Один программный продукт может повлиять на работу миллионов людей. Естественно, иногда он заменяет и самих программистов. Мы воспринимали это развитие, как надвигающийся прибой, лижущий наши голые ступни. Если мы продолжим учиться, то не промокнем до нитки. Это разумное поведение… пока не случится цунами.
Когда нам впервые разрешили использовать в работе чат-ботов для помощи в кодинге, я старательно их избегал. И ожидал, что так будут поступать и коллеги. Но вскоре, идя к своему столу, я начал наблюдать на экранах программистов характерный паттерн вопросов и ответов чат-ботов, напоминающий рисунок на шкуре зебры. Чаще всего коллеги говорили, что эти инструменты повышают их продуктивность. Иногда они позволяли решать задачи в десять раз быстрее.
Я не был уверен, хочу ли я этого. Мне нравится процесс программирования и я люблю ощущать себя полезным. Знакомые мне инструменты, например, текстовый редактор, в котором я форматирую и просматриваю код, удовлетворяют обеим потребностям. Они улучшают мою практику в своём ремесле и, хотя позволяют выполнять работу быстрее, я всё равно ощущаю, что заслуживаю выказываемого мне уважения. Но ИИ в том виде, как его описывали, казался иным. От него было слишком много пользы. Я волновался, что он украдёт у меня и радость работы над головоломками, и удовлетворение от того, что их решаю именно я. Можно быть бесконечно продуктивным, и для этого необходимо лишь показывать сами продукты.
Реальный продукт труда большинства программистов редко восхищает. На самом деле, обычно он почти комически скучен. Несколько месяцев назад я вернулся домой с работы и рассказал жене, какой замечательный был день — я боролся с особенно интересной задачей. Я работал над программой, генерирующей таблицу, и кто-то захотел, чтобы к ней добавили заголовок, растянутый на несколько столбцов, а написанный нами движок создания структуры документов такой возможности не поддерживал. Работа была срочной: эти таблицы использовались в важных документах, которые нужны важным людям. Я на полдня заперся в кабинете. В задаче было множество любопытных подзадач: как позволить пользователям движка сообщать, что заголовок должен растянуться на несколько столбцов? Как должен выглядеть их код? И ещё были мелкие детали; если на них не обратить внимание, они вызовут баги. Например, что, если один из столбцов, на который растянут заголовок, удаляется, потому что не содержит данных? Я знал, что это хороший день, потому что мне пришлось достать ручку и блокнот — я рисовал возможные сценарии, проверяя и перепроверяя свою логику.
Но что происходило в этот день, если взять общую картину? У таблицы появился новый заголовок. Сложно представить что-то более обыденное. Для меня всё удовольствие заключалось в процессе, а не в результате. А во что бы превратился процесс, если бы не требовал ничего, кроме трёхминутного общения с ChatGPT? Да, работа программиста включает в себя многое другое наряду с написанием кода, например, менторство джунов и высокоуровневое проектирование систем. Но кодинг всегда был её фундаментом. В течение всей своей карьеры меня собеседовали и нанимали именно благодаря моей способности решать хитрые маленькие программные головоломки. И тут внезапно это умение стало чуть менее важным.
Я многое узнал от Бена, который не переставал рассказывать о потрясающих успехах, которых он добился благодаря GPT-4. Оказалось, что он хорош не только с мелкими задачами, но и обладает качествами сеньор-разработчика: из глубокого колодца знаний он мог черпать и рекомендовать способы решения задач. Для одного из проектов Бен вставил маленький динамик и красный светодиод в рамку с портретом короля Чарльза; лампочка заменяла один из драгоценных камней в его короне; идея заключалась в том, что когда вводишь сообщение на веб-сайте, динамик воспроизводит мелодию, а светодиод мерцает, передавая сообщение морзянкой. (Это был подарок для эксцентричного иммигранта из Британии.) Бену не удавалось запрограммировать устройство на получение новых сообщений; казалось, что для этого нужны специализированные знания не только по выбранному микроконтроллеру, но и по Firebase — серверной бэкенд-технологии, хранившей сообщения. Бен спросил совета у меня, и я предложил несколько возможных решений; на самом деле, я не был уверен, возможно ли сделать задуманное им. Тогда он спросил у GPT-4. Бот сказал Бену, что у Firebase есть функциональность, которая сильно упростит проект. Она такая-то, а вот код, который будет совместим с микроконтроллером.
Опасаясь использовать GPT-4 самостоятельно, и ощущая что-то грязное в перспективе платить за него двадцать долларов в месяц компании OpenAI, я, тем не менее, начал пробовать его возможности с аккаунта Бена. Мы вместе работали над кроссвордным проектом, и я мог спросить: «Почему бы не сформулировать промт вот так?». Бен передавал мне клавиатуру. «Нет, давай уж ты рули», — отвечал я ему. Вместе мы постепенно разобрались в возможностях ИИ. Бен, у которого было с ним больше опыта, похоже, мог извлечь из него за раз больше пользы. Позже он сказал, что его нейронная сеть начала синхронизироваться с нейросетью GPT-4. Я сказал, что он достиг механической симпатии. Однажды он добился от ИИ, чтобы тот написал для него игру «змейка», типа тех, что были на старых телефонах Nokia. Но потом, после краткой беседы GPT-4, он заставил того изменить игру так, чтобы при проигрыше она показывала, насколько далеко игрок отошёл от самого эффективного маршрута. На это боту понадобилось примерно десять секунд. Честно говоря, я не уверен, справился ли бы я сам с такой задачей.
В шахматах, где уже десятки лет доминирует ИИ, единственная надежда игрока — совместная работа с ботом. Такие наполовину человеческие, наполовину компьютерные команды, называемые кентаврами, возможно, всё ещё способны победить лучших живых игроков и лучшие ИИ-движки, работающие по отдельности. Программирование ещё не прошло путь шахмат, но кентавры уже появились. На данный момент сам по себе GPT-4 программирует хуже, чем я, а Бен намного хуже него. Но Бен плюс GPT-4 — это уже опасное сочетание.
Очень скоро я сдался. Я работал над небольшим поисковым инструментом, который должен был выделять те части пользовательского запроса, которые соответствовали результатам. Однако я разделял запрос по словам таким образом, что это сильно всё усложняло. У меня начало заканчиваться терпение. Я начал думать о GPT-4. Возможно, вместо того, чтобы тратить полдня на программирование, мне стоит немного пообщаться с ИИ?
В эссе 1978 года «О глупости программирования на естественном языке» Эдсгер Дейкстра заявил, что если бы мы отдавали приказы компьютерам не на специализированном языке наподобие C++ или Python, а на своём родном языке, то мы бы отказались от той самой точности, которая делает компьютеры полезными. Он писал, что формальные языки программирования — это «потрясающе эффективный инструмент для исключения всевозможной чуши, которой практически невозможно избежать при общении на естественном языке». Заявление Дейкстры стало в кругах программистов прописной истиной. Когда это эссе всплыло на Reddit в 2014 году, в самом популярном комментарии было написано: «Не знаю, что должно пугать больше: то, насколько тривиально очевидна эта идея, или то, что многие этого по-прежнему не знают».
Когда я начал пользоваться GPT-4, то понимал, о чём говорит Дейкстра. Невозможно просто сказать ИИ: «Реши мою задачу». Возможно, такой день настанет, но пока он больше похож на инструмент, на котором нужно научиться играть. Нужно тщательно формулировать, чего вы хотите, как будто общаетесь с новичком. При решении задачи с выделением слов в запросе оказалось, что я прошу у GPT-4 за раз слишком многого, вижу, как он терпит поражение, а потом начинаю всё снова. Каждый раз мои промты становились всё менее амбициозными. К концу общения я не говорил о поиске или выделении; я разбил задачу на чёткие, абстрактные, недвусмысленные подзадачи, которые совместно дали бы мне необходимое.
Нащупав уровень ИИ, я почти сразу же понял, что мой рабочий процесс преобразовался. Теперь я везде видел гвозди, которые можно было забить молотком GPT-4; я наконец понял, почему на экранах мониторов в офисе постоянно висели сессии чатов и как Бену удалось стать столь продуктивным. Я открыл в себе готовность пытаться использовать чат-бота чаще.
Я вернулся к проекту с кроссвордами. Наш генератор кроссвордов выводил результат в некрасивом текстовом формате; строки выглядели примерно так:
"s""c""a""r""*""k""u""n""i""s""*" "a""r""e""a". I
Я хотел превратить вывод в красивую веб-страницу, которая бы позволила мне изучать слова в сетке, сразу же показывая информацию о рейтинге. Но я знал, что эта задача будет сложной: каждую букву нужно было пометить словами, к которым она относилась, как по вертикали, так и по горизонтали. Это была задача с кучей нюансов, на решение которой запросто могла уйти добрая часть вечера. После рождения ребёнка свободных вечеров у меня станет маловато, поэтому я начал общение с GPT-4. Потребовалось несколько уточняющих вопросов и ответов; один раз мне пришлось прочитать несколько строк кода, чтобы понять, что он делает. Но мне мало пришлось размышлять о том, что, как мне раньше казалось, составляет кодинг. Я не думал о числах, шаблонах или циклах; я не имитировал в
Возможно, Ли Седоля заставило уйти из го ощущение, что игра навсегда стала «дешёвой». Когда я начал заниматься программированием, это было вызвано тем, что компьютеры походили на магию. Машина давала тебе мощь, но требовала от тебя изучения своих тайн — языка заклинаний. Для этого требовался определённый склад ума. Я ощущал себя избранным. Я посвящал своё время монотонному, тщательному продумыванию и накоплению тайных знаний. Но однажды стало возможным достичь почти всего этого без размышлений и без знания. В каком-то смысле, из-за этого чей-то труд стал походить на пустую трату времени.
Но когда я думаю о Седоле, то вспоминаю шахматы. После того, как машины завоевали эту игру примерно тридцать лет назад, люди боялись, что в неё больше не будет смысла играть. Однако шахматы никогда не были столь популярны, как сейчас — ИИ вдохнул в игру новую жизнь. Недавно ею увлёкся мой друг. У него есть постоянный доступ к ИИ-тренеру, который может выдавать ему шахматные задачки как раз на грани его умений, а после того, как тот проиграет, в точности рассказать о том, где он ошибся. Тем временем, на самых высоких уровнях гроссмейстеры изучают предлагаемые компьютером ходы, как будто читают скрижали богов. Обучение шахматам никогда не было столь простым; изучение их глубочайших секретов никогда не было более восхитительным.
Компьютеры пока не победили. Возможности GPT-4 впечатляют, но дилетанты не могут управлять ими так, как это сделает программист. Я по-прежнему спокоен за свою профессию. На самом деле, я даже спокойнее, чем раньше. Программы становится легче писать, поэтому они множатся; задача программистов будет заключаться в их проектировании, конфигурировании и поддержке. И хотя я всегда считал хитрые части программирования самыми успокаивающими и самыми важными, я не был особенно хорош в них. Я провалил множество классических кодинг-собеседований, которые проводят в компаниях Big Tech. Относительно хорош я в понимании того, что стоит создавать, что нравится пользователям, как общаться и с технарями, и с гуманитариями. Мой друг назвал этот момент в развитии ИИ «местью посредственного программиста». Если сам по себе кодинг станет менее важным, то, возможно, на первое место выйдут софт-навыки.
Но всё равно остаётся открытым вопрос о том, чему же учить моего нерождённого пока ребёнка. Подозреваю, что когда мой ребёнок повзрослеет, мы будем думать о «программистах» так же, как сейчас думают о «компьютерах» (computer) — раньше этим словом называли человека, вручную выполняющего вычисления. Программирование вручную на C++ или Python рано или поздно может стать столь же смехотворным занятием, как вбивание двоичного кода на перфокартах. Дейкстра был бы в ужасе, но, возможно, чтобы в будущем компьютер сделал то, что тебе нужно, придётся его вежливо просить об этом.
Так что, вероятно, следует учить не навыку, а духу. Иногда я думаю, чем бы мог заниматься, если бы родился в другую эпоху. Вероятно, «кодеры» времён развития сельского хозяйства экспериментировали с водяными колёсами и селекцией сортов; в ньютоновскую эру они могли быть одержимы стеклом, красителями и точным учётом времени. Недавно я читал историю нейросетей и меня поразило, что многие интервьюируемые люди (родившиеся примерно в 1930-х) в детстве игрались с радиоприёмниками. Возможно, следующее поколение будет по вечерам копаться во внутренностях ИИ, который их родители когда-то считали «чёрным ящиком». Мне не стоит волноваться, что эпоха кодинга угасает. Хакинг — это навсегда.
Автор:
ru_vds