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