Мой код был в тупике. Я билась над ним третий день, и он напоминал не изящную логическую конструкцию, а лабиринт, где каждый поворот заканчивался стеной. Задача была сложной — оптимизировать алгоритм поиска паттернов в огромном массиве генетических данных. Мой подход был громоздким, ресурсоёмким, и я чувствовала, что где-то рядом существует элегантное решение, но мои мысли ходили по кругу, упираясь в одни и те же логические барьеры. В назначенные четырнадцать часов я пришла в лабораторию 514 с тяжёлым чувством. Орлов сидел за своим столом, окружённый стопками статей. Он кивнул на стул, не отрываясь от экрана. «Ваш черновик. И ваш код. Показывайте проблему».
Я начала объяснять, чувствуя, как от волнения путаются слова. Я говорила о бинах, о хэшах, о сложности O(n²), которая сводила на нет всю практическую пользу алгоритма. Я показывала ему свои бесконечные циклы и костыли из условных операторов. Он слушал молча, лишь изредка щурясь, его пальцы медленно постукивали по столу. В его взгляде не было ни раздражения, ни снисхождения. Был лишь сфокусированный аналитический интерес, как у хирурга, рассматривающего сложное сканирование.
Когда я закончила, в комнате повисла тишина. Он откинулся на спинку кресла, закрыл глаза. Минута тянулась мучительно долго. Я уже готовилась к разгрому, к тому, что он назовёт мои потуги «студенческим лепетом» и отправит переписывать всё с нуля. Но он открыл глаза и сказал одну-единственную фразу. Не решение. Не указание на ошибку. А вопрос. Глупейший, простейший, детский вопрос, от которого у меня перехватило дыхание.
«А зачем вы пытаетесь считать каждую песчинку, Петрова, если вам нужно найти отличия между двумя пляжами?»
Я уставилась на него, не понимая. «Что?» — выдавила я. Он нетерпеливо вздохнул, взял со стола два одинаковых карандаша и положил их передо мной параллельно. «Вот ваш массив А, — ткнул он в один карандаш. — Вот массив Б. Вы строите сложную систему, чтобы сопоставить каждую точку на А с каждой точкой на Б. Но вам-то нужно не это. Вам нужно найти расхождение. Так зачем вам полное попарное сравнение?» Он взял третий карандаш, сломал его пополам и положил обломок рядом с первым карандашом. «Найдите способ быстро отбросить всё одинаковое. Всё, что совпадает. И тогда то немногое, что останется, и будет вашим ответом. Вам нужен не точный счёт, Петрова. Вам нужен умный фильтр».
В моей голове что-то щёлкнуло. Громко, почти физически. Весь громоздкий лабиринт моего кода рухнул в одно мгновение, и перед мысленным взором возникла простая, ясная, блестящая в своей простоте схема. Хаширование, не для поиска, а для исключения. Предварительная сортировка и бинарный поиск для отсева заведомо неподходящих участков. Не O(n²), а в идеале стремящееся к O(n log n). Это было так очевидно, что мне стало стыдно за свои три дня бесплодных мучений.
«Вы... вы предлагаете использовать принцип хэш-таблицы для создания негативной маски, а потом...» — начала я, и слова понеслись сами, выстраивая новую архитектуру программы. Он слушал, и на его лице впервые за всё время нашего знакомства появилось нечто, отдалённо напоминающее удовлетворение. Не улыбка. Скорее, едва заметное смягчение вокруг глаз. «Дальше, — подбодрил он коротко. — Проговаривайте логику».
Я говорила, спотыкаясь, поправляя себя, и с каждым словом решение кристаллизовалось, становилось всё яснее. Он не перебивал, лишь изредка кивал или бросал короткие реплики: «Почему бинарный, а не интерполяционный?», «А что с памятью?», «Подумайте о вероятности коллизий». Его вопросы не были уколами. Они были точными, ювелирными инструментами, которые помогали мне шлифовать идею, делать её прочнее и изящнее.
Когда я, наконец, выдохлась, закончив мысленный план нового алгоритма, в лаборатории снова воцарилась тишина. Но на этот раз она была другой — не гнетущей, а насыщенной, творческой, как тишина после рождения новой мысли. Он взял мой распечатанный код, перевернул лист и на чистой стороне быстрыми, уверенными штрихами набросал блок-схему. Ту самую, что только что родилась у меня в голове, но оформленную с математической чёткостью, которой мне ещё предстояло научиться.
«Вот каркас, — сказал он, протягивая мне листок. — Дальше — ваша работа. Помните: хороший код — это не тот, который работает. Хороший код — это тот, который работает очевидно. Как аксиома. Если для его понимания требуется больше трёх минут, вы сделали что-то не так».
Я взяла листок. Его почерк был угловатым, но разборчивым. В этих схемах и пометках не было ни капли снисхождения. Было уважение. Уважение к задаче и, как ни странно, ко мне как к коллеге, способной понять и достроить мысль. В этот момент я перестала быть для него «студенткой Петровой», создавшей проблемы. Я стала «Петровой», которая решает задачу. Разница была колоссальной.
«Спасибо, — прошептала я, сжимая в руках этот бесценный листок. — Я... я не видела этого». Он снова надел маску безразличия, повернувшись к монитору. «Узость мышления — распространённая болезнь. Главное — вовремя задать правильный вопрос, чтобы её вылечить. Идите, работайте. Жду результат к четвергу».
Я вышла из кабинета, и мир казался другим. Не потому, что задача была решена. А потому, что я впервые по-настоящему увидела мощь его интеллекта. Это не был сухой, отстранённый ум. Это был острый, парадоксальный, созидательный интеллект, способный одним точным вопросом разбить в прах горы напрасных усилий и указать прямой путь. Он не дал мне рыбу. Он дал удочку и показал, что я всё это время пыталась ловить рыбу голыми руками в мутной воде.
И это осознание породило во мне новый, смешанный с прежним уважением, трепет. Быть рядом с таким умом — это и привилегия, и вызов. И какое-то упрямое, глупое чувство внутри меня начало надеяться, что наша игра когда-нибудь закончится, а это — совместное решение сложных задач, этот общий язык логики и красоты — останется. Это было куда опаснее любой симуляции романтики. Потому что романтику можно сымитировать, а интеллектуальное родство — нет. Его либо есть, либо нет. И похоже, оно начало пробиваться сквозь все наши договоры и протоколы, как первая зелёная трава сквозь асфальт.
💗 Если эта история затронула что-то внутри — ставьте лайк и подписывайтесь на канал "Скрытая любовь". Каждое ваше сердечко — как шепот поддержки, вдохновляющий на новые главы о чувствах, которых боятся вслух. Спасибо, что читаете, чувствуете и остаетесь рядом.
📖 Все главы произведения ищите здесь:
👉 https://dzen.ru/id/683960c8fe08f728dca8ba91