bannerbannerbanner
Название книги:

Алгоритм Чагина

Автор:
Кеша Захаренков
Алгоритм Чагина

000

ОтложитьЧитал

Шрифт:
-100%+

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

ЧАСТЬ 0. ЗАДАЧА ОСОБОГО РОДА

0.0. Погружение

0.0.0. Инициализация

Аморальное предложение Вышинский сделал мне в среду, ровно в десять тридцать одну.

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

– Помнишь, ты про курсы говорил? – выпалил он. – Прошел их?

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

Прежде чем ответить, я кинул рюкзак под стол. Сел за компьютер. Вытянул ноги. И даже придвинул к себе клавиатуру со стершимися буквами. Более того, ладонью стер с нее пыль. Все это время я соображал, как быстро и убедительно отделаться от поручений директора.

– Курсы? – наконец спросил я.

– По нейросетям, – уточнил он.

Да. Про курсы по нейросетям я рассказывал на последнем корпоративе. И, помнится, громко хвастался, что их окончил.

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

Вышинский жест проигнорировал.

– Какие-нибудь еще достижения, успехи в этой области есть? – спросил он.

– В области нейросетей?

Мне нужно было ответить, что нет, достижений нет. Но я не доверился интуиции и промямлил что-то вроде:

– Ну, я в соревновании участвовал.

– И как? – тут же спросил директор.

– Соревнование? Вошел в десятку.

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

– Из скольки?

– Человек пятьсот было, – ляпнул я, но, увидев радостный блеск в его глазах, спохватился. – Может, четыреста. Триста. Я не знаю.

– Из разных точек мира?

– Из России, – соврал я. Но было уже поздно.

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

– Пойдем, – сказал он.

Директор привел меня в маленькое глухое помещение, переговорную. Только я вошел, запер дверь на ключ. Затем жестом предложил сесть за стол, а сам занял кресло напротив.

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

Что бы ни сказал мой без двух недель бывший директор, меня это не интересовало. Я думал о собственном проекте. Увольняясь из компании Вышинского, я надеялся запустить стартап. И все, что меня волновало, это новые задачи на новом месте.

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

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

– Ты знаешь, что я инвестирую? – спросил он и уставился на меня. – Вкладываю деньги в стартапы.

Готовый возражать любому его слову, я открыл было рот. Но тут же его закрыл. Такого я не ожидал. Инвестиции? В стартапы?

– Тебе же нужны деньги? – спросил директор.

Я очнулся. Неожиданно для самого себя расплылся в улыбке.

– Да. Конечно. Деньги? Да! Деньги нужны.

Он кивнул и продолжил:

– Тогда они будут.

Я вгляделся в Вышинского, стараясь понять, шутит он или всерьез. Но его лицо ничего не выражало. Директор плотно сжал губы и ждал.

– О! – сказал я. – Здорово! Спасибо.

Вышинский кивнул.

Я рассмеялся. Потом смутился. На его вопросительный взгляд ответил:

– Думал, так легко инвестора не найду.

Вышинский снова кивнул.

– Правда, спасибо, – продолжил я, все еще пребывая в восторге. – Найти деньги на этом этапе… Когда ничего нет…

– Уверен, что свою прибыль получу, – сказал он.

Слова были брошены резко и нетерпеливо. И я понял, что Вышинский до сих пор не задал ни одного вопроса о моем стартапе. Проект его как будто не интересовал. Директор словно отмахивался и от моих восторгов, и от моей благодарности, и ждал, когда мы приступим к более серьезному разговору.

– И ничего не спросишь? – пришел я в себя. – Какая у меня бизнес-идея? Какой стартап?

– Я не вкладываю в идеи. Я вкладываю в людей, – он повернул кисти рук ладонями вверх и задумчиво посмотрел на них. – Кстати об этом. Пока ты не уволился, мне нужна помощь.

Вот все и прояснилось.

– Какая? – упавшим голосом спросил я.

– Неофициальная, – произнес директор.

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

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

– То есть в резюме я это не смогу указать? – пошутил я.

Вышинский не обратил на мой вопрос внимания. Он решил не снижать темпа. Заверил, что работа сложная и интересная. Совсем такая, какую я заслуживаю.

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

Секундная стрелка завершила оборот и словно замерла на месте, когда директор резко наклонился ко мне – так, что его кресло скрипнуло – и сказал:

