Поступление в ШАД глазами куратора и студента
1 апреля начался новый набор в Школу анализа данных, а приём заявок закончится 6 мая. Отбор будет состоять из нескольких частей: онлайн-теста, очного вступительного испытания и собеседования. Академия поговорила со студентом первого курса ШАДа Андреем Спиридоновым о процессе поступления и попросила руководителя Школы анализа данных в Москве Стаса Федотова прокомментировать, как изменится конкурс в этом году.
Подготовка к поступлению
Андрей Спиридонов, студент первого курса ШАДа: Я учусь на пятом курсе физфака МГУ: занимаюсь теоретической физикой и изучаю теорию струн. В первый раз я попробовал поступать в ШАД ещё после школы, но мне не хватило ни математического аппарата, ни мотивации. Я учился в СУНЦ, участвовал в олимпиадах, и Школа анализа данных была везде на слуху. Мне просто хотелось попробовать туда попасть, а понимания зачем это нужно не было, — поэтому я, наверное, и не прошёл.
Нельзя сказать, что я ответственно готовился к поступлению во второй раз: но занятия теоретической физикой прокачивают как знания, так и мотивацию. Прежде чем посвятить себя фундаментальной науке, хочется попробовать что-то ещё — например, анализ данных.
Я начал готовиться за полгода до экзамена: раз в неделю по два-три часа прорешивал математические задачи. В интернете много материалов для подготовки: поступать в ШАД — распространённое развлечение для бывших олимпиадников и просто тех, кто любит математику. Я читал наработки сообщества и анализировал их.
Ещё я взял для подготовки две книги: по теории вероятности и математической статистике и по алгоритмам. Чтобы разобраться с алгоритмами, я использовал «Искусство программирования» Дональда Кнута: там содержатся сведения из дискретной математики, а в ШАДе любят давать задания на суммирование рядов и восстановление рекуррентных последовательностей. Я почувствовал, что есть вещи, которые не запомню, и что сборники пригодятся мне на очном экзамене. Я взял их с собой, хотя они и были тяжёлыми.
Я ни разу не открыл эти книги на экзамене, но их вес вызывал у меня тёплые ощущения — как будто моя спина была прикрыта
Стас Федотов, руководитель Школы анализа данных в Москве: На вступительных экзаменах поступающему могут встретиться олимпиадные задачи, требующие скорее не конкретных знаний, а хорошо выработанной математической интуиции. Мы постарались собрать те темы, которые, на наш взгляд, могут оказаться полезными в анализе данных: вы не встретите в заданиях теории групп или интегралов по поверхности. Однако не у всех способных людей, которые уже вовсю изучают анализ данных самостоятельно, есть внушительный математический багаж. В этом году мы решили дать таким поступающим больше возможностей проявить себя и открыли новый трек отбора: на нём можно будет не решать зубодробительные задачи, но придётся впечатлить комиссию достижениями в сфере машинного обучения: статьями, участием в проектах и так далее.
Онлайн-тестирование
Андрей Спиридонов: Онлайн-тестирование поступающие считают самой простой частью отбора. Когда я его выполнял, то параллельно c Яндекс.Контестом открыл Wolfram Mathematica — чтобы не решать задачи на вычисления вручную. Я быстро пролистал простые задания с выбором ответа (например, на то, чтобы найти на графике точку, в которой производная функции равна нулю) и пошёл дальше. Были и хорошие задачи, напоминавшие головоломки. В олимпиадах по математике иногда встречаются задания, где нужно исследовать какой-то реальный объект и его свойства: в отборе в ШАД они тоже были, и они мне больше всего понравились.
В итоге я прорешал онлайн-тур с одной ошибкой: как раз в одной из элементарных задач. Автоматическая проверка отсеивает людей, которые невнимательно и безответственно подошли к заданию. Именно поэтому к онлайн-туру нужно подходить серьёзно: чтобы не допустить обидных ошибок.
Стас Федотов: Онлайн-тест проверяет мотивацию поступающих и аккуратность. В этом году в нём будет 9 задач по математике и 3 задания по программированию. Задачи по математике довольно простые — тем более, что решать их предстоит дома, имея под рукой всю мощь современных технологий.
В части с программированием проверяется умение писать работающий код. Система проверяет код автоматически, прогоняя его через несколько тестов — если хотя бы на одном из них будет ошибка, то задача не засчитается целиком (к счастью, послать решение можно несколько раз, и проверяться будет только последний вариант). Таков суровый мир программирования: разработчик должен уметь отлаживать свой код до отправки в продакшн. Ведь объяснение «программа прошла 100 тестов и завалилась только на 101-ом» вряд ли порадует владельца рухнувшего сервиса.
Очный экзамен
Андрей Спиридонов: Оба раза, когда я участвовал в очном туре, на нём было много знакомых лиц. В первый раз это были ребята с олимпиад, а во второй — с мехмата МГУ и из Вышки: с прикладной математики и информатики и программной инженерии.
Для меня последний очный экзамен начался с того, что я пришёл и стал общаться с людьми, с которыми давно не виделся. В какой-то момент ворвался Стас Федотов и сказал: «Так, ребята, сейчас всё начнём. Если что, все вопросы задавайте мне». И мы сразу поняли, что он главный. Нам раздали задания, на которые выделялось четыре часа. Я решил только половину из них — это не очень много, и я был собой недоволен.
Задачи были классные: встречались простые, которые решались общеизвестными трюками, — например, про матрицу проекций с пропущенными значениями. Был номер про комбинаторную вероятность: в нём можно было найти производящий функционал и дифференцированием получать из него ответы для разных N.
Мне понравились сложные, красивые задания — даже те, которые я не решил. Например, задача про дифференциальные неравенства, которую можно было решать несколькими подходами: подставляя равенства или исследуя свойства монотонности функции. Было задание про рекуррентную последовательность.
Мне попалась простая задача на алгоритмы: была дана последовательность чисел, и нужно было правильно упорядочить их квадраты.
Стас Федотов: В 2020 году очный экзамен будет состоять из двух частей: в первой будет восемь математических задач, в которых нужно не использовать заученные алгоритмы, а думать. Мы хотим увидеть, как рассуждают поступающие, а не просто проверить какие-то конкретные знания.
Письменный этап дополнился соревнованием по программированию и анализу данных на платформе Яндекс.Контест – это шанс показать себя для тех, кто уже занимается data science. В этом году в контесте, скорее всего, будет пять задач:
— Простое задание, в котором нужно написать рабочий код, не забыв про граничные случаи
— Задача, в которой нужно будет соблюсти довольно сложную логику и не запутаться
— Задача по анализу данных, которую можно решать при помощи любых инструментов
— Две сложных задачи по алгоритмам, близкие к олимпиадным
Собеседование
Андрей Спиридонов: Собеседование – самый увлекательный этап отбора. Я пришёл на него с четырьмя баллами из восьми, набранными на очном туре, стараясь думать, что с этим можно работать. Чтобы расслабиться, я сидел на кофе-поинте в ШАДе и параллельно решал какую-то домашнюю работу у себя в тетради. Вокруг мельтешили другие ребята: ходили из стороны в сторону и нервничали. Я знал, что Школа анализа данных — это популярное место, но перед собеседованием я впервые ощутил, что людям действительно нравится ШАД, и они мечтают туда поступить. Я отложил в сторону тетрадь и решил пообщаться с другими поступающими, сказать: «Ребят, не переживайте, всё будет хорошо». С некоторыми из них мы теперь вместе учимся.
Собеседование проходило в три этапа: сперва я обсудил мотивацию для поступления, потом решал математические задачи и наконец отвечал на вопросы по алгоритмам. C кофе-поинта меня забрал парень, который представился Никитой, и повёл говорить про то, зачем я хочу поступать в ШАД. Я стал рассказывать ему про то, как сильно люблю теоретическую физику, что я изучил, и какими исследованиями в теории струн хочу заниматься.
Я подумал, что в ШАДе учатся и преподают люди «с тремя мозгами», и поэтому они вникнут в любую тему, о которой я начну говорить
Кажется, моя теория подтвердилась: Никита увлечённо меня слушал и задавал уточняющие вопросы. Я рассказывал ему про бордизмы (понятие из дифференциальной геометрии; многообразия, границами которых служат два заданных многообразия). Свойства бордизмов часто изучаются в теории струн: потому что перемещения струн описываются не кривыми, а плёнками.
Я стал описывать эти плёнки и то, какие топологические характеристики у них изучают. Я вошёл в раж и стал у доски рассказывать про то, как склеить тор из квадрата, и почему при разных склейках получаются разные фундаментальные группы. Так прошло минут сорок: я просто рассказывал про то, что меня увлекает, и это был не анализ данных.
В какой-то момент мой рассказ внезапно подошёл к концу, и я подумал: «Чёрт, а теперь-то что рассказывать». Сел на стул и говорю: «Вот то, чем я занимаюсь, а в ШАД я пришел, потому что прочитал на Хабре, что у вас очень успешно учатся физики. Был такой выпускник МФТИ — Никита Казеев, который потом использовал анализ данных для поиска частиц, работая на Большом адронном коллайдере».
Мой собеседник ехидно заулыбался. Я вспомнил, что его зовут Никита. И это был он. Вот почему он так понимающе меня слушал: потому что сам физик. Мы по душам поговорили про научную составляющую в физике и в анализе данных, а формального интервью так и не произошло. Но думаю, что это скорее исключение из правил.
У меня было очень хорошее настроение, когда мы разошлись. Потом Стас Федотов позвал меня решать задания по математике: я чувствовал себя уверенно и поэтому сразу решил все. С частью по алгоритмам было сложнее: я рассказывал про алгоритм поиска подстроки Ахо-Корасик сначала студентке ШАДа, а потом Максиму Бабенко. Максим задавал много уточняющих вопросов: важно было действительно разбираться в теме, а не знать её поверхностно.
Как мне тогда казалось, я задержался на собеседовании допоздна — и освободился в семь вечера. А теперь я учусь в ШАДе и не ухожу из Яндекса раньше одиннадцати: охраннику даже приходится меня выгонять.
Стас Федотов: Для нас собеседование – это шанс узнать о поступающем что-то такое, что мы не узнали на предыдущих этапах. В первую очередь о его мотивации: о том, насколько человек интересуется анализом данных или инфраструктурой больших данных, насколько он понимает, что происходит в ШАДе и чему хотел бы здесь научиться, насколько он готов к временным и ресурсным затратам, которые его ожидают.
Помимо этого на заключительном этапе нужно решать задачи. В каком-то смысле это шанс компенсировать те проблемы, которые могли возникнуть на втором этапе, и показать себя с лучшей стороны. Решать задания на собеседовании намного проще: ведь мы подсказываем, когда видим, что человек зашёл в тупик, и не пытаемся никого «завалить».