Найти тему
Горящая изба

Эксперимент: редактор Burning Hut пробует освоить Python и анализ данных с нуля

Оглавление

Эти редакторы постоянно пишут в своих статьях: ребята, изменить свою жизнь несложно, просто следуйте нашим советам! Всего пара часов в день, и бац — у вас новые здоровые привычки, новое спортивное тело, новая профессия… 

Этой весной мы начали сотрудничать с Яндекс.Практикумом — сервисом онлайн-образования, где можно выучиться востребованным ИТ-специальностям от разработчика до интернет-маркетолога или освоить навык разговорного английского. Мы писали о том, что поменять профессию и уйти в сферу ИТ можно без специального образования и какого-то особого склада ума (и даже в декрете) — и находили истории, которые это подтверждают. Но решили, что пора самим проверить своё же утверждение о том, что «начать учиться можно, даже если вы вообще ничего-ничего не знаете про программирование».

Привет! Меня зовут Таня Никитина, я главный редактор Burning Hut и подопытный кролик этого эксперимента

Я выбрала курс «Аналитика данных» и прошла первые 20 часов — это бесплатная вводная часть, которую вы тоже можете начать проходить хоть сейчас. Никакого опыта в этой специальности у меня нет: по образованию я журналист, всю свою жизнь работала с текстами, а с цифрами сталкиваюсь только при составлении отчётов в конце месяца. Так что мне немножко страшно, но жутко интересно.

Что делает аналитик данных

Если коротко, то берёт информацию и делает из неё выводы. Для этого он её структурирует, ищет закономерности и проверяет гипотезы. А чтобы делать это быстро и без ошибок, использует специальные инструменты: язык программирования Python и его библиотеки, Jupyter Notebook и SQL (да, я пока тоже тут не все слова понимаю). Результаты работы аналитика помогают принимать решения в бизнесе, управлении и науке.

Почему я решила учиться анализу данных

  • Чтобы быть лучшим редактором. Жизнь редактора состоит из постоянных размышлений о том, как писать статьи, которые будут лучше читать: на какие заголовки и обложки чаще кликают? почему подборки заходят лучше других форматов? почему никто не пишет комментарии под тестами? Одной чуйки недостаточно, когда нужно обработать большой объём данных или проверить гипотезу с несколькими условиями. 
  • Чтобы дополнить портфолио. В жизни всякое бывает, и ИТ — та сфера, в которую не страшно вкладывать своё время и ресурсы, потому что специальности год за годом остаются в топе востребованных. 
  • Чтобы испытать себя. А вот и личный мотив: я не раз спорила со старшим поколением о том, что профессия журналиста, как и другие гуманитарные специальности, — это нормальный сознательный выбор, а не вынужденный путь человека (читай: девочки), не способного к точным наукам. И что я всё могу, просто хочу вот это. Ну вот и посмотрим!

Чего я жду от курса

За 20 часов занятий обещают научить базовым инструментам анализа данных — познакомить с основами программирования на Питоне, аналитической библиотекой Pandas и средой программирования Jupyter. Другими словами, дать большую дозу теории и практики и помочь понять, стоит ли вообще платить деньги и ввязываться в долгое обучение. 

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

Уже понятно, что не обойтись без математики — это меня немножко пугает. Я её, в целом, любила, но последний раз делала что-то сложнее подсчёта процентов по вкладу в 11-м классе, то есть около 10 лет назад. Надеюсь, меня не заставят считать интегралы в первом уроке!

Неделя 1. Первые впечатления, ошибки и ощущение всесилия

Первое, что меня удивило: никакой раскачки. Мне сказали, что в следующие 2,5 часа я научусь основам Питона и должна посчитать, как популярность разных языков в мире соотносится с их популярностью в интернете. Дали табличку с информацией про разные языки, и обучение началось.

Так выглядят уроки. Слева — теория, справа — рабочая область, где нужно писать код. Теорию объясняют простым языком и с самых основ
Так выглядят уроки. Слева — теория, справа — рабочая область, где нужно писать код. Теорию объясняют простым языком и с самых основ

