Если ты, то я
Шрифт:
– Наши занятия – это мозаика из разных тем, в которых, на мой взгляд, вам необходимо разбираться, если вы хотите как-то выделиться на общем фоне программистов, слетающихся сюда каждый год, чтобы продвинуть свои идеи. Я не сторонник пустой болтовни и долгих знакомств, поэтому перейдем сразу к делу. Во-первых, структура данных. Как вы знаете, она помогает нам организовать информацию так, чтобы было легко и удобно ее искать или корректировать. Все вы в той или иной степени знакомы с этим понятием, но здесь вас научат создавать более сложные структуры данных и алгоритмы
Он постучал по белой доске за своей спиной, и, ко всеобщему удивлению, она превратилась в экран, на котором появилась матрица из нулей и единиц.
– Откройте свои ноутбуки, – сказал Ковальски. – Найдите мне на этой сетке самый большой квадрат, состоящий только из единиц. – Он вытащил из очередного кармана сэндвич. – У вас есть время до тех пор, пока я не прикончу эту восхитительную лодочку с индейкой.
Все зашуршали, принимаясь за дело. Я открыла среду разработки. Замерцал курсор.
Надо было перестать думать про свои акции, Эй Джея и его тупых дружков. Я приехала сюда, чтобы официально стать программистом, и нельзя было отвлекаться на ерунду. Что мне там писал ПостоянствоОбъекта? Я – не такая, как все. Я – черная дыра. Я – мощное гравитационное поле, втягивающее в себя энергию.
В программировании не бывает одного правильного варианта. Это все равно что запекать курицу: существует множество способов. На один рецепт уходит много часов, на другой – несколько минут. Можно приготовить курицу с хрустящей корочкой или пересушить ее, сделать сочной или очень нежной. Некоторые рецепты чрезвычайно трудоемкие, другие – совсем простые; можно добавить кучу специй, а можно положить один чеснок. Понятно было, что квадрат найдут все, но тут значение имел способ – быстрый, простой, изящный и негромоздкий.
Я обдумала несколько вариантов решения задачи Ковальски и уже начала печатать, но тут пришло сообщение на «фабричную» почту. Меня приглашали в общий чат, где уже беседовали несколько человек под незнакомыми никами.
G8mer88: Вы что, еще не закончили? Понятно же, что ответ – 7
Я покраснела.
2blpentr810: уже готово. Сделал за 7 минут
30parsecs: эй, кто-нибудь, поужинаем вместе? Встречаемся в 7
stringmealong: давайте попозже? Как насчет 7:07?
Aggrorhytm69: может, лучше закажем? 7 пицц.
Я оглядела класс, но все сидели склонившись над ноутбуками и деловито стучали по клавишам. Тогда я уставилась на Эй Джея, погруженного в задание. Он поднял на меня глаза и холодно, угрожающе улыбнулся.
Закрыв чат, я принялась торопливо набирать код. Времени почти не осталось. Ковальски уже съел четверть сэндвича, а у меня еще конь не валялся. У окна быстро набирал текст Маст, не отрывая глаз от экрана. Зачем ему было так стучать? Кейт рядом со мной легко скользила по клавишам длинными пальцами. Сидящая через несколько столов Сима, нависнув над ноутом, бормотала что-то себе под нос, а Амина достала из сумки блокнот и делала пометки, поглядывая на экран. Краем глаза я увидела, что за окном возникла какая-то
Я уже просматривала код, проверяя, везде ли закрыла скобки и правильно ли выстроила синтаксические конструкции, когда Ковальски объявил, что время истекло. Он поочередно выводил наши коды на экран и подробно разбирал их.
Очень быстро стало понятно, кто программирует хорошо, а кто – отлично. Большинство учеников написали один и тот же ответ с небольшими вариациями. Этот код либо писался быстро, но занимал слишком много места в памяти компьютера, либо, если занимал немного места, компьютер обрабатывал его слишком долго. Только Амина и Маст придумали вариант, экономивший и время, и место. Ну и я.
– Прекрасно, – произнес Ковальски, комментируя ответ Маста. – Просто и элегантно. Отличная работа.
Маст просиял и покосился на меня, но я сразу отвернулась.
Когда пришла моя очередь, атмосфера в классе накалилась, все взгляды обратились ко мне. Казалось, в воздухе угрожающе и вызывающе повисла цифра семь.
– Очень хорошо, – сказал Ковальски, прищурившись. – Умелое использование динамического программирования, но несколько небрежно написано. Повсюду следы форматирования, это может затруднить дальнейшую работу с кодом. Почистите, чтобы другим программистам было удобно читать.
Я покраснела и кивнула. Сзади кто-то фыркнул, но я почувствовала только облегчение: у меня все получилось.
После урока Маст догнал меня в коридоре.
– Если бы мы не были заклятыми врагами, я похвалил бы твой код, – сказал он. – Получилось круто, особенно когда ты поменяла местами указатели.
Я посмотрела на него с подозрением, гадая, чего ему надо, но, к моему удивлению, в глазах Маста читалась искренность.
– А я бы ответила: спасибо.
– А еще я спросил бы, откуда ты. И какие у тебя любимые фильмы. И что ты больше любишь – молочное драже или попкорн.
– Тогда я сказала бы: Массачусетс, романтические комедии и молочное драже. А потом спросила бы тебя о том же, потому что не хотела бы выглядеть эгоцентричной.
– Я бы ответил: Калифорния, романтические комедии и молочное драже.
– Что, правда?
– Нет. Терпеть не могу молочное драже, оно прилипает к зубам. Но, если бы ты захотела, я съел бы немного вместе с тобой. Только не рассказывай никому, что я люблю романтические комедии, иначе мои акции рухнут и меня разорвут в клочья.
Я почувствовала покалывание в затылке. ПостоянствоОбъекта тоже любил романтические комедии. Неужели? Но я тут же прогнала эти мысли. Ну конечно, он – не ПостоянствоОбъекта. Это слишком нереально.
Маст изучал меня, словно головоломку, которую никак не мог решить. Я вдруг смутилась:
– Ты чего?
– Еще я спросил бы, какая еда тебе нравится. Если бы мы не были заклятыми врагами, конечно. Но, поскольку мы враги, я не стану этого делать.
Он держал рюкзак за лямку, и мне захотелось взять его за руку. Интересно, что бы я почувствовала? Я крепче прижала свою сумку к груди.