Читать: 10 мин

Чек-лист для Flutter-джуниора: рассказываем, как пройти собеседование

Чек-лист для Flutter-джуниора: рассказываем, как пройти собеседование

Привет! Меня зовут Никита Спирьянов, я Head of mobile в Friflex.
У нас одна из самых больших Flutter-команд в России (на момент написания статьи — 28 человек). Мы постоянно расширяем нашу команду middle и senior разработчиков. Помимо этого, мы менторим, обучаем и онбордим джуниоров.
Расскажу, на какие моменты мы обращаем внимание на собеседованиях с кандидатами на позицию Flutter junior.


Flutter: не так прост, как кажется

На первый взгляд уровень вхождения во Flutter-разработку кажется довольно низким. И это, на самом деле, большая проблема. Многие начинающие разработчики, поверхностно изучив документацию, пробуют запустить свои первые Flutter-приложения. У них все получается, так как как основные инструменты довольно простые. И складывается ощущение, что разработка на Flutter не требует знаний основ программирования и Computer Science, что в корне неверно.

Flutter — это мощный фреймворк, который предоставляет обертку-абстракцию над нативной частью мобильных устройств. Он берет на себя всю работу по взаимодействию с нативными компонентами. Однако существующие плагины не могут на 100% покрыть все кейсы, которые необходимо реализовать. Особенно это касается нестандартных и сложных задач, для решения которых бывает нужно что-то поправить под проект или написать свой уникальный плагин, которого нет в pub dev. И здесь без нативных языков Objective-C/Swift или Java/Kotlin не обойтись.



По опыту, могу выделить такие пробелы начинающих Flutter-разработчиков:

  • Не разбираются в том, как работает сам фреймворк;

  • Не понимают, как отрисовывается картинка на экране;

  • Не знают, как происходит взаимодействие с нативной частью устройств;

  • Не умеют использовать известные паттерны.


Как попасть на собеседование


Наш HR-отдел рассматривает около 7-10 резюме в неделю. Есть отклики и от разработчиков с минимальным опытом, и от тех, кто хочет войти в мобильную разработку и выбрал Flutter. Бывают случаи, когда на Flutter переходят с другой кроссплатформы — например, с React Native. Нативные мобильные разработчики, которые перешли на Flutter, попадаются реже.

Для роста в IT важно попасть в коллектив с сильной командой разработчиков и выстроенными процессами. Если мы видим, что пробелы можно быстро восполнить, и есть мотивация работать и развиваться, то с таким кандидатом мы готовы работать, обучать и растить.

Кандидатов с небольшим опытом и недостаточной для понимания уровня кодовой базой на GitHub мы просим выполнить простое тестовое задание. Это задача с использованием любого стейт менеджмента. Например, мы предлагаем сделать приложение с двумя экранами. На первом экране — список городов. На втором — информация о погоде в выбранном городе. Такое задание можно выполнить за 1-3 часа. После его успешного выполнения кандидат попадает на собеседование.


Проводим собеседование



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

  • Рассказ кандидата о себе, своих ожиданиях, опыте, скиллах и проектах, который он выполнил. Тут нам важно понять, что кандидат ищет для себя, в чем хочет развиваться, кем видит себя через год-два.

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

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

Обычно на встречах мы присутствуем вдвоем — я и ведущий разработчик. Собеседования проходят в Zoom. Предлагаем общаться в видео формате, но не настаиваем: если кандидат откажется, отнесемся с пониманием. Длится такая встреча от 30 минут до часа. Обычно чем сильнее кандидат, тем быстрее он проходит собеседование.

Чек-лист «Проверяем скиллы кандидата на позицию Flutter junior»

Основные критерии для получения оффера от компании:

1. Знание языка Dart. Необходимо:

  • Знать и понимать механику языка, синтаксис, ключевые слова, уникальные возможности — например такие, как миксины и расширения;

  • Разбираться в том, как устроена null-безопасность в языке, для чего она нужна и как ее правильно использовать;

  • Понимать, как устроена асинхронность языка, что такое Isolate, Future, Stream.

2. Знание основ Flutter. Здесь важно:

  • Правильно применять виджеты и строить интерфейс;

  • Понимать, как устроена навигация: например, в чем разница между Navigator 1 и Navigator 2;

  • Понимать работу основных виджетов — StatelessWidget, StatefulWidget и InheritedWidget;

  • Уметь работать с одной из библиотек управления состоянием (bloc, redux, mobx).

3. Знание и понимание работы современных систем управления версиями (Git). В частности, работы GitHub.

4. Знание и понимание принципов SOLID и ООП.

5. Проявление дружелюбия и готовности работать в команде.

Мы задаем пять вопросов по Dart, пять вопросов по Flutter и два общих вопроса по программированию и процессам (gitlow/паттерны/принципы разработки и т. д.).

За каждый ответ выставляются баллы от 0 до 2: 0 — не ответил; 1 — ответил верно; 2 — дал развернутый ответ. Затем высчитываем процент полученных баллов от максимального количества. Собеседование считается успешным, если кандидат набрал больше 80%.

Бывает, что кандидат не может рассказать, например, про принципы SOLID и Git, но при этом показывает отличные знания Dart и Flutter. В таких случаях, определив уровень кандидата, мы рассматриваем возможность его обучения. 

Мы набираем новичков не для того, чтобы учить их основам, а для того, чтобы из перспективных джунов растить отличных специалистов. Если вы готовы подтягивать знания, осваивать новые технологии, понимаете свои пробелы и горите желанием проявить себя — скорее всего, оффер вы получите. Добро пожаловать!

Присылайте ваши резюме на hr@friflex.com

Поделиться:

Logo

Читайте также

01  
 
panda
Есть идея? Напишите нам! Заполнить бриф