Год в ШАДе

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


Привет, Миш, добавишь в беседу поступающих в ШАД?
- Какую беседу?

Через пару часов меня добавили в беседу.

Не могу сказать, что поступление было тщательно обдуманным и спланированным решением. Почему я всё-таки пошёл? Основных причины было три.

Самая очевидная — мне интересна область DS, а ШАД — одно из лучших мест в России, где этому учат.

Вторая более личная. Я из тех людей, у которых любая работа занимает всё выделенное под неё время. И раз я не могу делать всё быстрее, но хочу увеличить свой КПД, то остаётся лишь увеличить нагрузку.

А последняя — ну все мои знакомые идут в ШАД, а я что — рыжий что ли?

Поступление

TLDR: смотрел Youtube, завалил программирование, затащил математику

Конечно, я всем говорю, что вообще не готовился. Сейчас расскажу подробнее, как именно.

В первую очередь, я смотрел ролики Fless-а (ищите на Youtube) о его поступлении в ШАД. Он дал много советов про то, как можно выстроить подготовку. В частности, акцентировал внимание на том, что важна мотивационная часть (о ней позднее).

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

Чтобы (((подготовиться))) к проге, я откопал из недр стола пароль от школьного сайта по информатике и зашёл в раздел (((олимпиадных))) задач. В результате дело ограничилось решением самых примитивных задач на динамику, и (спойлер) оказалось чуть менее чем бесполезным.

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

Теперь о самом процессе поступления. Отбор начинается с онлайн-теста, единственная цель которого — отсечь школьников и гуманитариев. Если вы учитесь на технической специальности и прослушали базовые курсы линейной алгебры, математического анализа и теории вероятностей, то пройти его для вас не составит труда.

За ним следуют письменные экзамены по математике и контест по программированию. Они на порядок сложнее. На контесте я сделал всего лишь одну задачу из пяти. Никогда не занимался спортпрогой и олимпиадами, так что на успех и не рассчитывал, но, конечно, было обидно. Однако удалось отыграться на математике, и решить 7 из 8.

Последний, третий этап отбора — это собеседования. В мой год они были дистанционными, через Zoom. Всего их три: по математике, по программированию и мотивационное.

Паттерн с экзаменов повторился. Собес по математике прошёл очень удачно: за полчаса я ответил на все теоретические вопросы и решил 4 задачи (две на теорвер, одну на линал и одну, взятую с каких-то школьных олимпиад). Программирование же я безбожно завалил (не смог найти следующий элемент в бинарном дереве). Видимо, в итоге мне помогло то, что я, наученный Fless-ом, складно пел песни на мотивационном собеседовании. Там спрашивали, откуда я и что могу о себе рассказать, как я представляю себе ШАД и зачем туда иду, сколько времени готов на него тратить. Один из вопросов поставил меня немного врасплох: попросили рассказать о наивысшем достижении и о какой-нибудь (необязательно худшей) неудаче. Наверное, пойди я в ШАД на год раньше, мне было бы совсем грустно в этот момент. К счастью, за 2019-2020 была пара вещей, о которых мне было не стыдно рассказать.

Мне понравилась атмосфера собеседований — не было ощущения, что меня пытаются подловить или запутать. Наоборот, собеседующий рассуждал вместе со мной и пытался подтолкнуть в правильную сторону, если я тупил.

Первый семестр

TLDR: теорвер — так себе, плюсы и линал — очень хорошо, алгоритмы — восторг

При поступлении нужно выбрать определённый трек. В мой год их было четыре: Data Science, Разработка машинного обучения, Инфраструктура больших данных и Анализ данных в прикладных науках. Я долго колебался между первыми двумя, и в итоге склонился к разработчику.

Выбор трека влияет на набор курсов, которые вы сдаёте в этом семестре. Например, разработчик отличается от DS тем, что должен закрыть курс по C++ вместо Python. На самом деле, вы можете взять оба языка, и пройти до конца тот курс, что вам больше зашёл (плавно «превратившись» из разработчика в дата-сатаниста, или наоборот). Общее правило только одно — за семестр надо закрыть не менее трёх курсов, и они должны соответствовать набору хотя бы одного трека.

