Дебютный учебный год прошел быстро и в удовольствие. Уже во втором семестре я стал лучшим на факультете по среднему баллу и занимал первую строчку следующие четыре с половиной года, до окончания бакалавриата и магистратуры. Но к концу первого курса стала очевидна следующая проблема: учиться было слишком легко. И причина была отнюдь не в моей гениальности, а в малом количестве учеников и их плохой подготовке. Это был год, когда половина школьников не сдала выпускные экзамены, а значит, автоматически лишилась шанса поступить в университет. Информатика и до этого не пользовалась огромной популярностью, что странно, учитывая зарплаты в несколько раз выше, чем в остальных секторах. Но реальность была такова: нас было мало, около двухсот на потоке, четверть попала туда случайно, еще четверть отправили родители. «Если двойки стоят в линию, это проблема ученика, а если в колонку – проблема учителя» – эта логика заставляла преподавателей снижать требования, объяснять меньше, чем они хотели бы, и упрощать экзамены, чтобы большинство смогло пройти дальше. Иначе студентов нужно было бы отчислять, а это чревато закрытием групп и потерей работы.
По опыту шахматных уроков я знал, что нет ничего лучше для учителя, чем ученик, который стремится к большему. Поэтому порой буквально заставлял преподавателей давать нам опциональные усложненные задания и настаивал на том, чтобы сложные темы подробно разбирались на занятиях. Преподаватели с огромной радостью шли мне навстречу, чего нельзя сказать о большинстве моих одногруппников. «Ботаник, выскочка, зубрила» – так думала обо мне половина факультета. Это абсолютно нормально, если достигаешь успеха и чем-то выделяешься, найдутся те, кто будет тебя осуждать. Зависть, непонимание и еще тысяча причин, по которым одни люди обсуждают других. Так было, есть и будет. Лучшее, что тут можно сделать, – просто заниматься своими делами, не пытаясь что-то кому-то доказать.
В библиотеке я отыскал монографию Дональда Кнута «Искусство программирования». Четыре тома о базовых алгоритмах, структурах данных и теории информатики. Читая книгу, я был поражен, насколько огромен и сложен этот мир. Особенно удивила именно сложность, так как уже к сотой странице я окончательно перестал понимать, о чем речь. В этот момент все большую популярность начинала приобретать Coursera – онлайн-платформа с курсами по разным направлениям. Coursera стала для меня дополнением к университету, там была возможность глубже погрузиться в темы, которые меня интересовали. Где-то я прочитал, что на собеседованиях в Google задают вопросы по структурам данных, поэтому в первую очередь выбрал курс «Алгоритмы» (англ. Algorithms) от преподавателей Принстона Роберта Седжвика и Кевина Уэйна. Мне понадобилось три попытки (и два года), чтобы пройти и полностью осознать этот курс.
С наступлением трехмесячных летних каникул человек сорок с факультета уехали работать в США по программе Work and Travel. Это был отличный способ скопить две-три тысячи долларов, работая официантом или кассиром. Средняя зарплата в моем городе была около четырехсот долларов в месяц, поэтому две тысячи долларов были большой суммой для студента. Моего английского было достаточно для такой работы, но я решил мыслить стратегически, как меня учили в шахматах.
Если представлять карьеру как шахматную партию, то время в университете – это дебют (начало партии). Главная задача дебюта – развить свои фигуры и получить хорошую позицию для осуществления главного плана на игру. Поэтому я пожертвовал потенциальными двумя тысячами долларов и устроился на лето в небольшую фирму Deeplace, заниматься веб-разработкой за двести долларов в месяц. «Главная задача на ближайшее время – развитие своих фигур (навыков), а деньги не главное», – решил я перед началом работы. Этим принципом я руководствовался следующие десять лет.
Мне повезло, у нас были классная команда и очень опытный руководитель. Мы делали сайты для государственного сектора, и мне даже удалось поработать над новым сайтом Национального банка Молдовы. В первую же неделю я почти положил наш локальный сервер, случайно отправив на него пару миллионов электронных писем. За три месяца я поучаствовал в пяти проектах, поговорил со всеми менеджерами продаж и даже один раз присутствовал на переговорах с клиентом. Это был отличный опыт: я научился работать с Линуксом, что должно входить в базовый набор любого программиста; поэкспериментировал с базами данных и посмотрел, как организовывается работа проектов, когда участников больше, чем два человека. В конце лета мне предложили остаться и работать дальше на полставки, чтобы я мог совмещать работу и учебу.