Йоу, юзер! Меня зовут Костя, я являюсь Flutter-разработчиком в стартапе ANTEI. Данная статья будет являться пилотной и вводной в серию статей о том, какой базой должен обладать разработчик для первой коммерции на Flutter. Итак, летс гоу!
Вдохновение
Не для кого не секрет, что одного лишь знания языка, фреймворка или технологии недостаточно для успешного попадания на первый коммерческий проект. Оно и немудрено: каким бы крутым разработчиком ты себя не считал, какие бы крутые пет-проекты не пилил, в большинстве случаев работодателю (как и бизнесу в целом) тяжело ориентироваться в твоих скиллах. Зачастую для компаний или иных коммерческих организаций важен коммерческий опыт, ведь это показатель того, что ты прошел огонь, воду и медные трубы! Тут то ты и попадаешь в капкан: ты хочешь получить коммерческий опыт -> тебя не берут ввиду отсутствия коммерческого опыта :/
Думаю, ты знаком с этим порочным кругом. Что же делать в такой ситуации? Есть два пути развития событий:
Путь №1. Нагло и откровенно врать в своем резюме, приписывая себе все почести мира программистического, не забыв упомянуть, что именно ты принимал участие в создании ENIAC.
Как по мне, этот путь имеет право на существование, однако является весьма сложным и неправильным: начиная с того, что будет необходимо прикладывать большие усилия на поддержание своей легенды, и заканчивая тем, что при любой ошибке ты рискуешь заслужить репутацию наглеца и обманщика.
Путь №2. Подстраиваться под общество требования компаний, дабы повысить свои шансы на трудоустройство. Данный вариант выглядит более предпочтительным, поскольку убивает сразу двух зайцев:
Намбер 1 - Ты будешь иметь знания и практический опыт использования актуального стека разработки (state-management, network, архитектура и т.д.), что положительно скажется на твоем перформансе во время трудовых будней.
Намбер 2 - Ты точно будешь соответствовать требованиям компании, знать их стек как свои 10 пальцев. Тем самым, ты будешь являться куда более перспективным кандидатом на фоне "собратьев по несчастью".
Что происходит на рынке?
Первым шагом в серии статей был проведен рисерч по вакансиям на всем известной красной платформе. В ходе поиска целевых вакансий, было установлено 2 фильтра:
-
наличие в проекте Flutter’a
-
требуемый опыт: “без опыта” или “1-3 года”
Поскольку статья рассчитана на будущих junior-разработчиков, считаю данные фильтры наиболее релевантными и уместными. Итого я получил 21 вакансию, отвечающую необходимым мне требованиям, а именно соответствие фильтрам и наличие конкретных требований к кандидату.
Далее я провел анализ каждой из вакансий на требования, чтобы определить наиболее актуальный пул. Основная идея данного подхода заключается в вычислении наиболее часто встречающихся требований, подтянув которые у тебя будет больше шансов попасть на бОльшее количество позиций. Итак, пул перед тобой:
-
State-management
-
Архитектура
-
Сеть
-
Локальное хранилище
-
Di
-
Dart
-
Прочее
Со сравнительными графиками ты можешь ознакомится ниже:
Как можно заметить, наиболее востребованным state-менеджером является BLoC, который встречается в 14 просмотренных вакансиях.
Мнения об архитектуре разнятся, однако видно, что предпочтительными являются чистая архитектура, а также архитектура, основанная на блоке
Касательно сети все проще, чем с предыдущими пунктами: нам нужны 3 слона - понимание REST, JSON, WebSocket, а также познания в удобном для взаимодействия с сетью Dio
Локальное хранилище упоминалось реже, и статистика по нему весьма скудная
То же самое можно сказать про DI
И про механизмы Dart
Но вот статистика “Прочего” компенсирует предыдущие графики с лихвой: тут и git хотят, и понимание ООП, и SOLID подавай, а также вагон и маленькую тележку из пушей, релиза в сторы и firebase
Что дальше?
Теперь мы с тобой имеем все карты на руках, и готовы сделать первый шажочек на пути к безбедной жизни, полной дедлайнов, созвонов и крутых задач. Представляю тебе авторскую роадмапу, пройдя красной нитью по которой ты сможешь получить свою заветную коммерцию:
Первым делом ты пройдешь по острову Dart, где узнаешь про ООП, принципы SOLID, асинхронку и стримы. Затем мы перейдем к континенту Flutter: поговорим и о state-менеджере, и про архитектуру, сеть, локальное хранение данных и про DI. Завершим наше путешествие на острове “Прочее”, где затронем возможности Firebase и научимся ломать ветки работать в команде при помощи git.
На этом вводная статья закончена, ставьте лайки, подписывайтесь на мой телеграмм канал - t.me/eptait , нажимайте на колокольчик! Увидимся в ООП 🙂
Автор: bpllqd