– У меня есть код, нужно его расшифровать.

Часы показали ровно десять тридцать одну. Секундная стрелка ошарашенно стояла на месте.

Пару раз она нервно дернулась, но все же пошла на новый круг. А я продолжал смотреть на циферблат, не смея поднять глаза на Вышинского.

Расшифровать чей-то код. Работа неофициальная. Это вообще законно?

– Зачем? – тупо спросил я. Зачем расшифровывать код.

– Чтобы понять, что он делает.

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

– А запустить программу нельзя?

– Можно, но код не дописан, – тут же ответил директор. – Программа не работает.

Казалось, он бы ответил на любые вопросы, лишь бы я согласился. Но у его откровенности был предел.

– А кто… Кто его не дописал? – спросил я.

Не моргнув, директор сказал, что это неважно.

Я оставил ручку в покое. Посмотрел по сторонам. Смотреть здесь было откровенно не на что: ни картин на стенах, ни растений в горшках, ни даже окон. Единственное, что привлекало внимание, это ключ. Ключ, которым директор запер дверь переговорной на замок.

В голове крутилось подозрение, но я не мог облечь его в слова. Точнее, сделать это так, чтобы не сильно оскорбить директора. В конце концов я собрался с духом и спросил:

– А автор программы знает, что код у тебя?

Сказал бы Вышинский, что нет, не знает, на этом бы все и кончилось. Но он на удивление кивнул.

– Сам мне его и отправил.

– Отправил и ничего не сказал? – удивился я.

Вышинский облокотился на ручку кресла. Оно снова скрипнуло и слегка перекосилось.

– Дело не в том, что он сказал, а в том, что скажут другие. Мне нужна экспертная оценка. Чтобы ты глянул код и сказал, чего он стоит.

Я мысленно повторил за ним слово «экспертная». Слово было приятное. Однако мне его не хватило.

– Ты уверен, что я гожусь на роль эксперта? – спросил я.

– Федор, минуту назад ты уверял, что отлично разбираешься в нейросетях. Или нет?

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

И я быстро сменил тему разговора.

– Так это код нейросети?

Вышинский кивнул. Потом вспомнил о чем-то и помрачнел.

– Правда, есть одна сложность, – сказал он.

Я напрягся, ожидая новых моральных дилемм. Но сложность, о которой обмолвился директор, была технической.

Оказалось, что код написан на незнакомом языке программирования. На языке программирования Leader. Как объяснил мне Вышинский, автор программы создал этот язык сам.

– И если я погуглю…

– Там ничего нет. И все, что я тебе сказал, только между нами, да?

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

– Дима, мне нужно задачу закрыть. Ты сам просил.

Я, конечно, соврал. Никакой задачи у меня не было. Но Вышинский среагировал точно.

– Делегируй, – сказал он.

И сделал последнюю попытку уговорить меня по-доброму:

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

До разговора с Вышинским я держал в голове только одно: как бы не забыть в офисе свою кружку и сменную обувь. Но директор предложил задачу. «Задачу особого рода». И не кофе, печенье и ДМС, а инвестиции в мой бизнес.

«Инвестиции, самые настоящие инвестиции!» – повторил про себя я. Инвестиции тогда, когда и стартапа еще нет.

Пользуясь тишиной, Вышинский безапелляционно встал и направился к двери:

– Ты же программист. Просто глянь код. Окей?

0.0.1. Домашнее окружение

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

 

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

И только потому что кто-то другой ее не удержал, я думал, что так же не смогу ее удержать. Даже будь я самым-самым».

Когда Вышинский пообещал вложить деньги в стартап, я подумал о Марине. Представил, как она обрадуется, воодушевленно пересчитает мои шансы на успех.

Но я ошибся. Жена не собиралась славить удачу. Она снова и снова расспрашивала меня о случившемся. А потом, когда суть договоренности с директором стала ей ясна, задала прямой и самый важный вопрос. Вопрос, которого я боялся и старательно избегал: «Почему директор не сделает все официально?»

Марина не спрашивала. Она намекала. На возможные последствия моей работы. При этом безнравственность задачи ее не беспокоила. Моя жена не видела в расшифровке чужого кода преступления норм морали. Она считала соглашение с Вышинским «малоперспективным», а поведение директора – «малообещающим».

