Жизнь в рассеянном свете

Зачем делать Ph. D. по Computer Science

TL;DR Здесь я вкратце перечисляю причины делать Ph. D. по Computer Science. Кто я такой — написано в предыдущем посте.

Краткая справка: степень Ph. D. (расшифровывается как Doctor of Philosophy) примерно соответствует российской кандидатской степени. В обоих случаях для получения степени нужно закончить аспирантуру, опубликовать несколько научных статей, написать и защитить диссертацию. Аналога российской докторской степени почти нигде больше нет.

Начнём с простого вопроса: зачем, собственно, вообще нужно делать Ph. D. по Computer Science в аспирантуре в Европе или США?

Возможных ответов много, попробую кратко перечислить по пунктам.

Денежный вопрос. Начну издалека. Многие знакомые, особенно работающие во всяких гуглах, смотрят на меня сочувственно и спрашивают: «Как ты можешь жить на такие копейки?» Стипендия у аспирантов действительно не очень большая по местным меркам. Скажем, мне платили где-то $30k в год. Но:

  1. С учетом стипендии жены и наших летних стажировок, наш годовой доход нередко был сильно больше медианного дохода семьи в Массачусетсе, соответственно можно жить достаточно комфортно и особенно скрупулёзно деньги не считать.
  2. Довольно странно выбирать свою деятельность в самые продуктивные годы жизни (22-27 лет), основываясь на размере зарплаты. Конечно, обстоятельства бывают разные, но в этом возрасте я бы крайне рекомендовал не гнаться за деньгами, если на то нет особой необходимости. Запас энергии у человека весьма ограничен, а «срубить капусты» с хорошим математическим/программистским образованием не очень сложно и после 30 лет.
  3. Если вы получили Ph. D. и устроились на постоянную исследовательскую работу (tenure-track professor of Computer Science в университете или researcher в лаборатории), то в США это означает очень и очень достойную зарплату, если место хоть сколько-нибудь приличное. Так что на длинной дистанции пропасть не так просто.

Со слоном в комнате разобрались, переходим к более содержательным пунктам.

Диссертация как права. Если вы собираетесь делать научную карьеру, то степень Ph. D. — это что-то вроде автомобильных прав.

  1. Во-первых, это чисто формальное требование при наборе на любые исследовательские позиции (постдок, tenure-track профессор, исследователь в лаборатории).
  2. Во-вторых, с помощью научного руководителя вы получаете опыт научной работы и изучаете «правила игры» научного сообщества.
  3. Наконец вы просто заводите связи в научном мире, без которых никакая научная карьера невозможна.

При этом, реалии таковы, что со степенью из России куда-то пробиться при прочих равных гораздо сложнее, поэтому стоит ехать делать Ph. D. в США/Европу.

Удовольствие от придумывания нового. Самый кайф в исследованиях — придумать что-то новое с ощущением того, что до вас это никто не делал, и что вы — первопроходец. Такие моменты лично у меня случаются довольно редко, но каждый из них я хорошо помню, и эмоции всё это вызывает совершенно непередаваемые. Конечно, почти любой новый результат — это капля в море науки (см. известный пост «The illustrated guide to a Ph. D.»), но по-моему это совершенно не важно, а важен сам факт расширения границ наших знаний. Это как решать (и решить) трудную олимпиадную задачу, но которую составляет не другой человек, а Бог или мироздание (кому как нравится).

Сам процесс (c). Есть много приятного и в самом процессе размышления над задачей, который может растянуться на годы. Можно сравнить получение интересного результата со спонтанным увлекательным путешествием, когда в начале пути не имеешь никакого понятия о том, где окажешься в конце. Надо признать, что не всегда всё проходит гладко: часто заходишь в тупик или начинаешь испытываешь уныние после месяцев битья головой об стену, но это тоже часть опыта.

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

Эксперт №1. В идеале, написав и защитив диссертацию, вы становитесь экспертом №1 в какой-то (узкой) теме. По этому поводу есть всякие шутки вроде «A Ph. D. makes you know more and more about less and less until you know everything about nothing», но на мой взгляд про это правильно думать по-другому. Основная задача научного сообщества — быть распределенной самоулучшающейся базой данных, в которой хранятся знания. Таким образом, пусть даже для начала «зная всё ни о чем», вы становитесь полноценным узлом в этой сети. В частности у вас обычно появляется некоторая известность в сообществе: вас знают как эксперта в теме X, написавшем такую-то и такую-то статью. Кроме вашей узкой темы, вы получите хорошее представление о «переднем крае» Computer Science в целом, что по-моему очень полезно.