Практика начинается с первых минут и помогает преодолеть страх чистого листа.

Сначала тебе говорят: просто напиши то же самое, что в задании. Потом просят повторить то же самое с другими данными. И уже в третьем задании тебе просто говорят: посчитай. Полчаса прошло, а я уже считаю с помощью Питона 😱

Код проверяет программа. А иногда ещё шутит или подбадривает
Код проверяет программа. А иногда ещё шутит или подбадривает

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

«Ошибки — это нормально. С ними сталкиваются все разработчики. Поэтому важно научиться понимать, в чём ошибка, и её исправлять»
из курса Яндекс.Практикума

Я так осмелела, что стала экспериментировать и делать не только то, что задавали в задаче. Тренажёр работает как реальная рабочая область: можно писать там любой код и запускать его сколько влезет. А потом сбросить всё и выполнить задание начисто. 

Кто помогает, если задача никак не получается

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

На 18-м уроке я впервые серьёзно запнулась, минут пять искала ошибку, потеряла терпение и пошла писать в поддержку. Через три минуты мне ответили! Правда, за это время я сама нашла ошибку. Вывода два:

  • Поддержка супер! Это в бесплатном-то курсе кто-то моментально откликнулся, посмотрел мой код и помог найти проблему! 
  • Стоит попробовать не сдаваться подольше пяти минут 🙄
Скриншот чата с поддержкой. Я подумала, что это бот, и как-то без привета зашла, а там живые вежливые люди. Неловко!
Скриншот чата с поддержкой. Я подумала, что это бот, и как-то без привета зашла, а там живые вежливые люди. Неловко!

Чему я научилась за первую неделю

  • Использовать Питон для решения простых примеров и выводить результат в понятном виде.
  • Применять функции. Функции — это такие встроенные в Питон программы, которые выполняют определённое действие. Например, функция print выводит на экран, а format — форматирует данные.
  • Работать со списками данных: применять к ним простые команды (например, суммировать все элементы списка) и выводить в виде понятных табличек.
  • Разговаривать на ИТ-языке. Уже на второй день занятий я имела длинную дискуссию со своим другом-программистом про массивы и структуры данных. А ещё узнала из урока пару жаргонных слов (вы знали, что самые частотные случаи статистики называют «клюв», а все прочие — «хвост»?), так что ещё немного — и смогу сойти за своего.  

Первые выводы 

  • Очень удобный формат занятий: за 2,5 часа уроков я вообще не устала, так как проходила их в своём темпе. Я позанималась полчаса и поставила подниматься тесто для пиццы, ещё полчаса позанималась — приготовила и поставила пиццу в духовку. За первый день я узнала кучу всего, что не знала вчера, и это было как приятные упражнения для ума между делами. Интересно, получится ли держать темп с уроками в будни, но теперь мне уже не так страшно 🙂
  • Это максимально дружелюбный курс, на котором вообще не страшно ошибаться. Количество ошибок не ограничено, и можно сколько угодно экспериментировать, чтобы найти решение. И никто-никто не знает, смотрел ты подсказки или нет, это ни на что не влияет. Ничего не сгорает, у тебя не отнимают жизни и не ставят баллы. Просто делаешь, пока не сделаешь. Вот бы в школе так! 
  • Время на прохождение курса рассчитано с запасом: почти все уроки я проходила быстрее, чем было написано, при том что не торопилась и довольно много ошибалась.
  • В конце уроков дают шпаргалки по пройденному: я сначала всё конспектировала, но оказалось, это уже сделали за меня.
  • Такая дружелюбная и оперативная поддержка, что я чуть не расплакалась!

Выбрать курс

Неделя 2. Задушевные беседы с кодом и объяснения на шоколадках

До этого я занималась в выходные. Но в эту субботу мне предстоит увлекательная поездка на огород к родителям, так что свои учебные часы нужно отработать в будни.

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

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

