Немного про проекты

Anastasia Shu
nastia shu
Published in
9 min readJul 12, 2020

В апреле я закончила одну из своих небольших ступенечек в непрерывном процессе взросления — анализ данных от Яндекс.Практикум.

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

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

Когда я выбирала где же я хочу освоиться в аналитике, выбирала то место где я смогу попрактиковать и собрать портфолио (а уж если его проверят, то это вообще amazing!).

Дисклеймер: дальше будет много скринов

Спринт

Всё обучение строится на спринтах. Две недели — один спринт.

В течение недели вы не спеша проходите теорию и после в завершение делаете проект. Общаетесь в слаке с одногруппниками и преподавателями.

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

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

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

Консультации мне нравились. Всегда находятся интересные вопросы и с удовольствием слушаешь их. Ближе к теме с автоматизацией наставник делал лайвкодинг — где он в прямом эфире показывал как разворачивает базу sql, или пишет дашборд. Честно, это были два единственных эфира, которые я смотрела в записи и это было сложно. Сложно в том плане, что очень долго смотришь весь разбор. Рекомендую смотреть прямой эфир, чтобы задавать вопросы по ходу действия :)

Лично для меня такой формат со спринтами не самый удачный, я люблю заниматься в своём темпе, а темп у меня скачет — я могу пару недель заниматься не отрываясь, а затем пару недель открывать по полчаса-час. И снова по кругу.

Сейчас проходя уже второй курс Практикума я снова сталкиваюсь с тем, что у меня остается целая неделя в запасе и я ничего не делаю в плане учебы. Естественно можно делать pet-projects, искать дополнительные материалы по теме, но хочется узнавать новое и сразу применять это на практике. Очень надеюсь, что однажды курсы можно будет проходить в своём темпе и не быть привязанным к дедлайнам.

Стоит, конечно, обратить во внимание тот факт, что спринты приближены к рабочим ситуациям. На работе могут быть аджайл- или канбан-подходы, но сомневаюсь, что если вы на работе сделали часть проекта раньше времени то вам скажут — “ждем до понедельника, продолжать рано”.

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

Анализ данных

На курсе Аналитик данных все проекты выполняются в Jupyter Notebook, — да, вот такой вот космос — невероятно мощный помощник для интерактивной разработки и по большому счету создан для представления проектов в области data science (туда же data аналитика). Продукт бесплатен и ты видишь сразу плод своих наработок. Выглядит как документ word с возможностью создавать ячейки с кодом и сразу же их запускать.

Есть безусловно и аналоги, тот же Colab. Но это продукт Google, так что сами понимаете.. :) Но это классический инструмент, так что ничего плохого в этом не вижу)

Честно, пока не представляю кто в работе будет смотреть в тетрадки jupyter’а, но это удобно. Ты можешь действительно написать целое исследование (а порой и расследование), сопроводить его громоздким кодом и при необходимости скрыть (придётся попыхтеть и поставить расширения), в общем-то удобно.

На работе Jupyter мне так и не пригодился по двум причинам:

  • в компании ценят всё еще microsoft office (да, даже если бы я работала с jupyter, мне в любом случае необходимо приводить результаты исследований в презентациях, табличках excel и делать заключения в формате сопроводительных записок в word)
  • ну и главной задачей являлось разработка веб-приложения для аналитики (тетрадки юпитера тут не нужны)

Ну, и на собеседованиях все свои проекты я выкладывала на github и рендерила через nbviwer. В общем, там я сейчас делаю что-то скорей для себя, чем для других.

Спешу расстроить (или обрадовать) в Практикуме на всех факультетах разные способы сдачи проектов. Мне есть с чем сравнить : на аналитике мы работали прям с сайта Практикума в юпитере — писали код, обязательно делали оглавление и тут же писали свои мысли и делали выводы, далее ревью получаем прям в этом же файле с возможностью скачать и поработать локально или просто сохранить на память. А вот на backend мы работаем через github (как только вы доходите до проекта создается приватный репозиторий, в котором выполняется проект), а результаты ревью уже отслеживаешь на сайте.

Ревьюеры просят делать оглавления, оно и правильно — легкая навигация никогда не навредит. Ниже пример интерактивного меню для выпускного проекта.

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

Так вот, например, в курсе Python-разработчик вы уже пишете локально у себя проект (VSCode или что-то другое), пушите его на гитхаб, и только потом наставник или ревьюер проверяет. Но об этом позже..

Само обучение строится на Анализе данных постепенно, каждый из кирпичиков (этапов) анализа данных рассматривается отдельно. Сначала предобработка, затем исследовательский анализ данных, отдельно гипотезы и т.д. Все с проектами и обсуждениями. Сначала может показаться, что обучение строится немного хаотично, но это не так. И надо признать, искать дополнительно информацию/читать документацию/серфить по stackoverflow придется где-то 30–40% времени.

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

А проекты проходят code-review. Практикум обещает, что проверять будут действующие ведущие аналитики, они же будут наставниками.

Проверка обычно занимает не больше 24 часов, первые проекты проверяли спустя 12 часов, в конце приходилось ждать по несколько суток (но не дипломный — дипломный проект мой тимлид проверил мне за 10–13 часов. Дарина, спасибо!)

Что касается самого ревью. В целом проверкой ревью я на аналитике не была довольна — меня либо хвалили, либо оставляли сухие односложные комментарии или вообще часть комментариев могли не прийти. Как я это пережила? Я писала куратору. Много. Это было больно читать, мне кажется. Меня перепроверяли!! Все мои просьбы перепроверить, посмотреть и узнать как там дела удовлетворялись.

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

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

А было и такое, что писали просто “Хорошо”/”Верно”/”Ок”.. можно перечислять бесконечное количество синонимов и того какие это эмоции вызывает.. Это просто было.

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

Вот пример тех кто косячил слабо :) Тут я решила отличиться и сделать что-то интересное, и вроде бы я поняла как этим пользоваться, но говорят плохо читаемый график.. коллеги, чем заменить? Джун пускай сам придумывает.

(Почему косяк был слабым? Потому что в остальных комментариях ревью были рекомендации, советы. В паре мест вот такие комментарии и было непонятно, что делать дальше. А работа, к слову, была принята)

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

Python-разработчик

Решила после окончания курса Аналитик данных усовершенствовать свои навыки с python (и дать второй шанс на ревью) — просто захотелось хард-прокачки + есть время и силы пройти курс.

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

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

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

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

Работа над ошибками была проделана хорошая, я считаю. Код стал для меня более читаемым и понятным, ушли дубли вычислений (я перечитала три кита ООП и принципы DRY, DIE, KISS, SOLID, YAGNI. Для себя я точно усвоила как оптимизировать всё в дальнейшем.

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

Отдельно отмечу наличие канала в слаке, посвященному вопросам по проектам (он есть на любом курсе Практикума). Студенты могут задавать вопросы, а наставники и другие студенты могут отвечать, тем самым помогая разобраться в вопросах.

По сравнению с аналитикой, мне кажется даже первый проект достаточно сложный будет для новичков, 70% времени ты ищешь лайфхаки с PEP8, думаешь про генераторы, методы и классы. И это учитывая тот факт, что в теории достаточно хорошо рассказанопро то как устроены методы и классы. Проект на 100% позволяет погрузиться в материал, разобрать всё то, что было не так явно и собственно на ура закрепить теорию на практике.

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

Куратор и наставник увидит ваши вопросы, постарается найти на них ответы, а ревьюер проверит вашу работу, за которую не будет стыдно.

--

--