Гуманитарий.exe
Гуманитарий.exe

Полная версия

Гуманитарий.exe

Настройки чтения
Размер шрифта
Высота строк
Поля

Элина Третьякова

Гуманитарий.exe

Глава 1

Глава 1. Всё началось довольно невинно

Всё началось довольно невинно.

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

А потом я открыла Claude.

Не помню уже, что именно спросила в первый раз. Наверняка ничего судьбоносного. Скорее всего, это был обычный вопрос, который раньше я без раздумий отправила бы в поисковик. Но вместо списка ссылок получила ответ. Задала следующий вопрос — получила следующий. Уточнила, возразила, попросила объяснить иначе — и постепенно обнаружила, что уже не проверяю возможности новой игрушки, а разговариваю.

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

Кажется, тогда я впервые поняла, насколько опасно давать гуманитарию технологию, которая умеет поддерживать разговор.

Я чуть было не влюбилась.



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

До программирования в тот момент было ещё далеко.

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

Словосочетание «всего лишь» я теперь вспоминаю с некоторой нежностью.

Со стороны задача выглядела вполне безобидно. Telegram-ботов вокруг было полно. Они присылали сообщения, принимали команды, публиковали посты, отвечали пользователям. Очевидно же, что кто-то их делает. Значит, где-нибудь должна существовать инструкция, по которой один такой бот собирается.

Я нашла инструкцию.

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

Не ожила.

Вместо результата я получила ошибку.

Я перечитала сообщение. Потом инструкцию. Вернулась на несколько пунктов назад, всё проверила и повторила попытку. Ошибка осталась.

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

Я полезла искать причину и почти сразу столкнулась с первым словом, которое раньше встречала разве что мельком: API. Ладно. Что такое API?

Открыла новую вкладку. Через несколько минут рядом с API появился API key, потом token, request и endpoint. Я переходила из одной вкладки в другую, пытаясь собрать из этих понятий хоть какую-нибудь связную картину.

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

Особенно впечатлил endpoint — «конечная точка». Я перечитала объяснение и подумала, что конечная точка сейчас нужна в первую очередь мне самой.



На столе остывал кофе. В браузере множились вкладки. В одной объясняли API, в другой спорили про токены, в третьей кто-то на форуме советовал проверить заголовки запроса. Я честно пыталась разобраться, но попытка вернуться к первоначальной задаче показала, что бот за время моего интеллектуального путешествия работать сам по себе почему-то не начал.

Я откинулась на спинку кресла и посмотрела на экран. Вообще-то мне нужен был всего лишь небольшой и удобный Telegram-бот-помощник. Я не собиралась запускать спутник, строить ракету или изобретать новый интернет. Мне хотелось, чтобы бот выполнял несколько полезных действий, а вместо этого я уже довольно долго выясняла, что такое API и куда отправляется request.

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

Там был открыт Claude.

Несколько секунд я просто смотрела на экран, а потом до меня дошло.

— Стоп. У меня же есть Claude.

Я вернулась в чат и описала задачу. Рассказала, что хочу сделать Telegram-бота-помощника, объяснила, что он должен уметь, и честно призналась, что совершенно не понимаю, как всё это собрать.

Claude начал объяснять, и ситуация перестала выглядеть безнадёжной. Я могла остановиться на любом месте, переспросить, попросить объяснить проще, уточнить, зачем нужен конкретный шаг. Вместо десятка вкладок у меня снова появился один собеседник и одна задача.

А потом Claude написал код.

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

Я прокрутила код вниз, потом обратно вверх. Он выглядел убедительно. Это было всё, что я могла сказать о нём с уверенностью. Если бы в тот момент кто-нибудь спросил меня, хороший ли это код, я, наверное, оценила бы его исключительно эстетически: строчки аккуратные, отступы ровные, скобки вроде на месте.

Значит, оставалась сущая мелочь — запустить.

И тут выяснилось, что между «у меня есть код» и «у меня работает бот» располагается довольно значительная территория. Коду требовалось место, где он будет выполняться. Что-то нужно было установить, что-то настроить, что-то подключить. Потом снова появился API, понадобился ключ, и выяснилось, что его надо куда-то правильно поместить.

Я шла за Claude практически вслепую: он писал, что нужно сделать, я делала. Наконец наступил момент запуска. Я нажала — и получила ошибку.

Теперь хотя бы было понятно, кому её нести. Я скопировала сообщение и отправила Claude. Он объяснил причину и предложил исправление. Я исправила, запустила снова и получила новую ошибку. Скопировала её, получила новый ответ, снова исправила. Через некоторое время процесс приобрёл устойчивый ритм: я запускала код, получала ошибку, несла её Claude, возвращалась с исправлением и через пару минут приносила следующую. Это уже начинало напоминать не разработку бота, а странную эстафету.