Право собственности. Ваши научные результаты и статьи принадлежат только вам, а не вашему работодателю. В частности, нет никаких NDA, которые тормозят прогресс. Более того, нетривиальная часть времени исследователя уходит на то, чтобы рассказывать про свои новые результаты другим людям.

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

Свобода. В работе исследователя, и особенно во время аспирантуры, у вас очень много свободы. Вы (с помощью научного руководителя) сами выбираете задачу, сами придумываете к ней подходы, сами пишете статью и т. д. То есть вы — самостоятельная боевая единица, а не солдат в огромной армии с десятью уровнями командования над вами. На чисто бытовом уровне в аспирантуре свободы ещё больше: никто вас не будет заставлять приходить в офис с утра, можно поехать в другой город или другую страну в любое время и т. д.

Сам себе менеджер. За свободу из предыдущего пункта, ясное дело, приходится платить. За время аспирантуры вам придется научиться жонглировать своим временем и научиться не проваливать большое количество малореалистичных дедлайнов. Как говорил И. М. Гельфанд: «Хорошо, когда у человека больше обязанностей, чем физических возможностей и времени, тогда он занимается тем, что ему действительно интересно».

Навыки коммуникации. В аспирантуре вам придется, во-первых, преподавать, ведя семинары и иногда лекции у студентов или других аспирантов, и, во-вторых, делать доклады про ваши результаты. Все это довольно неплохо развивает то, что называется communication and presentation skills.

Жизнь за рубежом. Если вы делаете Ph. D. не в России, то (внезапно!) вам придется прожить несколько лет в другой стране, погрузившись в местную студенческую культуру. Это крайне полезно, даже если в долгосрочной перспективе вы хотите жить в России. В детали вдаваться не буду, скажу лишь, что образы других стран, создаваемые российскими СМИ, скажем мягко, не очень соответствуют действительности.

Путешествия. Как я уже писал выше, в аспирантуре и, более глобально, будучи исследователем, вам придется много путешествовать: на конференции, воркшопы, с визитами в другие университеты или лаборатории и т. д. У этого есть и очевидные минусы, но всё же это отличный способ побывать во многих странах.

Большая часть из вышеперечисленного применима далеко не только к Computer Science, но напоследок я упомяну один специфичный пункт.

Отличные пути к отступлению. Даже если в какой-то момент аспирантуры вы поймете, что наука — это не ваше, то это не беда. Во-первых, после двух лет аспирантуры можно уйти, получив степень магистра. Во-вторых, встроиться в индустрию с Ph. D. по Computer Science довольно легко: с одной стороны, все вышеперечисленные навыки никуда не деваются, с другой — если в аспирантуре вы занимались чем-то не сильно далёким от жизни, то обычно можно найти место в индустрии, где ваша экспертиза пригодится.

Дополнение

Написав текст выше, я показал его Илье Корнакову — моему другу и сокоманднику по команде МГУ в ACM ICPC, который сейчас работает в Гугле в Цюрихе. Илья напомнил про несколько преимуществ индустрии. Привожу их ниже, снабдив своими комментариями.

Больше «real-world impact’а». В индустрии ваш продукт при удачном раскладе будут использовать миллионы пользователей, а в академии вы пишете статьи для десятка человек в лучшем случае. На это у меня есть два ответа. Во-первых, лично мне как человеку любящему поговорить возможность рассказывать про свою работу намного важнее анонимного импакта. Во-вторых, доля даже высококлассных программистов, которым доводится работать над вещами, которые увидят миллионы пользователей — крайне мала.

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

