Про Науку о данных на Совбаке
Продолжаем серию материалов о курсах по программированию на Совместной программе по экономике ВШЭ и РЭШ. На очереди «Наука о данных» (НОД) – обязательный для второкурсников предмет, который проходит в весеннем семестре. Мы поговорили с Таней Соболевой и Таней Сухорученковой, уже третьекурсницами Совбака, и узнали их мнение о НОДе.
Введение в структуру курса
НОД разделена на две части, каждая из которых посвящена одному языку программирования – Python или R.
В блоке Python есть как темы для нулевого уровня, например, знакомство с функциями и классами, так и для более продвинутого – декораторы и веб-скрапинг. В конце курса студенты должны предоставить финальный проект с анализом данным любой темы на выбор. Часть критериев ниже: чтобы получить максимальный балл, необходимо добавить в работу элементы машинного обучения (ML – machine learning), продвинутые библиотеки и не только.
Соня (редактор Econ.Talk) сделала проект, в котором проверяла гипотезы достоверности астрологии (спойлер: «незыблемые истины», которые можно найти в различных астрологических сайтах, на данных не проверяются). Одним из результатов стала визуализация в виде графа совместимости знаков зодиака.
Блок R занимал треть весеннего семестра и был рассчитан на начальный уровень студентов. Чтобы язык пригодился тем, кто планирует работать в R, фокус был на анализе данных. Финальным заданием стал полноценный анализ датасетов kiva (некоммерческой организации, которая финансирует нуждающихся в развивающихся странах). Целью задания было обнаружение паттернов экономически эффективной инвестиции. Соня в качестве промежуточного результата сделала карту, которая выявляет регионы с низким и высоким уровнем бедности.
Интервью с Танями :)
Какой у вас был уровень Python и R до начала весеннего семестра, и каким он стал за это время?
Таня Сухорученкова: До начала курса я немного знала Python и R, могла делать какие-то базовые вещи, которым всех учат в школе – циклы, строки, функции. Но в первом семестре второго курса я прошла курс по С++ на Совбаке (и закрыла его на 9!), а в школе учила Java. Так что немного логику программирования я знала, но все это, конечно, было далеко от стандартного понимания «работы с данными». Так что почти все, что проходилось после начальных тем – было для меня в новинку. R понимала немного к началу курса, так как проходила параллельно курс по финансам, в котором этот язык был нужен – разбиралась в нем самостоятельно.
Сейчас я могу спокойно работать на Python, если мы говорим именно про умение несложной обработки данных. В Яндекс я, конечно, сейчас не устроюсь программистом, но это и не было целью курса. Несмотря на то что я бежала от идеи программирования на работе, на стажировке мне оно все равно пригодилось.
Кроме того, сейчас я так же работаю в Лаборатории спорта, где пишу научную статью – для этого тоже нужно уметь работать с данными. Большой объем данных встречается везде, и не всегда Exсel справляется с их обработкой, а вот программирование – почти всегда. Единственное, что дается мне совсем с трудом - это парсинг данных, но это просто дело практики, которой у меня было не очень много.
Таня Соболева: До начала курса у меня был средний уровень программирования на Python. Я была знакома с синтаксисом, могла использовать функции и классы. Также у меня был нулевой уровень R, потому что до весеннего семестра он не применялся на учебе. Здесь стоит отметить, что курс «Введение в финансы», на котором были домашки, которые нужно было решать с помощью R, также повлиял на владение языком к концу семестра.
В Python был как старый, так и новый материал – из того, что я дополнительно узнала, это парсинг сайтов, декораторы, методы работы с API. Финальным заданием курса Python был проект, на котором было необходимо построение ML-моделей, использование продвинутых библиотек и методов, и это сильно прокачало мой навык. С точки зрения R, на него повлияли сразу два курса, и мой уровень с нулевого повысился до начального.
На курсе есть две части – Python и R. Как вы оцениваете их полезность для себя? Что понравилось, а что – хотелось бы изменить?
Таня Соболева: Насчет двух блоков, Python и R – в первом было несколько новых библиотек, которые, я думаю, будут применяться в работе, и часть я уже использую при анализе данных.
R сложно оценить, потому что часть по R был короткая и большую часть я знала или использовала уже на Финансах, и она не совсем была полезна для меня.
Таня Сухорученкова: Python был очень полезным. Единственная проблема – много теории и мало домашек. Я все-таки убеждена, что программирование не учится без практики, так что использовать все полученные, очень структурированные и максимально полезные в работе знания по началу было довольно сложно. Но такого не было в прошлые годы и, надеюсь, это поправят в будущем.
Курс по R мне понравился меньше – все-таки там рассказывали совсем введение, а те, кто взял курс по финансам, уже во всех базовых вещах разобрались самостоятельно. Я думаю, если бы языки программирования поменяли местами – и мы бы сначала проходили R, а потом уже Python – полезной бы оказались обе части.
Планируете ли вы дальше заниматься программированием? Как вы считаете, нужно ли Науке о Данных более глубокое погружение в отдельные темы, и если да, то в какие?
Таня Сухорученкова: Я не очень люблю программирование. Мне это умение важно для работы и исследований, так что я воспринимаю это как инструмент. Я буду развиваться в нем дальше, если почувствую, что того, что я умею сейчас, мне не хватает. Для удовольствия я бы позанималась чем-то другим.
Тем не менее хочу пройти курс по машинному обучению на Совбаке в будущем, так как это расширяет кругозор. В этом году я побоялась его брать, так как плохо знала Python – и вроде это было правильным решением.
Добавить ли что-то на курс? Я бы сказала нет, там хватает всего, что можно было бы вместить в меньше, чем один семестр, и не убить всех тех, кто не знал программирование очень хорошо до этого (как я).
Таня Соболева: Да, я хочу заниматься дальше аналитикой, в частности анализом данных. Пока что кажется, что курсу не хватает более подробного погружения в визуализацию, потому что большая часть работы аналитика посвящена именно правильному и наглядному построению графиков. Также стоит сделать больше фокус на предобработку данных, это полезно для ML-моделирования и было бы релевантно для курса.
Таня Соболева также поделилась результатом своего финального проекта Python. Она анализировала московское метро и его пассажиропоток, строила тепловую карту, выделяла факторы сезонности и подготовила продвинутую визуализацию. Ниже – часть тепловой карты, созданной Таней.