
Полная версия
Гуманитарий.exe
Если посмотреть на него глазами эзотерика, сходство с гримуаром было практически идеальным. Перед тобой книга, разбитая на отдельные блоки: вписываешь формулу, запускаешь и наблюдаешь результат. Получились цифры — заклинание сработало. Появилась таблица — вообще прекрасно. Ошибка — значит, где-то нарушена рецептура. В таком формате программирование меня вполне устраивало: не требовалось сразу охватывать взглядом огромную программу, можно было двигаться небольшими фрагментами и проверять каждый следующий шаг.
Правда, у гримуара довольно быстро обнаружился характер. Ячейки совсем не обязательно было запускать сверху вниз. Никто не мешал сначала выполнить третью, потом первую, что-нибудь исправить во второй и снова вернуться к третьей. После нескольких таких манипуляций возникала особая реальность, устройство которой было известно только мне, Jupyter Notebook и высшим силам.
Переменная, которая секунду назад прекрасно существовала, после перезапуска могла внезапно исчезнуть. Что-нибудь исправленное продолжало жить в памяти в прежнем состоянии, а код, который только что работал, после совершенно невинного действия начинал выдавать ошибку. Jupyter ничего не объяснял. Он просто смотрел на меня белыми ячейками своего гримуара и предлагал самой вспомнить, какие заклинания я уже сегодня произносила и в какой последовательности.
Приходилось восстанавливать хронологию. Для регрессолога задача, в общем-то, профильная.

Первый всадник оказался не таким страшным, как выглядел из-за дверей Корпорации ZLA, поэтому ко второй двери я подошла уже несколько увереннее. Как выяснилось, совершенно напрасно.
Всадник второй. VS Code, или Визуальная пыточная
Поначалу я воспринимала VS Code просто как ещё одно место, где пишут программы. В Colab я писала Python, в Jupyter писала Python, следовательно, и здесь предполагалось заниматься примерно тем же самым.
Формально так оно и было. Только почему-то вокруг самого Python внезапно возник целый мир из файлов, папок, расширений, интерпретаторов, терминала, каких-то путей, команд и окружений. Я открывала VS Code с одной простой целью — написать код, — а он выглядел так, будто перед началом работы мне следовало получить ещё одну профессию.
Особого очарования происходящему добавляла тёмная тема. Как эзотерик я привыкла бережно относиться к пространству, но пространство VS Code сразу обозначило границы: здесь правила устанавливаю не я. Экран превратился в филиал астральной ночи, по которому разноцветными символами полз код. Выглядело всё это очень красиво, технологично и профессионально. Последнее обстоятельство несколько осложняло ситуацию, поскольку профессионалом в комнате явно был только VS Code.
К тому же он обладал совершенно невыносимым синдромом гиперопеки. Стоило начать что-нибудь писать, как редактор принимался подчёркивать, подсвечивать и всячески намекать, что происходящее ему не нравится. Иногда я ещё не успевала закончить строку, а красная волнистая линия уже сообщала о грядущей катастрофе. В моей системе координат это выглядело как мгновенная карма: ты ещё не успела полноценно нагрешить против синтаксиса, а воздаяние уже наступило.
Но довольно скоро выяснилось, что красные подчёркивания — наименьшая из моих проблем. Где-то среди файлов, терминалов и команд появилось новое слово — Git. Почти одновременно рядом возник GitHub, и я совершенно искренне решила, что это примерно одно и то же. Ну Git. Ну GitHub. Второе просто звучало как полное имя первого. Саша и Александр.
Я ещё не знала, что Корпорация ZLA только что приготовила мне один из самых неприятных сюрпризов за всё время обучения.