Заяц в лесу сидит на пеньке и пишет диссертацию, к нему подходит волк:
— Ты что делаешь?
— Да вот новую тему придумал: «Как зайцы волков едят».
— Заяц, ты что, страх потерял?
— Пойдем, покажу. …Пропал волк, а заяц дальше пишет…
Подходит лиса.
— Косой, ты что это там пишешь?
Новую тему диссертации осмысливаю: «Как зайцы лис на завтрак едят».
— Ну ты, косой, совсем уши отморозил.
— Не веришь, пойдем, покажу.
…Пропала лиса…
А заяц тем временем все строчит диссер…
Подходит медведь:
— Ушастый, на что чернила изводишь?
— На новую тему диссертации: «Как зайцы в медвежьих шубах мороз переносят».
— Заяц, сейчас тебе башку отгрызу!
— Ну пойдем, покажу. Заходят за угол, а там пещера, костей всяких навалом: лисьих, волчьих. А посередине лев лежит.

А мораль такова: не важна тема диссертации, а важно кто твой научный руководитель…

Всё действительно так, увы. Но тут стоит понимать, что каждый хороший исследователель — это единица уникальная в своем роде. Поэтому когда приходится распределять ограниченные ресурсы (позиции в университетах, гранты и т. д.), неизбежно приходится сравнивать яблоки с апельсинами, и всё нередко упирается в личные предпочтения людей, которые ответственны за это самое распределение.

Потеря нескольких продуктивных лет. Если после получения Ph. D. вы собираетесь пойти в индустрию, то аспирантура — это потеря нескольких продуктивных лет жизни. На это могу ответить, что доля людей, которые получают Ph. D. по Computer Science в приличных местах и идут в индустрию на позиции, которые не требуют наличия степени, довольно мала. То есть _такая_ индустрия — это скорее запасной вариант, если с наукой не сложилось. Но если вы сразу после выпуска из университета твёрдо решили для себя, что работа в Гугле — это ваша мечта, то идти Ph. D. делать конечно не надо.

На этом всё. Если у вас есть вопросы или замечания — пишите в комментарии или на ilyaraz@mit.edu.

4 сентября  

Первый пост

Хотелось бы написать несколько постов про то, как устроена аспирантура (graduate school) и, более глобально, исследования по Computer Science в США.

Кто я такой? Буквально несколько дней назад я наконец дописал диссертацию, которая называется «High-Dimensional Similarity Search and Sketching: Algorithms and Hardness», и получил степень Ph. D. по Computer Science из MIT. Через несколько дней я начну постдок в Колумбийском университете, а в январе перееду в Сиэтл, чтобы начать работать исследователем в лаборатории Microsoft Research.

Во время Ph. D. я занимался тем, что называется Theoretical Computer Science, более точно: теорией алгоритмов для обработки больших данных. Если интересна специфика, то можно попытаться почитать введение диссертации (ссылку см. выше) или посмотреть недавние видео моего мини-курса в Санкт-Петербурге.

До MIT я закончил мехмат МГУ. За те пять лет я съездил на две стажировки в Microsoft Research и проработал два года в Яндексе. На мехмате и в школе я активно участвовал в соревнованиях по спортивному программированию (highlight: две золотые медали на IOI в 2006 и 2007 годах и золотая медаль ACM ICPC в 2010 году в составе команды МГУ).

Моя жена, с которой мы в далёком 2006 году заняли второе место на всероссийской командной олимпиаде школьников, тоже делает Ph. D. по Computer Science в Бостонском университете и скорее всего будет защищаться через год.

Зачем всё это? В своё время я почти ничего не знал про американские аспирантуры, и только несколько разговоров со вполне конкретными людьми (Юра Притыкин, Андрей Гольдберг, Константин и Юрий Макарычевы), которые прошли через всё это, поправили ситуацию. Было бы здорово стать таким же человеком для кого-то другого.

С другой стороны, реалии таковы, что США — мировой центр Computer Science и разных других наук, поэтому, как мне кажется, довольно полезно понимать, как здесь устроена «академия». Довольно распространена точка зрения, что процесс получения к. ф.-м. н. и Ph. D. почти идентичен, и это не 100% неправда, но есть много специфики и акценты расставлены совершенно по-другому.

Что здесь будет? Я постараюсь написать про разные аспекты занятий наукой, поступления в аспирантуру, поиска академической работы и т. д. Ничего обещать не буду, но если вам интересно что-то конкретное, пишите в комментарии или на ilyaraz@mit.edu.

29 августа