Помимо полноразмерных курсов, в ШАДе есть также полусеместровые. Здесь всё логично: вместо того, чтобы закрыть один семестровый курс, можно закрыть два полусеместровых.

Мне предстояло закрыть Алгоритмы, C++, Теорию вероятностей (полусеместровый) и ещё один полусеместровый курс по выбору: Линейную алгебру или Дискретную математику. Мой выбор пал на первое.

Курс по теорверу про красивую, но довольно бесполезную математику. Пара лекций в конце выделена под математическую статистику, однако очевидно, что много за это время рассказать нельзя. Видимо, в связи с этим сейчас его убрали из списка обязательных.

На линейной алгебре было весьма интересно. Рассказывали про численные методы, про SVD-разложение, тензоры. Курс понравился тем, что тут было много практики — были лабораторные работы, где мы, например, переписали и ускорили в несколько раз библиотечную функцию вычисления плотности нормального распределения, используя рассказанные методы решения СЛАУ, и использовали SVD-разложение для сжатия картинок и визуализации.

Курс по плюсам тоже оказался полезным. Я уже неплохо знал язык, однако ещё не писал на нём длинных программ — а тут есть большие домашки (например, ray tracer и Telegram-бот). Помимо них, есть набор маленьких задач на каждую неделю, по темам лекций (классы, наследования, шаблоны и т.д.). Пожалуй, самым полезным для меня был рассказ про библиотеку POCO и основы работы с сетью.

Но, безоговорочно, больше всего мне зашли Алгоритмы. Слушать лекции Бабенко было мегаинтересно. Даже когда он рассказывал про двоичный поиск и сортировки, я всё равно узнавал для себя что-то новое (хотя, учитывая провалы по проге при поступлении, этого следовало ожидать). А потом пошли деревья, хэш-таблицы, графы… И всё это постепенно укладывалось в какую-то общую, стройную картину мира.

Были на Алгоритмах теоретические задачи, в которых надо было придумать и описать алгоритм, или доказать какую-нибудь оценку сложности. Может, на первый взгляд это покажется скучным — но да, я странный для меня это было скорее творческое задание. И очень приятно было получать в качестве результата своих стараний получать короткое, но строгое доказательство.
Да, я странный.

Были контесты, на которых приходилось решать довольно сложные (ну, по крайней мере для меня) задачи. Особенно запомнился последний, потому что к зиме мои более прошаренные товарищи уже набрали баллов на «отлично», и мне пришлось решать его полностью самостоятельно, без всяких наводок и советов. Но все часы рисования схем на бумажке, мучения над выбором имён переменных, стресс-тестирования и дебага сполна вознаграждаются счастьем от получения заветного «Ok» с первого раза.

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

В общем, первый семестр вполне оправдал мои ожидания — было нелегко, но интересно.

Второй семестр

TLDR: машинное обучение, статистика — 50 на 50, Python — класс, генеративные модели — восторг.

Как разработчику, мне нужно было взять курс по машинному обучению, а также какому-то языку программирования. Третий обязательный курс оставался на мой выбор. Я решил взять Основы статистики в машинном обучении и Python — курсы, обязательные для направления Data Science (правда, они закрывают Python в первом семестре). Кроме того, моё внимание привлёк курс от ВШЭ по генеративным моделям, который ввиду дистанционного обучения рассказывался и в ШАДе. Изначально он позиционировался как полусеместровый, однако материала в нём было не меньше, чем во всех остальных, потому под конец семестра его всё-таки засчитывали как полный.

Главная причина, по которой я взял основы статистики — хотелось научиться применять матстат на практике. Строить доверительные интервалы, проверять гипотезы и всё такое. В этом смысле курс выполнил свою цель — после практических заданий в домашках стало понятно, как это делать. Однако параллельно с этим пришлось решать довольно много теоретических задач, которые порой были муторными. Помимо этого, мне не очень понравились лекции — они выглядят скорее как набор фактов, и в общую картину в голове не укладываются.