Казалось, все слова, что она произносила, начинались с корня «мало-». Как будто я мало старался, чтобы ее обрадовать.

Марина сыпала вопросами, на которые у меня не было ответов: «Что будет, если ты не расшифруешь код? Или будешь расшифровывать слишком долго? А вдруг Вышинский передумает инвестировать! Вы с ним хоть какой-нибудь договор подписали?»

– Это просто одолжение, – сказал я, пытаясь как можно скорее закончить разговор.

– Это просто ерунда, – припечатала Марина.

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

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

Пока я с раздражением рассматривал обновку, Марина спросила:

– Так почему все тайно? Вышинский что, украл этот код?

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

– Наверное, не украл. Он же не дурак, – сказал я.

– А ты? Ты не дурак? – спросила Марина, буравя меня глазами.

Я вскипел.

– Ты понимаешь, что он денег даст на стартап!

– Сколько?

Точных цифр у меня не было. Я уклончиво ответил: «Много».

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

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

– У тебя есть что вложить, а я не знаю? – спросил я.

И тут же получил в ответ претензию: «Почему ты так к этому относишься?» И вдогонку уточняющую: «Почему без энтузиазма?»

– Энтузиазм где-то на деньги обменивают? – спросил я.

– Можно кредит взять. Для малого бизнеса. Или какие там бывают.

– А какими деньгами отдавать?

Марина подошла к дивану и рывком сняла с него плед. Затем скомкала его и кинула обратно в бумажный пакет. Направилась к двери.

Вид ее спины меня встревожил. Каждый раз, когда Марина отворачивалась, чтобы уйти посреди разговора, меня охватывал страх, что она уйдет не только из комнаты, но и из квартиры. Из дома. Из моей жизни. Я боролся с острым желанием подбежать к ней и с силой развернуть к себе.

– Он мой начальник. Что я должен был, отказаться? – крикнул я.

Жена как будто забыла, что я все еще работал на Вышинского. Пусть и последние две недели.

Марина резко обернулась. Скривила красивое лицо и передразнила: «Он мой начальник. Что я должен был, отказаться?»

А потом приняла серьезный вид. Будто собиралась раскрыть мне глаза на правду. Сказать, что на поручение Вышинского может уйти не одна неделя, и, зная это, я просто откладываю вступление в руководящую должность в стартапе. Что я не хочу оформлять и подписывать документы, разрешать бюрократические и организационные проблемы, писать должностные инструкции, нанимать сотрудников, а потом терпеть войны между Project-менеджерами и бизнес-аналитиками, бизнес-аналитиками и программистами, программистами и тестировщиками. И, что самое главное, я ни за что не хочу нести ответственность.

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

Я, может, и правда, откладывал запуск стартапа. Но совсем по другой причине. Я сомневался в своей бизнес-идее. А точнее, во всех своих бизнес-идеях.

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

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

Запустить стартап я мечтал давно. Но, даже решившись, неосознанно спешил и сознательно тормозил, спешил и тормозил. И ничего не делал.

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

– Ты очень рискуешь! – сказала она.

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

Я сделал вид, что не понимаю, какое у нее настроение.

Фальшиво рассмеялся и спросил:

– А разве предприниматели не это должны делать, чтобы пить потом шампанское?

– Да, только это чужой код! – сказала она. – За расшифровку чужого кода тебя могут в промышленном шпионаже обвинить! Об этом ты подумал?

Сказала и вышла из комнаты.

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

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

А потом вижу, как Марина открывает рот.

– Трусы чьи-то висят, – равнодушно говорит она.

Я перевожу взгляд туда, куда смотрит Марина. Свет уличного фонаря выхватывает из темноты тряпку, застрявшую на ветке.

– Те, что красные?

– Ну, хоть бы и они. По-моему, в этом районе люди чаще других из окон вещи выкидывают.

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

– Почему? – спрашиваю я.

– Людей много – всех не поймешь, – пожимает она плечами.

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

0.0.2. Среда разработки

Он не отвечал. Минуту, две, десять. Я открыл Slack. Вышинский не только не прочитал мое сообщение в мессенджере, он вообще не заходил в чат.

