banner banner banner
Алгоритм Чагина
Алгоритм Чагина
Оценить:
Рейтинг: 0

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

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

скачать книгу бесплатно


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Я вскипел.

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

– Сколько?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0.0.3. Прорыв в болоте

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

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

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

– Ты видел код? – спросил я. – Там ни одного коммента, ни одной подсказки. Как мне его расшифровывать?

Директор поднялся на несколько ступенек и прислонился боком к стене.

– Я пришлю тебе компилятор. Запустишь программу, посмотришь…