Всадник третий. GitHub, или Хроники Акаши для кода
Git и GitHub оказались не одним и тем же. Вообще.
Git был системой контроля версий, GitHub — сервисом, где можно хранить репозитории и работать с ними. Саша и Александр внезапно оказались двумя совершенно разными людьми, причём один из них ещё и жил где-то в облаке.
Казалось бы, после этого должно было стать понятнее. Но объяснение породило только новые вопросы. Что такое репозиторий? Как его клонировать и зачем?Зачем мне система контроля версий? Почему недостаточно просто сохранить файл? Откуда тут ветки если не видно дерева? Почему для того, чтобы этот файл куда-то отправить, я должна открыть терминал и что-то ему приказать? Что именно я сейчас сохраняю? Куда оно отправляется? И главное — почему нельзя было оставить всё как в Colab?
Чем больше я пыталась разобраться, тем больше появлялось новых сущностей, каждая из которых требовала предварительно понять предыдущую. Git объясняли через понятия, которых я тоже не знала. Я искала значение этих понятий и получала определения, в которых обнаруживались следующие. Это напоминало словарь, где значение каждого незнакомого слова объясняется исключительно при помощи других незнакомых слов.
В какой-то момент я сидела перед экраном и рыдала. Не образно и не для драматического эффекта — по-настоящему!
До этого обучение уже не раз ставило меня в тупик, но почти всегда оставалась возможность за что-нибудь зацепиться. Непонятное слово можно было перевести на знакомый язык, придумать ассоциацию, встроить его в Корпорацию ZLA и хотя бы таким способом удержать в голове. Условия превращались в претензионный отдел, *args становился багажом души, **kwargs — Родовой системой. Даже Jupyter без особого сопротивления согласился на роль гримуара.
С Git ничего подобного не происходило. Я действительно не понимала, что делаю, зачем это делаю и каким образом Git, GitHub, терминал, репозиторий и VS Code связаны с тем Python, который ещё недавно вполне мирно существовал у меня в ячейках Colab. Особенно тяжёлым было ощущение, будто все остальные понимают какую-то очевидную вещь, которая по неизвестной причине недоступна только мне.

Но нижние этажи Корпорации ZLA не предусматривали кнопку «Я гуманитарий, выпустите меня отсюда», поэтому разбираться всё равно пришлось.
В конце концов я запросила отдельную консультацию с куратором. Мы созвонились в Zoom и почти час пытались привести в порядок то, что происходило у меня с Git и GitHub.
Я рассчитывала, что после этого разговора станет легче. Произошло ровно наоборот.
В какой-то момент понадобилось удалить созданный мной тестовый репозиторий, и тут неожиданно выяснилось, что куратор тоже не знает, как это сделать.
Я смотрела на экран и думала только об одном: если куратор не знает, то как это должна узнать я?
И вот тут меня окончательно накрыло.
Все эти недели я исходила из простой идеи: я чего-то не понимаю, потому что только учусь. Где-то существует понятная система, существуют люди, которые в ней разбираются, а моя задача — постепенно пройти путь от первого состояния ко второму. Но за этот час моя и без того шаткая конструкция рухнула. Оказалось, что можно учиться, разбираться, работать с этими инструментами — и всё равно иногда не знать, куда нажать и что делать дальше.
Я разрыдалась и решила бросить учёбу. Серьёзно.
Без драматического «я больше никогда не открою Python» и торжественного удаления программ с компьютера. Просто в какой-то момент мне стало очевидно, что эксперимент закончился. Я попробовала войти в IT, дошла до нижних этажей Корпорации ZLA и обнаружила, что мне там слишком тяжело. И создание простого бота - это совсем не просто!
Ну, попробовала. Не получилось. Так бывает. Живём дальше.
Зачем мучить себя и окружающих?!
Я отказалась от стажировки и убрала всё, что было связано с учёбой, подальше с глаз.
И почти одновременно с этим изменения начались уже в моей обычной, гуманитарной жизни: на работе произошло сокращение. В другой момент эта новость, вероятно, стала бы ещё одной причиной для паники, но тогда я восприняла её как знак судьбы.
Всё складывалось слишком последовательно. Сначала я признала, что программирование, возможно, было не моей дорогой. Потом исчезла работа, которая до этого оставалась привычной частью жизни.
Значит, пора было перестать ломиться в двери Корпорации ZLA, отпустить коллег, свои обязанности и искать новую работу.
На этом моё путешествие в IT должно было закончиться...

Спойлер: продолжение в следующей главе будет)

