Стажировка на mkdev: как проходит и отзывы трёх участников
Количество кода mkdev, который нужно поддерживать и расширять, постоянно растёт. Изначально разработкой занимался только я, но в какой-то момент стали очевидны недостатки такого подхода. Если коротко, то эти недостатки суммируются простой фразой: «Кирилл не резиновый». Встала задача отдать хотя бы часть разработки на аутсорс. На mkdev мы обучаем людей в формате менторства. Почему бы не оформить саму разработку mkdev в таком же формате? Так появилась наша программа стажировки.
Программа стажировки на mkdev
Раз в 3-6 месяцев мы объявляем очередной набор стажёров. Мы редко берём больше двух новых стажёров. Чаще всего это и вовсе один человек. Условия участия в стажировке максимально простые:
- умение на базовом уровне программировать на Ruby;
- общее представление о том, что такое Ruby on Rails;
- горящие глаза, желание развиваться на максимальных скоростях.
Соответствие первым двум условиям мы можем проигнорировать, а вот без горящих глаз попасть к нам сложно.
Что делает стажёр после того, как мы решаем его взять и проводим onboarding? Он становится полноценным разработчиком проекта. Мы не даём стажёрам синтетических или неважных задач, а сразу бросаем их в бой, сразу нагружаем актуальными для проекта задачами.
В начале у стажёра нет права выбора. Но уже после первых двух-трёх выполненных задач стажёр волен выбирать любые из имеющихся. Без такой возможности выбирать задачи разработчику быстро станет скучно.
Задачи самые разные:
- рефакторинг;
- багфиксы;
- написание новых фич;
- разработка инфраструктуры;
- проведение proof of concepts.
Обычно стажёры совмещают работу с нами и основной вид деятельности, поэтому мы не ожидаем, что кто-то будет сидеть с 8 до 5 и впахивать на нас. Чаще всего стажёр тратит на нас что-то в районе 10-20 часов в неделю, размазанных по поздним вечерам, выходным и когда угодно ещё - нас это, на самом деле, мало интересует.
Зачем проходить стажировку на mkdev
В этот момент становится очевидно, что за стажировку на mkdev никто не платит. И возникает резонный вопрос: зачем кому-либо работать на нас бесплатно?
Есть множество причин это делать:
- Стажировка на mkdev - полноценная работа над настоящим проектом. Поэтому весь срок стажировки можно смело добавлять в своё резюме. А пустое резюме - одна из самых больших проблем начинающих разработчиков.
- Во время стажировки ты получаешь бесплатное менторство от всей команды mkdev. Все стажёры тесно работают с сооснователем проекта (мной), получают тщательное ревью всего кода и имеют возможность задавать мне и другим членам команды любые, необязательно связанные с mkdev, вопросы. А как мы знаем, менторство на mkdev дорогого стоит.
Конечной целью стажировки на mkdev является устройство стажёра на полноценную оплачиваемую работу в другую компанию. Как только мы понимаем, что стажёру пора работать за деньги, мы заставляем его (или её) искать работу. С поисками мы активно помогаем и используем наши связи. Нам не нужны вечные рабы.
Задача стажировки - максимально прокачать свои навыки за 3-6 месяцев, расширить резюме и быстро уйти работать за деньги. И когда это происходит, мы ищем новых стажёров.
Истории и отзывы стажёров
За последние несколько лет через mkdev прошёл не один стажёр и все они сейчас работают в других местах и за деньги. Мы попросили трёх из них рассказать о своём опыте стажировки у нас. Эти три истории и пойдут ниже.
Олег Никиташин
До программирования на Ruby я был инженером-проектировщиком и занимался моделированием и расчётом строительных конструкций. Однако работа не приносила желаемого удовольствия, и источник мотивации стал постепенно угасать.
Всерьёз озадачился сменой профессии в июле 2016 года. Ещё в школе делал какие-то базовые вещи на HTML/CSS, поэтому выбор пал в сторону веба. С основами технологий решил ознакомиться самостоятельно, для этого пошёл стандартными путями: статьи, туториалы, подкасты, YouTube. После нескольких месяцев изучения доступных вариантов, заинтересовался Ruby и логичным путем наткнулся на mkdev. Осенью записался к ментору и прозанимался в общей сложности три месяца, за которые успел закончить два курса по Ruby и наполовину Ruby + JS.
Ещё во время обучения с ментором стало ясно, что без реального опыта сложно будет устроиться на работу. Достаточно случайно узнал, что есть возможность попробовать свои силы на mkdev, куда сразу отправил заявку. Помимо разработки новой функциональности на mkdev, в мои обязанности входил рефакторинг существующего кода и конечно всякие мелочи по JS и вёрстке.
Сложность задач постепенно росла, что позволило плавно войти в курс событий, подробно познакомиться с кодом и спецификой разработки с продакшн приложением. Почти ежедневно получал объёмные code review, что стимулировало быстрее оттачивать навыки и быть более внимательным к коду.
После двух месяцев стал искать оплачиваемую работу. Первые 6-8 интервью прошли без положительного результата, но выработали понимание того, что должен знать начинающий разработчик. Весной 2017 года устроился на первую оплачиваемую работу, где трудился около трёх месяцев, пока в итоге не решил отправить резюме в Evrone. Это собеседование оказалось не только самым сложным, но и самым интересным из всех, в которых мне приходилось участвовать. В итоге я получил должность ruby-разработчика и уже почти год работаю в этой компании.
Андрей Гайдуков
Во время учебы на mkdev мне не терпелось применять полученные знания на практике, но до этого я никогда не работал с чужим кодом и ещё боялся просить деньги за свои навыки. Также было много опасений на счёт коммуникаций с другими разработчиками. Плюс, не каждый проект готов взять под крыло только что вылупившегося джуна и вкладывать силы в его натаскивание. Я часто задавал себе вопросы-отговорки: "Что если я ещё слишком слаб?" и "Может стоит ещё чуть-чуть поучиться?"
Думаю, что многие начинающие разработчики сталкивались с похожими проблемами. Я прокрастинировал и продолжал тихонько тыкать рельсу. Проблема решилась, когда узнал о стажировке у Кирилла. Для меня это оказалось отличным вариантом! Почему? Потому что:
- Тут есть наставничество и постоянное код-ревью.
- Это уже работающий сервис с довольно большой базой наработок, которые интересно и полезно изучить.
- Коллективная работа с другими людьми.
- Очень мягкий график - делай задачи тогда, когда можешь. Очень просто совмещать с другими активностями.
- Никакой материальной ответственности :) Работа на взаимовыгодных условиях до тех пор, пока она тебе нужна.
На самой стажировке я занимался разными вещами - от правок бизнес-логики, до попыток переделать js-слайдер (да, я был частично повинен в этом ужасе). Было много написания тестов, багфиксов, фикса багфиксов, рефакторинга. Возможно, это не самые увлекательные занятия, но они крайне необходимы для будущей успешной карьеры. Я больше разобрался с гитом и гитфлоу. Также меня научили бесценному навыку в глазах будущего менеджера - таскать карточки задач на доске :) В общем, это фактически то, за что потом ты будешь получать деньги.
Уже позже, когда я начал полноценно работать, мне часто помогали те знания, которые были получены во время стажировки - от подбора гемов, до правильного оформления PR. Но главное, что я получил после стажировки - это опыт работы над коммерческим проектом и понимание того, что пускай я ещё слаб как разработчик, пускай мне много чему надо учится, но я уже могу приносить пользу команде.
Евгений Дакуко
Закончив обучение с ментором, я принялся искать работу. Но затем буквально сразу наткнулся на сообщение с поиском кандидатов на стажировку в mkdev. Недолго думая, я принял решение начать стажироваться на mkdev и параллельно искать работу ruby-разработчиком.
Хотелось бы начать с причин, из-за чего я начал стажироваться на mkdev. Первая - это количественный перевес вакансий для программистов с коммерческим опытом работы над программистами без такового. Вторая - уже был устроен на низкооплачиваемую работу, которую по некоторым причинам до окончания контракта я решил не менять.
Чем стажировка отличается от обучения с ментором? Когда есть ментор, у тебя есть персональная учебная программа, по которой строится твоё обучение. Ментор ответит на любой интересующий тебя вопрос. В случае со стажировкой - это реальный проект, который постоянно улучшается для более комфортного пользования услугами mkdev. Цель стажировки - предоставить возможность программировать на Ruby разработчикам, которые не могут по некоторым причинам найти сейчас себе работу. Стажироваться можно в любое удобное время, но нужно регулярно, так как количество одновременно стажирующихся ограничено и на тебя возлагаются некоторые обязанности.
Если описать кратко, чем я занимался на стажировке, то можно выделить несколько пунктов:
- исправлением множества багов;
- доработкой старой системы и добавлением новой функциональности (об одном из таких заданий я даже написал статью);
- оптимизацией приложения;
- рефакторингом приложения (включая вынесение/переписывание функциональности на vue.js, cells от trailblazer).
Помимо этого, иногда, кроме уже имеющихся задач, я находил сам то, что можно было бы добавить, улучшить или исправить, так что некоторые мои собственные идеи были также реализованы.
Конечно, можно сказать, что очень много задач были довольно однообразными, потому что mkdev - это не какой-то огромный сервис с сотней моделей и контроллеров. Я это к чему - недавно Кирилл Ширинкин опубликовал статью 5 способов сделать работу интереснее, где описал, как выполнять скучные задачи. У меня, например, поменялось отношение к простым, на первый взгляд, задачам, после того как я заметил, что очень глупые ошибки можно совершить, казалось бы, даже в самых незначительных багфиксах.
На данный момент я нашёл новую работу, где планирую приносить своими действиями прибыль проекту и становиться ещё большим профессионалом.
Мы ищем стажёров!
Если у тебя ещё немного опыта, но есть свободное время и желание быстро развиваться, присылай рассказ о себе на kirill@mkdev.me. Если повезёт, то попадёшь на набор стажёров. Если не повезёт - то мы всё равно тебе ответим, дадим хороший совет и вспомним о тебе во время следующего набора.