Эта строчка на человеческом языке звучит примерно так: «дружок, возьми список data, примени к нему метод sort, и я сейчас дам тебе ключ: для сортировки возьми третий элемент каждой строчки и расставь их по убыванию, и да, я действительно этого хочу» 
Эта строчка на человеческом языке звучит примерно так: «дружок, возьми список data, примени к нему метод sort, и я сейчас дам тебе ключ: для сортировки возьми третий элемент каждой строчки и расставь их по убыванию, и да, я действительно этого хочу» 

Я думала, что мои мозги просто сломаются, когда прочитала, что если попросить программу напечатать диапазон ячеек 4–7, она напечатает четвёртую, пятую и шестую (а седьмую нет). Но тут меня спасло сравнение с шоколадкой: 

«Чтобы понять, почему разработчики Python так сделали, давайте представим плитку шоколада с нумерованными дольками. Срез 4:7 означает, что шоколадка ломается перед четвёртой долькой и перед седьмой»
из курса Яндекс.Практикума

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

А вот ещё пример задачки. Особенно мило, что ребята действительно объясняют ВСЁ. Ну да, ты учишься программировать и считаешь уравнения с помощью функций и методов, но мы на всякий случай объясним тебе, что такое убывание 
А вот ещё пример задачки. Особенно мило, что ребята действительно объясняют ВСЁ. Ну да, ты учишься программировать и считаешь уравнения с помощью функций и методов, но мы на всякий случай объясним тебе, что такое убывание 

Чему я научилась за вторую неделю

  • Применять методы — это такие функции, которые работают с определённым типом переменных. Например, метод sort сортирует данные по выбранному параметру и работает со списками.
  • Сортировать данные в таблицах: добавлять новые столбцы и выбирать интересные строки.
  • Нормировать результаты в таблице — для случаев, когда сравниваешь с тёплое с красным и нужен какой-то единый критерий. 

Неделя 3. Гордость и отчаяние 

Если честно, то тут должен быть пропуск на пару недель — мир медиа ожил после карантина, а наш редактор Эля ушла в отпуск, так что мне было немножко не до аналитики. Но сделаем вид, что ничего не было.

Первый день занятий после перерыва был тяжёлым: наступила паника, что я всё забыла, ничего не понимаю и, чтобы написать отзыв про курс, мне придётся проходить его заново. Я уже не разговаривала с кодом, а просто кричала на него: «Ну почему-у-у ты не работаешь?» Но гордость не позволяла мне писать в поддержку слишком часто, поэтому я просто попробовала всё что можно, и спустя полчаса оно заработало! Ощущение решённой головоломки и а-а-а-а-а, вот почему! — бесценно. Вспомнила, что вообще-то люблю учиться.

Тем временем я продвинулась достаточно далеко, чтобы начать забывать выученное. К счастью, в уроках очень вовремя начали появляться подсказки с теорией из прошлых уроков: вместо того чтобы листать назад, можно просто кликнуть на термин.

Я уже приготовилась копаться в шпаргалках, но всплывающее окошко напомнило, как работает функция сортировки. Спасибо, ребята
Я уже приготовилась копаться в шпаргалках, но всплывающее окошко напомнило, как работает функция сортировки. Спасибо, ребята

На этой неделе я изучала условия и функции. Задачка была интересной и снова жизненной: нужно было посмотреть, какие фильмы получали «Оскар» последние 30 лет, и выяснить, как менялись предпочтения киноакадемии.

Интересное из результатов анализа

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

Чему я научилась за третью неделю

  • Создавать свои функции и использовать несколько функций в одной программе.
  • Ставить функциям условия: если что-то работает так, сделай это, а если нет — вот это. 
  • Анализировать результаты работы с данными: искать критерии для сравнения, отмечать необычное, формулировать гипотезы.

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

Моя шпаргалка и мой кот (он тоже помогал)
Моя шпаргалка и мой кот (он тоже помогал)

