Карьера Дмитрия во Flutter-разработке началась с идеи мобильного приложения для курсов английского языка: он захотел создать его для знакомых. А так как Flutter позволяет писать приложения сразу под две платформы (IOS и Android), был выбран именно этот фреймворк.
Через 7 месяцев и 700+ часов теории и практики Дмитрий пополнил нашу команду в качестве Junior Flutter Developer. В статье он рассказывает, какой путь прошел с нуля до получения оффера, а также делится полученным опытом.
Мой путь
Мое обучение начиналось с курса LazyLoad Dart & Flutter на YouTube. Модуль Dart я сначала понял плохо, но когда перешел к модулю Flutter, стало интереснее. По курсу автор пишет приложение, и я писал код за ним.
Затем я начал писать приложение для курсов английского языка. Реализовал несколько основных фич, сделал авторизацию и регистрацию через Firebase. Уперся в потолок своих хард скиллов и пошел изучать библиотеки.
Следующим этапом стало изучение курсов Константина Кокорина, документации Dart и Flutter и написание нового приложения по техническому заданию. В этом приложении я поработал с flutter_bloc, сетью, версткой по макету Figma и с чистой архитектурой.
Итак, перед тем, как приступить к поискам работы, я:
- Изучил три курса (LazyLoad Dart & Flutter, курсы Константина Кокорина «Изучаем Dart», «Изучаем Flutter»),
- Изучил официальную документацию Dart language tour и Flutter,
- Получил опыт в двух своих проектах,
- Пушил код на Github практически каждый день.
Путь до джуна занял у меня 7 месяцев и 700 с лишним часов теории и практики (трекал время в Toggl). Все это время я вел блог «Дневник Flutter-разработчика». В нем вы можете проследить этот путь, чтобы повторить его без моих ошибок.
Также я много общался в чатах по разработке, в личных сообщениях и старался максимально поместить себя в среду программирования.
Что должен уметь начинающий разработчик
Начинающий мобильный разработчик должен уметь три вещи:
1. Верстать по макету (с Figma)
Макеты придется погуглить или у кого-нибудь попросить. Это ссылка на мой макет.
2. Работать с сетью (делать запросы, получать информацию из сети)
Пример бесплатных API.
3. Работать со стейт-менеджерами (flutter_bloc, provider)
Официальная документация от Felix Angelov — отличная. К тому же он дает немало примеров приложений с кодом на Github.
Работая над своими проектами, желательно охватить эти три пункта. Тогда вам точно будет что указать в портфолио и рассказать на собеседовании.
План обучения
Тем, кто начинает изучать Dart и Flutter с нуля, я бы советовал следующее:
Шаг 1. Пройти курс Константина Кокорина «Изучаем Dart».
Шаг 2. Пройти курс Константина Кокорина «Изучаем Flutter».
Оба курса короткие и отлично подходят новичкам. Вы быстро поймете, что такое Dart и Flutter, а также напишете пару проектов.
Для того, чтобы дальше углубляться в тему, рекомендую:
Шаг 3. Изучить официальную документацию Dart и Flutter и закрепить материал видеокурсом LazyLoad Dart & Flutter на YouTube.
Я делал следующим образом: прочитал документацию по теме видео — закрепил уроком LazyLoad. Автор отлично объясняет теорию и идет прямо по документации. По его курсу вы также напишете несколько приложений.
Шаг 4. Если чувствуете, что готовы выполнить тестовое задание — можно начинать откликаться на вакансии Junior Flutter Developer (вакансий мало, поэтому откликайтесь и на Middle, если знаете хоть отчасти нужный стек). Если еще не готовы — можете начать писать свои проекты или устроиться на стажировку (например, в Fliflex).
В вакансиях на позицию Junior Developer часто требуется опыт работы от полугода. Если опыта нет, улучшить свое резюме можно, указав в нем пройденные стажировки. Также можете написать в резюме про опыт работы над своими проектами.
Как подготовиться к собеседованию
- Найдите штук 30 подходящих вакансий на hh и в ТГ-чатах. Проанализируйте их и выпишите требования, которые чаще всего встречаются. Это будет примерный скелет того, что вам нужно знать.
- Если ваш английский оставляет желать лучшего, не будет лишним почитать — документацию на русском языке.
- Изучите все видео на YouTube с собеседованиями Flutter разработчиков. Сами отвечайте на вопросы, делайте заметки.
- Чем активнее ваш профиль на Github, тем лучше. О нем обязательно спросят. Хотите показать работодателям, что умеете работать с сетью? Найдите пару статей или видео по этой теме и проработайте. Код отправляйте на Github, формируя портфолио.
- На встрече с работодателем улыбайтесь, будьте дружелюбны и ведите себя естественно. В первую очередь вас нанимают как человека, который будет работать в команде. Хард скиллам могут доучить, софт скиллам — нет.
Общие рекомендации
Разработка — это путь постоянного саморазвития. Не стоит полагаться на курсы, где вас проведут за ручку по теории и устроят на работу. Лучше самостоятельно выстроить план и систематически, ежедневно ему следовать.
1. Делайте упор на практику (самостоятельное написание кода). Это сложно, но вы будете гуглить и решать проблемы, набираться опыта. Теория без практики выветривается за неделю.
2. Не пишите код по курсам за ментором. Старайтесь писать сами (гуглите) и потом сверяйтесь с ментором.
3. Изучайте английский язык. Зачем ограничивать свой потенциал рынком СНГ? К тому же, если будете гуглить на английском, сэкономите уйму времени.
4. Чтобы лучше понимать англоязычные видео, скачайте Яндекс.Браузер. Он сам предложит вам перевести видеоуроки с помощью своей нейросети. Аудиоперевод будет идти поверх оригинала.
5. Добавляйтесь в ТГ-чаты по Flutter разработке. Общайтесь, задавайте вопросы. В поиске чата вводите ключевые слова вашего вопроса: скорее всего, ответ на него уже давали.
6. Прокачивайте LinkedIn. Добавляйте IT-рекрутеров, развивайте сеть знакомств. По опыту друзей знаю, что оттуда поступают лучшие предложения о работе.
7. Не старайтесь охватить все и сразу и не зацикливайтесь на том, чего не знаете. Это будет вгонять вас в прокрастинацию. Фокусируйтесь на ежедневных маленьких победах: они будут вас мотивировать.
8. Также для самомотивации можно вести свой блог. Это поможет фиксировать достижения и отслеживать успехи.
Чтобы найти работу, я сделал около 100 откликов на hh и в ТГ-чатах. Получил 13 приглашений. Резюмируя, могу сказать, что стать Junior Flutter разработчиком с нуля за полгода — реально. Развивайтесь, акцентируйте внимание на каждой маленькой победе, и все у вас получится!