Я посмотрела на часы, потом на ноутбук и обнаружила, что вечер каким-то образом успел закончиться. На экране оставался код, который я не умела читать. Рядом был чат с длинной историей наших попыток, а в браузере теснились вкладки с документацией и форумами. Бот всё ещё не работал. Зато теперь я знала, что существуют API, токены, запросы и endpoint. Не понимала толком ни одного из них, но знала. Тоже результат.

В голове возникла очень точная характеристика моего состояния:

humanitarian.exe — not responding

Я закрыла глаза и решила, что на сегодня достаточно.

Телефон подал сигнал. На экране появилось уведомление: «4-я Битва роботов в России». Я прочитала и уже собиралась убрать телефон, когда взгляд зацепился за цифру. Четвёртая. Я вернулась к уведомлению и перечитала ещё раз.

— Четвёртая?!



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

Я открыла информацию о соревновании, потом ещё одну страницу. Роботы были настоящими. Команды — тоже. Машины строили, готовили к боям, привозили на соревнования. Всё это не выглядело как анонс далёкого будущего.

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

Мысль оказалась настолько простой, что я даже удивилась, почему не замечала этого раньше: будущее уже наступило. То самое будущее, которое когда-то представлялось чем-то далёким и почти фантастическим, давно стало обыкновенным настоящим. Пока я воспринимала нейросети и роботов как отдельные любопытные новости технологического мира, где-то уже успели провести три Битвы роботов и готовились к четвёртой. А на моём ноутбуке лежал код Telegram-бота, который ещё утром в моей жизни вообще не существовал.

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

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

Так началась история, к которой я совершенно не готовилась.



Где-то внутри системы запустился новый процесс.

Глава 2

Глава 2. Муки гуманитарного мозга

Решение разобраться в программировании было принято. Оставалось выяснить сущую мелочь: с чего вообще начинают люди, которые решили разобраться в программировании. Видимо, с обучения.

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

В конце концов ответ нашёлся — обучение промпт-инжинирингу на базе Python.



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

Я вроде в IT пришла, а не в зоологию.

Но потом я узнала про Anaconda, и пазл сложился: рептилоиды всё-таки захватили мир. Ну, по крайней мере, IT — точно.



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

Когда они встретились мне в домашнем задании, я честно написала в ответе:

«Не осилю логарифмы, но могу рассчитать вашу натальную карту. Как вы на это смотрите?»

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

Впрочем, довольно скоро выяснилось, что забытая школьная математика — далеко не главная проблема. Гораздо интереснее было то, как программирование называло совершенно обычные, на первый взгляд, вещи.

Например, операторы.

До знакомства с Python при слове «оператор» я представляла человека. Оператора кол-центра, технической поддержки — кого-нибудь, кто сидит по ту сторону линии, получает запрос и даёт ответ. В программировании оператор выполняет действие, только вместо живого сотрудника передо мной — символ. Причём речь шла о банальных математических символах: сложении (+), вычитании (-), делении (/), умножении (*). А мой мозг упорно не хотел запоминать, что теперь это операторы.

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

В принципе, почему бы и нет. Техподдержка — так и запомню.

Потом выяснилось, что помимо обычных операторов существуют условные:

ifelifelse

Здесь техническая поддержка окончательно обзавелась претензионным отделом. if — если выполняется определённое условие, действуем так. elif — если первое условие не подошло, проверяем другое. else — если не подошло вообще ничего, остаётся последний предусмотренный вариант.

Постепенно мой гуманитарный мозг придумал для себя отдельную вселенную, в которой существовала Корпорация ZLA — со своими сотрудниками, отделами, правилами и, разумеется, претензионным отделом.

Не, ну а как это всё запомнить?!



Чем дальше я продвигалась, тем больше сотрудников появлялось в этой вымышленной корпорации. Следом пришли структуры данных: списки, кортежи, множества и словари. Списки ещё звучали вполне мирно. Словари тоже сначала обнадёжили — всё-таки это слово было мне хорошо знакомо. Орфографический, толковый, орфоэпический... Наконец-то хоть что-то из моего мира.

В Python словарь оказался структурой данных, построенной по принципу «ключ — значение». И здесь неожиданно обнаружилось некоторое сходство с привычным словарём: есть ключ, по которому можно получить соответствующее ему значение. Правда, дальше начинался целый набор нюансов, но это уже была отдельная история.

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

Но структуры данных были ещё не концом. У Python имелись различные типы данных, а вместе с ними появилась следующая проблема: английский.

С английским у меня отношения исторически не сложились. В своё время я выбрала французский, поэтому теперь смотрела на int, float, str и bool и снова пыталась хоть за что-нибудь зацепиться.

Боже, спасибо, что ты создал меня гуманитарием: я хотя бы прокачала свой мозг на смекалку, и теперь она помогает мне во всём!

Поэтому появилось вот что:

int — целые числа. Почему-то напоминало интегралы, хотя всё оказалось гораздо проще.