Неделя 4. Финальный рывок

Моя неорганизованность привела к тому, что на последнюю неделю остался самый большой и сложный блок: мне предстояло изучить библиотеку Pandas, научиться предобработке данных (это значит удалить мусор, привести названия столбцов к одинаковому виду и избавиться от повторов в табличке) и сделать самостоятельный проект — провести анализ уже не в тренажёре, а в Jupyter Notebook, который используют настоящие программисты.

Самостоятельный проект — это, по сути, решение тренировочной бизнес-задачи. У меня была такая: выяснить, отличаются ли чем-то музыка, которую люди слушают в разные дни недели, на примере Москвы и Питера. Из таких задач потом вырастают вот такие интересные исследования. У меня были в основном простые количественные вопросы: какой жанр чаще слушают в понедельник в Москве, а какой в Питере? В какой день недели музыку слушают больше? 

Интересное из результатов анализа

Из ожидаемого: все, везде и всегда больше слушают попсу. Из неожиданного: в Москве музыкальные дни — это понедельник и пятница, а в Питере больше прослушиваний почему-то по средам 🤷‍♀️

Финальная проверка — это одновременно шанс ещё раз всё повторить и запомнить. Каждый раздел посвящён отдельной стадии анализа данных на основе всех пройденных уроков: предобработка данных, анализ, представление результатов исследования. Я обложилась распечатанными шпаргалками и сделала всё примерно за 2 часа. 

Примерно так это выглядело (бокал — для воды, лапа кота — для души)
Примерно так это выглядело (бокал — для воды, лапа кота — для души)

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

Чему я научилась на финальной неделе

  • Очищать данные от мусора: у аналитиков есть мудрый  принцип GIGO (от англ. garbage in — garbage out, буквально «мусор на входе — мусор на выходе»). Это значит, что при ошибках во входных данных даже правильный алгоритм работы выдаёт неверные результаты. Теперь я знаю, какие бывают типы мусора в данных и как его почистить.
  • Делать наглядные красивые таблички с отчётами с помощью библиотеки Pandas. Никак не могла полюбить эксель, так что, кажется, мы с ними подружимся. 
  • Создавать проект в Jupyter Notebook — результаты оттуда можно сохранить и положить в портфолио.

Выводы по итогам курса

Полезное для жизни

За 20 часов курса я узнала, как строится исследование данных бизнеса с выводами, которые можно использовать для принятия решений. Кажется, если у меня будет готовый csv-файл с данными, я смогу его грамотно подготовить и провести какое-нибудь небольшое исследование. 

Я научилась смотреть на таблицы с данными в целом, структурировать их и искать закономерности. Раньше я бы ни за что не подступилась к таблице с 67963 строками (а в одной из задач такая была), а теперь буду знать, с какой стороны взяться. 

Недостатки

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

Ещё меня научили, что ошибаться не страшно, но, кажется, нигде не научили читать код ошибки. Это когда делаешь что-то неправильно и программа ругается непонятными словами на полстраницы. Вот тут мне пришлось погуглить, что значит, когда что-то not defined.

Формат обучения

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

Кстати, поддержка помогает не только с простыми вещами вроде поиска ошибки в коде: я пробовала задавать и более фундаментальные вопросы по теории, и ребята дружелюбно всё объясняли. Правда, иногда всё равно было непонятно: некоторые сложные вопросы хотелось обсудить голосом. В таких случаях я просила помощи у друзей. Мне кажется, берясь за такой формат обучения, стоит иметь хотя бы одного знакомого, который что-то понимает в Питоне.

Что дальше

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

Там всё по-взрослому: у вас будет наставник и одногруппники, а работы будет проверять человек, а не робот. Если учиться по 10 часов в неделю, то через полгода вы уже сможете искать работу младшим аналитиком и показывать небольшое портфолио — этот же самый наставник поможет грамотно его оформить и включить в резюме.

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

Начать учиться