Я кинул взгляд ему в спину, на деле мечтая кинуть что-нибудь потяжелее. Мало того что директор заставил меня расшифровывать чужой код, так он еще и помогать не спешил. Убедив в важности «неофициального» занятия, тут же от него отрекся, предался радостям офисной жизни. Сидел в социальных сетях. Листал ленту новостей «ВКонтакте» и увлеченно качал головой в такт музыке в наушниках.

Я оглядел свой стол и заметил грязную стирательную резинку. «То, что надо», – подумал я. Взял резинку и поднял глаза на Вышинского.

Но директор пропал. На его мониторе висела равнодушная заставка с золотой рыбкой.

В поисках Вышинского я оглядел опенспейс. Но увидел лишь с десяток неподвижных затылков. Каждый сотрудник в офисе, наклоняясь как можно ближе к экрану своего монитора, увлеченно работал. Листал документы в Confluence, смотрел задачи в JIRA, проверял почту. Бухгалтер по соседству со мной составляла документы в текстовом редакторе, серверный программист писал код. Их затылки, как и все остальные в офисе, не двигались. Никто, кроме меня, не шнырял глазами по опенспейсу.

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

Коротая время в ожидании Вышинского, я снова открыл в текстовом редакторе файл craft.leader. И уставился в код, написанный на неизвестном языке программирования Leader.

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

Задача в том виде, в котором рисовал ее Вышинский, была «очень сложной». Но в реальности оказалась невыполнимой. Приложение насчитывало сотни страниц, а я не понимал в нем ни строчки. Марина оказалась права. На расшифровку кода могла уйти уйма времени, а результат мне никто не гарантировал.

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

Я снова опустил глаза в код. Ни слова, ни часто встречающиеся обозначения мне ни о чем не говорили. Ни буквы, ни знаки препинания в коде не имели для меня смысл. Leader не походил ни на какой другой язык программирования. Мне не с чем было его сравнивать. Я смотрел в код и в непривычных сочетаниях букв не узнавал ни функций, ни процедур, ни переменных. Я не знал, где вызов, а где объявление. И что это за синтаксис такой?

Я разочарованно откинулся на спинку, кресло при этом взвизгнуло и чуть не опрокинулось. Я медленно вернулся в прежнее положение. Подумал немного, открыл онлайн-переводчик. Ввел в него название файла, содержащего код программы. Craft. Среди вариантов перевода программа предложила мне такие слова, как «хитрость», «ремесло», «самолет», «ловкость», «мастерство», «искусство» и «масонское братство».

Я посмотрел на дверь. Прошло пятьдесят четыре минуты с момента отправки сообщения, а директор так и не появился. Ни в чате, ни в опенспейсе.

«И Leader. Что за претенциозное название! Что это вообще значит? Ведущий, главный?» Я снова открыл онлайн-переводчик: «проводник», «поводырь», «дирижер». Опять ни намеков, ни подсказок.

«Все же, – подумал я, – Вышинский мог бы и рассказать, что должен делать код». Тогда мне оставалось бы только проверить, достиг автор программы цели или нет.

«Но вдруг Вышинский этого не знает?» – испугался я так же сильно, как пугался всякий раз, когда эта мысль снова приходила мне в голову.

«Может, он соврал. Может, автор программы не знает, что код у директора». Ведь если Вышинский в тайне от него отдал код на расшифровку другому программисту, он способен на любое мошенничество. А, значит, и меня, Магулова, мог обмануть.

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

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

И когда в правом нижнем углу моего экрана всплыло сообщение: «Ты о чем?», я мигом разозлился. Открыл мессенджер и напечатал: «О том, что поможет в расшифровке. Пришли мне хоть что-то». И раздраженно посмотрел в спину Вышинского.

 

Директор так же раздраженно глянул в чат.

«Например?» – прислал он.

«Чтобы запустить программу, – написал я – и чем больше писал, тем больше злился, – нужно скомпилировать ее исходный код. Где компилятор? Где отладчик?»

«Зачем отладчик?» – спросил Вышинский.

«Блин блинский», – подумал я. И понял, что директор департамента по разработке программного обеспечения абсолютно не шарит в программировании.

«Без отладчика я не смогу понять, зачем нужна та или иная строка кода, – объяснил я. – Ау!»

Вышинский опять застрочил в чат. Что-то написал, стер, написал, снова стер. Закрыл чат и заблокировал экран. Встав, он встретился со мной взглядом и уже привычно кивнул в сторону двери.


Издательство:
Автор