float — числа с плавающей точкой. «Флоатинг» — явно что-то про плавание.

str — строка. Здесь всё было относительно понятно, пока рядом не появилось полное string. Потому что строка не может быть стрингами! Хотя... если подумать, они тоже сшиты из полосочек.

А bool, логический тип данных, упрямо ассоциировался у меня с буллингом.

Корпорация ZLA явно знала, что делала, когда придумывала названия, но она не знала, что приду я!



Самое смешное, что постепенно вся эта система действительно начала становиться понятнее исключительно за счёт моих ассоциаций. Ну, во всяком случае, для меня.

Я не пыталась заставить свой мозг воспринимать незнакомые слова как-то иначе только потому, что теперь занималась программированием. Я делала то, что умела всегда: переводила незнакомое на знакомый мне язык.

Оператор становился техподдержкой. Условные операторы отправлялись в претензионный отдел. Словарь раскладывался на ключ и значение. Python оставался змеёй, Anaconda — ещё одной змеёй, а всё вместе прекрасно существовало внутри Корпорации ZLA.

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

И, кажется, это понемногу получалось.

Глава 3

Глава 3. Задача со звёздочками

Прошло несколько месяцев.

К этому моменту я уже успела обнаружить одну интересную особенность своего гуманитарного мозга: технические объяснения он воспринимал далеко не всегда, зато стоило найти для очередного программного понятия аналогию из знакомого мне мира — и всё внезапно вставало на свои места.

Именно так произошло с *args и **kwargs.

На языке Python объяснение звучало вполне определённо: *args представляет неопределённое количество параметров, которые передаются по позиции, а **kwargs — параметры, которые передаются по имени и обозначают аргументы ключевого слова.

Я прочитала это несколько раз.

И тут мой мозг сделал то, что умел лучше всего: покинул программирование.

Я всё-таки не просто гуманитарий, а регрессолог и эзотерик, поэтому где-то между одной и двумя звёздочками меня внезапно осенило.

*args — это воплощение души.

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

Вот тебе и *args.

А **kwargs — Родовая система.

Тут всё строго: у каждого есть своё имя, своя роль и своя программа. Значение приходит вместе с ключом, по которому можно определить, что именно перед тобой.

Вот тебе и **kwargs.

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

И всё стало понятно.



Возможно, создатели Python объяснили бы всё это несколько иначе.

Но создателей Python рядом не было, а мне нужно было как-то запомнить разницу между одной и двумя звёздочками.

Моя система работала. Следовательно, имела право на существование.

Оставалась только одна проблема: рано или поздно наступит зачёт, на котором вряд ли оценят оригинальность моей системы координат.

Я вполне представляла себе этот разговор. Меня спрашивают о позиционных аргументах — я начинаю рассказывать о багаже души и прошлых воплощениях. Переходим к **kwargs — на сцене появляется Род. Или ещё смешнее, когда речь зайдёт о стрингах и буллинге.

Где-то на этом месте преподаватель, вероятно, начинает сомневаться, тот ли зачёт он сегодня принимает.

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



В конце концов я решила выяснить этот вопрос заранее и написала куратору. Рассказала про свои ассоциации, а заодно спросила о том, что беспокоило меня гораздо больше: как я с такими способами запоминания вообще буду сдавать зачёт по Python?

Ответ пришёл совершенно неожиданный.

Зачёта по Python не будет.

Это была прекрасная новость ровно до следующего предложения.

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



Вот тут мне стало по-настоящему страшно.

До сих пор Корпорация ZLA была довольно безобидным местом. Да, её сотрудники разговаривали на странном языке, в претензионном отделе хозяйничали if, elif и else, а где-то по кабинетам бродили стринги с буллингом, но со всеми ними постепенно удавалось договориться.

Теперь выяснилось, что у Корпорации есть Босс.

Итоговый проект.

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

И самое неприятное заключалось в том, что для встречи с Боссом недостаточно было выучить несколько заклинаний на Python.

Где-то в нижних этажах Корпорации существовал совсем другой мир.

Там обитали сущности, названия которых я уже встречала, но предпочитала лишний раз не произносить:

VS Code.

Jupyter Notebook.

GitHub.

До сих пор они мелькали где-то на периферии обучения — в инструкциях, чужих экранах, названиях программ и непонятных рекомендациях. Теперь становилось ясно: рано или поздно мне придётся спуститься туда самой.

До защиты оставалось ещё довольно много времени, поэтому формально паниковать было рано.

Формально.

Мой гуманитарный мозг тем временем уже стоял перед дверями нижних этажей Корпорации ZLA и с тоской пытался понять, какой из известных ему магических ритуалов помогает создать IT-проект с нуля.

Такого в моей практике ещё не было.



Вход только для тех, кто готов продать душу за работающий скрипт.

Продолжение в следующей главе...

Конец ознакомительного фрагмента
Купить и скачать всю книгу