Машинное обучение в мой год претерпело сильные изменения. Лекции Воронцова были убраны, и заменены на специально написанный для курса учебник (который, кстати, вышел очень удачным). Однако семинары мне не очень зашли. Люди, которых приглашали вести, быть может, и разбираются в своей теме, но не всегда умеют хорошо объяснять.
Лабораторные работы были очень полезными — поступая в ШАД, я уже знал весьма много о ML, но у меня было мало практики. За семестр в лабораторных мы решили три разных задачи, проходя цикл из предобработки данных и заполнения пропусков, перебора разных моделей, перебора гиперпараметров и непосредственно отправки решения в Kaggle. Именно такого мне и не хватало при самостоятельных занятиях.
Были также теоретические задания, и тесты по учебнику — довольно простые и не слишком времязатратные. В целом, недостатки скорее всего связаны с новизной курса, и со временем будут исправлены.
Кстати, начиная с 2021 года, машинное обучение перенесли в первый семестр, поставив на место, которое раньше занимала теория вероятностей и линал/дискретная математика.

Курс по Python — это место, где вам рассказывают очень много, очень разного, и всё — полезное. Git, тестирование, логирование, работа с сетью и базами данных, numpy и pandas, map-reduce, сериализация, корутины и асинхронность — это даже неполный список тем, которые покрываются в лекциях. Конечно, в таком темпе рассказать подробно не выходит, но вам дают некоторую начальную информацию и ссылки на места, где можно узнать больше. А ещё тут очень ламповые преподаватели, которые быстро отвечают на вопросы в чате, в том числе и на технические. В остальном похоже на курс по плюсам — есть еженедельные небольшие задачи по темам лекций, и несколько больших домашек (написать интерпретатор Python на Python, небольшую библиотеку для Map-Reduce вычислений и Telegram-бота).

Генеративные модели не были обязательными, но я совершенно не жалею, что выбрал их. Это один из лучших курсов, что я когда-либо проходил. Понятные и чётко структурированные лекции, в которых отдельно подчёркиваются плюсы и минусы разных подходов. Семинары, на которых всё объясняется простым языком и можно задавать любые вопросы, а также получить всякие полезные советы по написанию кода (там меня подсадили на логгеры, а конкретно на wandb — не знаю, как жил без него раньше). Интересные домашки (ураа, генерим картиночки). Единственное, что не идеально, так это распределение нагрузки. Последние два домашних задания наложились на последние пару недель, в то время как на первые два было по 3 недели. Однако преподаватели отнеслись с пониманием, и передвинули дедлайны, а затем и смягчили итоговые критерии курса.

Даже с учётом того, что я взял 4 курса, второй семестр показался мне легче. Правда, под конец семестра мотивация ботать начала затухать. Видимо, нагрузка всё-таки копится, да и концентрироваться на дистанционке тяжелее.

Помимо учёбы

Кураторы ШАДа постоянно устраивают дополнительные активности и мероприятия. На карантине проводили дистанционный Хэллоуин в Discord-е с квизом и онлайн-настолки. Весной был Безгендерный праздник (как 8 марта и 23 февраля, только по-другому) и Игротека (где можно было приносить свои настолки и не только). Ну и, конечно, Экватор для закрывших первые два семестра (с квестом, пиццей и футболками). Я не тот человек, который хорошо вписывается в подобные мероприятия, но могу сказать, что снова пошёл бы туда, будь такая возможность.

Также ШАДовцы могут смотреть разные лекции, митапы и конференции, которые проводятся Яндексом, и получают приглашения на стажировки.

А можно просто приходить в ШАД на кофепойнт и ботать там вместе с однокурсниками.

Заключение

Нисколько не жалею о том, что поступил сюда. Узнал массу нового, интересного и полезного. Приходите — будет сложно, но вам понравится)


Источник: m.vk.com

Комментарии: