Как я выучился на разработчика в Яндекс. Практикуме
В середине июля 2021 года я оплатил курс Python-разработчик в Яндекс. Практикуме и начал свой поход в IT.
Я сразу решил, что опишу все подробности учебного процесса, понравившиеся и непонравившиеся вещи лишь после того как найду работу. Иначе всё это не имеет большого смысла. Что ж, работу нашёл — спустя неделю после выдачи диплома мне пришёл долгожданный оффер, и теперь я работаю в самом сердце Манхэттена в отличном финтех-стартапе.
Подробности про поиски своего местечка на американском карьерном рынке расскажу в одном из следующих постов, а пока — про учёбу в Яндекс.Практикуме. Надеюсь, эта заметка поможет тем, кто подумывает освоить новую профессию и выбрать правильное направление в учёбе. Погнали.
Стартовые позиции
Для начала стоит сразу рассказать о том, какой у меня опыт работы с кодом.
Всю свою профессиональную жизнь я работал с контентом — сперва журналистом в региональном СМИ, потом копирайтером в «СКБ Контуре», а дальше издательстве «МИФ», затем контент-маркетологом в Яндексе и ответственным за весь контент в Jivo.
То есть с одной стороны, я всегда был вовлечен в контент, а с другой — большая часть компаний, в которых я работал, так или иначе была связана с IT-индустрией. Более того, везде с нами в команде был один или несколько разработчиков, с которыми я тесно общался и работал.
Я имел представление, как строится процесс разработки, какие языки программирования существуют, и где они применяются. Ну и всё вокруг IT мне тоже было непонаслышке знакомо — Jira, Agile, Slack, Github и прочие штуки, которые так активно используются для организации разработки. Кроме того, я пару раз пробовал учиться вёрстке, а также умел создавать небольшие проекты на Tilda и WordPress.
Так что совсем уж далёким от мира IT я себя назвать не могу, но и сходу написать пару строк в терминале на момент начала обучения бы тоже не смог.
Со стартовыми позициями разобрались, пойдём дальше.
Почему бэкенд
Почему-то мне казалось, что выбрать путь посложнее — это лучший вариант. Заставит мозг больше страдать и больше работать. А так как у меня уже были познания в основах фронтенда, то выбор был прост — я пошёл учиться на Python-разработчика.
Кроме того, в выборе первончального языка сыграл тот факт, что ещё перед началом обучения я решил сделать небольшое приложение. Когда-то у меня были часы, которые пикали каждый час, и я хотел вопроизвести точно такую же функциональность на своём компьютере. Во-первых, это помогает сосредотачиваться и понимать, нужным ли делом я занят в этот конкретный момент. Ну и во-вторых, это позволило мне понять, чем я хочу заниматься.
Прогуглив разные варианты, я решил попробовать Python. Через пару сложных деньков я смог скомпилировать свой скрипт и безумно порадоваться результату. Именно в этот момент я и решил, что хочу изучить Python и научиться делать ещё немало классных вещей.
Почему Яндекс. Практикум
На поиск курсов я много времени тратить не стал и почти сразу выбрал Яндекс.Практикум. Во-первых, я работал в Яндексе и искренне люблю их продукты. Во-вторых, сам подход к обучению и программа курса показались мне наиболее интересными и полезными. Ну и ещё они снимают великолепные видеокейсы, которые безумно вдохновляют.
В какой-то момент я пытался найти хороший англоязычный буткемп, но их стоимость была уж слишком запредельной. Хотя под конец обучения я открыл для себя Scrimba, и полагаю, что они могли бы быть неплохой альтернативной Практикуму. Но с другой стороны, по ощущениям, у Яндекс. Практикума было больше вовлечения и фидбэка.
Так что в июле 2021 года я заполучил у друзей 10% скидку, оплатил курс и стал ждать начала учёбы.
Как всё устроено
Вводные данные такие — учёба длится 9 месяцев, в каждой группе около 150 человек, спринт состоит из двух недель. За этот период предстоит разобраться в теории и решить пару практических заданий, которые проверяет ревьюер. Часть материала подаётся через тренажёр, который позволяет попрактиковать свои навыки кодинга сразу в браузере, что весьма удобно. Весь материал поделён на модули, в конце каждого из которых какой-нибудь сложный проект. А завершается всё дипломом.
За время учёбы предстояло освоить основы Python, разобраться в Django, сделать пару Телеграм-ботов, создать социальную сеть, научиться находить путь к API, захлебнуться в алгоритмических задачах, перестать бояться работать с сервером и сделать сложнейший диплом.
Звучит вполне круто, поэтому давайте остановимся на плюсах и минусах.
Что понравилось
Практикум — продукт Яндекса. Поэтому в образовательном процессе многие вещи построены с пониманием того, в каких условиях студентам предстоит работать в будущем.
Система со спринтами. Думаю, если бы я не работал в IT-компаниях, то весь этот эджайл и спринты вызывали бы немало удивления. Так что очень круто, что все модули разбиты на двухнедельные спринты, в течение которых необходимо изучить теорию и пройти все задания. Всё как в реальной IT-жизни.
Ревью. Все проекты проходят через ревьюера, который подмечает положительные моменты, указывает на ошибки и даёт советы по улучшению кода. Это одна из тех особенностей Практикума, которая безумно подкупает.
Ну и как мне кажется, мне попался просто великолепный ревьюер, который всё очень чётко объяснял и подбадривал, когда дела шли не очень хорошо. Это было очень приятно.
Практика. Очень круто, что Практикум сосредоточен на практике. Привычка каждый день писать код появляется с самого начала и сохраняется на протяжении практически всего обучения.
Нетворкинг
В каждой когорте находится около 150 студентов. А это отличная возможность познакомиться с интересными людьми.
Например, во время командного проекта мне удалось познакомиться с инструктором по горным лыжам, который решил вкатиться в айти, а сейчас и вовсе переехал в Аргентину (привет, Андрей 👋🏻). И я даже не представляю, как бы мне удалось закончить этот образовательный путь, если бы не его помощь и поддержка.
Академ. У каждого студента есть возможность взять академический отпуск. Даже два. Нужно просто предупредить куратора, и он переопределит вас в другую когорту.
Я использовал обе возможности — сперва на теме с алгоритмами, которая как раз совпала с моим переездом в США, а во второй раз во время диплома. Уж очень он был сложным и требовал огромного количества времени.
Что не понравилось
Конечно, обошлось не без минусов.
Вебинары. Довольно часто вебинары были какими-то хаотичными мероприятиями, где хардкорные разработчики унылым голосом пересказывали теорию более сложным языком и показывали как решить пару примеров.
Я поучился в трёх когортах, и лишь в самой первой была преподавательница, которая действительно заботилась о качестве лекций и старалась сделать так, чтобы все всё поняли. В остальном — вебинары для меня были практически бесполезными.
Сбои. Ещё весьма подбешивали тормоза тренажёра, но надо признать, что такое случалось буквально пару раз за время обучения.
Но один раз платформа подвела очень сильно. Я работал над командным проектом с двумя другими студентами. Через несколько итераций мы вновь отправили проект на проверку, получили заветную гифку и выдохнули. А через пару дней мне написал ревьюер и уточнил, почему мы не доделываем проект.
Оказывается, случился какой-то сбой и мне ошибочно пришёл «одобрительный» имейл. Было обидно и пришлось очень быстро все исправлять, чтобы не отстать от потока.
Секция про алгоритмы и структуры данных. Это то, что удалось хуже всего. Дело в том, что это самая сложная тема на всем курсе, и реализована она хуже всего. Почему-то именно в этот момент ребята из Практикума решили не запариваться за контент, и просто перекидывают студентов на площадку «Контеста», которая используется для решения задач на олимпиадах.
Другими словами, для неподготовленного студента (которым я и являлся) всё это выглядело как классический способ научиться
плавать, когда человека просто скидывали в воду. Чувствовал себя просто отвратительно на протяжении всего модуля. И был зол до такой степени, что во время финальных задач попросил помощь у своего друга, который и помог закрыть все пробелы.
Надеюсь, в будущем ребята переделают этот модуль.
Важные и не очень вещи, о которых стоит упомянуть
В интернете полно историй о том, как люди с нуля получали заветные оферы буквально через неделю после начала обучения. Также немало рассказов про ребят, которые не могут устроиться на работу спустя годы обучения. Я полагаю, что все зависит от времени и усилий. Ну и некоторых других аспектах, которые могут повлиять на успех как в обучении, так и в последующем поиске работы.
Время на обучение
Спустя месяц после начала обучения я уволился с основной работы, чтобы полностью сосредоточиться на этом самом обучении, ну и на предстоящем переезде. Так что можно сказать, я был фуллтайм погружен в учёбу, хотя перемещения между странами, война и поиск работы, безусловно, забирали огромное количество моральных сил и времени.
Пет-проекты
Я себя немного знаю, поэтому сразу решил, что свой прогресс смогу измерить пет-проектами. Так что в свободное время я частенько придумывал весёлые или полезные мини-сервисы, которые помогли бы мне прочувствовать полученные знания.
Вот парочка из них:
5minstory — коллекция коротких рассказов на английском языке. Можно подписаться и получать каждый четверг по одному короткому рассказу на почту (скрипт крутится на моём Raspberry Pi).
Tab Notes — простейший заметочник в новой вкладке браузера.
Лайфнометр — таймер, который подскажет, сколько времени вы НЕ залипаете в компьютере или телефоне. Если свернёте страницу, переключитесь на другую вкладку или приложение, то таймер обновится.
Ах да, ещё однажды я сделал сервис, который проверяет, кот я или нет.
Конечно, во многих из них всё довольно плохо со структурой кода или они вообще не оптимизированы и работают очень медленно. Но зато каждый из этих пет-проектов вывел меня на новый уровень и помог стать чуточку увереннее.
Вспомогательный ресурсы
Тут нужно сразу понимать, что информации, которую получаешь только на Практикуме, явно недостаточно. Дело в том, что в реальной жизни у компаний могут быть самые разные требования, да и просто невозможно уложить всё в один курс.
Так что я очень даже активно смотрел видео на Ютюбе, изучал дополнительные (бесплатно!) материалы на Freecodecamp, TOP и моём фаворите — Scrimba. Кроме того, за время обучения прочёл около десятка книг как по Python и Django, так и по поискам работы, прохождению интервью, работе с Git
Ещё я ходил на всевозможные виртуальные митапы. То есть находил что-то подходящее на MeetUp, слушал лекции, добавлял людей на LinkedIn и старался вникать в сообщества.
Ах да, в самом начале пути в Вастрик. Клубе я нашёл себе сеньора-ментора, с которым мы обменивались знаниями — я ему рассказывал про работу с контентом, а он — помогал разобраться со сложнейшим миром программирования. Созванивались каждую неделю и немало чему друг друга научили. Даня, привет 👋🏻
Смена пути
Самое забавное, что я так и не стал Python-разработчиком.
Примерно после середины обучения я понял, что даже в своих проектах мне интереснее работать над идеями и внешними составляющими, чем копаться в «кишках» и настраивать работу роботов.
Через несколько недель обдумывания я себя переизобрел и начал параллельно основной учебе, постигать основы JavaScript. В итоге, круг замкнулся, мне полюбился фронтенд, и работу я стал искать именно в этом направлении.
Таков был мой путь. В противном случае, мне кажется, я бы вообще не пошёл учиться. А так — завладел основами Python, погрузился в формирование архитектуры проектов, и уже с какими-то минимальными знаниями сделал осознанный выбор в сторону React.
Как говорится, познав основы одного языка, другие даются значительно легче. Так произошло и со мной.
Что в итоге
В итоге, Яндекс. Практикум — великолепный сервис, который позволил мне обрести новую профессию. Да, тут было немало минусов, да в середине пути я вообще решил сменить направление и погрузиться в другую сферу. Но мне по-прежнему кажется, в русскоязычном пространстве нет ничего лучше для первого шага в айти.
Но самое сложное в обучении новой профессии — это найти работу. В начале этого поста я написал, что получил оффер спустя неделю после завершения обучения, но сперва я потратил полгода ежедневных откликов на работу, прохождения интервью, выполнения тестовых заданий и сотен отказов. Но об этом — в следующий раз.