Вот уже третий год мы разрабатываем на Flutter. Сделали на нём кроссплатформенные приложения для Росбанка, сети аптек «Ригла», ресторанов KFC, в разработке ещё много проектов. Буквально на наших глазах Flutter из нишевой технологии стал мощным игроком, который теснит не только React Native, но и нативную разработку.
Бизнес поверил во Flutter. Всё больше компаний хотят приложения на этой технологии, потому что она позволяет существенно экономить при сохранении качества продукта.
Спрос на Flutter-разработчиков очень быстро растёт. Не хватает даже джунов, а у миддлов и сеньоров услуги стоят очень дорого. Толковые ребята нужны и нам.
Команда flutter в Surf собрала серьёзную базу знаний:
опыт реальных проектов;
наши статьи о Flutter, его особенностях и проектах на нем;
методология обучения стажёров;
open source библиотеки и наработки, которые мы выкладываем в публичном репозитории на Github.
И эти знания должны работать и приносить пользу не только профессиональному сообществу, но и тем, кто только хочет освоить технологию. Так появилась идея создать свой курс по Flutter.
Рынку нужны практики, поэтому основная задача курса — это помочь студентам получить реальные знания, познакомиться с наработанными best practice, быстро войти в тему и перейти к реальным задачам.
Мы не онлайн-школа и не стремимся тиражировать проекты. Мы разрабатываем мобильные приложения, готовы делиться практическим опытом и нам, как и рынку в целом, нужны компетентные специалисты.
Подробно о курсе можно почитать в статье.
Первый поток стартовал 3 месяца назад. За это время наши студенты не только прокачали свои практические навыки так, что скоро смогут стать Flutter-разработчиками на реальных проектах, но и здорово помогли в развитии курса. Их обратная связь, комментарии и советы стали бустом, который вывел курс на новый уровень.
И за это, ребята, большое вам спасибо!
5 марта стартует новый поток курса, и обновленная программа поможет будущим Flutter-разработчикам еще эффективней отработать практические навыки и освоить технологию.
Но давайте обо всем по порядку.
Можно ли изучить новую технологию самому, или почему практика важна?
Предположим, есть условный Егор. Он разработчик. Видит будущее за мобильными приложениями и хочет освоить новый стек. «Ага, Flutter — удобный и современный фреймворк для разработки приложений как под IOs, так и под Android, надо попробовать», - думает Егор.
Егор — парень въедливый и неглупый, и скорей всего начнет он с документации, тем более, что она по Flutter очень хорошая. А ещё есть бесплатные курсы на разных образовательных платформах, которые тоже помогут составить представление о технологии.
И зачем тогда Егору платный курс? Тут все давно сказано за нас. Вспомним правило 10 000 часов, которое сформулировал психолог Андерс Эриксон — чтобы добиться высокого уровня мастерства в своём деле, нужно посвятить практике не менее 10 000 часов. А ещё есть модель 70:20:10 Чарльза Дженнингса, в которой говорится о 70% практики, 20% - работы с наставником и 10% теории, которые необходимы для успешного освоения материала.
Документация и бесплатные курсы дадут Егору те самые 10%. Но одной теории мало для освоения технологии. Рынку нужны опытные разработчики, а не теоретики. И тут перед Егором встает резонный вопрос, как и где получить этот опыт. Отработать на практике под руководством ментора — один из наиболее продуктивных вариантов. Именно такой формат мы предлагаем в своем курсе по Flutter.
Егор получит знания «из первых рук». И это будут не просто лекции, а экспертиза и лучшие практики разработки из реальных проектов Surf на Flutter, которые дают опытные наставники. Обратная связь, код-ревью, рекомендации по конкретному проекту, как сделать лучше и исправить ошибку — этого Егор не найдёт в документации. Но это точно пригодится ему в дальнейших проектах.
Вот что пишут студенты первого потока:
Основная ценность курса — взаимодействие с наставниками. Тут дело не в сухой информации, которая и так есть в прекрасной документации flutter.
Этот курс — отличная возможность глубоко разобраться в теме и понять, как устроена профессиональная разработка на flutter.
Домашние задания сдаются пулл-реквестами. Проверяют их по-взрослому — от соответствия макету в figma до стиля кода. Смотрят код внимательно, замечают разные сомнительные архитектурные решения, проблемы с производительностью, подсказывают, как сделать лучше. Причем проверяют разные специалисты из команды surf.
Кирилл
Большой упор на практику, код ревью от тимлидов surf, и это очень круто. В каждой домашке отписывают более правильный код-стайл, лучшие подходы, отучают от го@нокода и всё в таком духе. Действительно стремятся сделать из вас хорошего разработчика!
Влас
Программа и для джуна, и для тимлида — а так бывает?
На первый поток курса пришли ребята с очень разным уровнем подготовки в сфере разработки. Это были:
начинающие разработчики;
тимлиды;
senior-разработчики крупных команд;
архитектор Frontend-разработки крупного банка.
Потребности у них тоже были разные. Кто-то хотел научиться Flutter-разработке для поиска работы по этой специальности. Кому-то он был нужен для имеющегося проекта. А кто-то просто стремится «держать руку на пульсе» технологий мобильной разработки.
Конечно, каждый студент хотел закрыть свой запрос и извлечь из курса максимум пользы для своего уровня подготовки.
Решить эту проблему нам помогли 2 механизма. Первый — индивидуальный выбор уровня нагрузки. Студент может проходить курс с любой скоростью, делать объём, который ему комфортно по уровню знаний или ориентируясь на уровень занятости на работе.
А еще студенты отметили, что гораздо удобней, когда загрузка на курсе равномерная, практические задания примерно одного объема и уровня сложности. Поэтому по обратной связи от ребят за 3 месяца мы переработали более 20% курса. Простые задания дополнили, а слишком сложные переформулировали или разделили на части.
Кстати, все закончившие курс сохраняют безлимитный доступ ко всем материалам и актуальными обновлениям по нему.
Второй механизм — это много разных мастер-классов с элементами практики по темам, которые были актуальны ребятам. После первого мастер-класса по Figma и Swagger студенты предложили переделать программу мастер-классов так, чтобы каждый смог подобрать темы, которые актуальны для его уровня подготовки.
В итоге, больше половины тем мы переработали. И теперь их список выглядит так:
Архитектура мобильных приложений в деталях (устройство «под капотом», границы применимости различных моделей архитектуры)
Тестирование Flutter приложений (unit-тестирование, автотесты)
Взаимодействие с нативным приложением
Обзор возможностей Flutter Web (чем отличается от нативных приложений, JS/HTML под капотом, безопасность веб-приложений, какие есть возможности и производительность, как работать с поисковой оптимизацией и индексацией, как подготовить к использованию в e-commerce)
Основы языка Kotlin
Основы языка Swift
Обзор возможностей Navigator 2.0
Обзор возможностей Flutter Desktop
Взаимодействие с платформой (Advanced)
DevTools Profiling (Advanced)
Каждый студент выбирает темы, актуальные для него. На мастер-классах ребята разбирают практические кейсы, задают вопросы по сложным и непонятным моментам в онлайн-режиме. Полученные знания студенты обсуждают с наставниками в контексте своих заданий, значит, формат работает и помогает ребятам получать еще больше навыков, применимых сразу на реальных проектах.
Спикеры мастер-классов — это опытные практики, эксперты в области разработки. Например, одним из выступающих стал Михаил Зотьев, который рассказал про внутреннее устройство и архитектурные особенности Flutter. А на мастер-классе по Flutter Web студенты разбирали и задавали вопросы про тонкости и ограничения применения Flutter в вебе, которые, в принципе, известны мало кому в индустрии.
Артём Зайцев (руководитель Flutter-разработки в Surf) рассказал о том, как устроен изнутри практический онлайн-курс Flutter-разработчик:
Главный вопрос
Обычно со стороны студентов он звучит так — а с трудоустройством поможете?
Есть 2 возможных направления, в которых курс будет вам полезен.
Наполните портфолио
На рынке труда очень мало соискателей с интересными, а тем более масштабными проектами в портфолио. В основном это небольшие проекты, из которых сложно понять, что знает и умеет кандидат. Мы убедились в этом, когда за полгода изучили более 300 откликов на вакансии и провели более 60 собеседований.
Чтобы выделиться среди других кандидатов, показать работодателю, что вы умеете и знаете, нужен проект, максимально близкий к реальному. Поэтому выпускной проект курса - это на 100% практический кейс, вы сможете добавить его в портфолио и наглядно продемонстрировать опыт для работодателя.
Вы создадите мобильное приложение со списком интересных мест и достопримечательностей для путешествий по миру. Кейс максимально близок к реальным условиям работы в коммерческом проекте. Приложение состоит из 8 экранов. Всё «по-взрослому» — описание требований от заказчика, дизайн-макет в Figma, серверная документация в Swagger.
![Примеры экранов из практического кейса курса Flutter от Surf — мобильное приложение со списком интересных мест и достопримечательностей для путешествий по миру Примеры экранов из практического кейса курса Flutter от Surf — мобильное приложение со списком интересных мест и достопримечательностей для путешествий по миру](https://habrastorage.org/getpro/habr/upload_files/b6a/e02/469/b6ae0246939217116116548661fa199c.png)
Разработку приложения вы ведёте в собственном репозитории. По мере продвижения по курсу проводите итерационный рефакторинг кода. Преподаватель делает ревью кода, контролирует, как вы используете EffectiveDart и best practice.
Вы сразу применяете подход, максимально приближенный к реальным условиям разработки коммерческого проекта. Это значит, что по ходу проекта вы будете неоднократно переделывать уже созданный функционал и интерфейсы, повышая качество кодовой базы, документирования изменений, юзабилити, производительность и масштабируемость своего приложения.
Что особенно понравилось и мне кажется очень важным, что идёт разработка приложения с нуля и последовательно по шагам. Особенно прикольно, когда что-то сделаешь, а потом на следующем задании надо всё переделать, потому что узнал новое. То есть это никак не разработка в стиле Лего — по шагам к заданной цели. Тут по многу раз всё переделать можно. Как на реальном проекте, когда опыта ещё не набрался.
Виктор
Второе направление — карьерные консультации
Вы составите резюме под руководством опытного HR, который специализируется на поиске и найме разработчиков, знает, на что обращают внимание работодатели. Получите рекомендации по поиску работы и консультацию от HR.
Лучшие студенты курса могут пойти на оплачиваемую стажировку в Surf. При еë успешном прохождении вы сможете стать частью Surf Flutter team.
На языке цифр
По данным, собранным Кейт Джордан, исследовательницей в сфере образования и технологий, в среднем массовые открытые онлайн-курсы (MOOC) завершают около 15% поступивших.
По нашей статистике более 60% наших студентов работают над курсом ежедневно. Часть из них уже приближается к финальным этапам, а это — показатель полезности программы для студентов.
Завершим отзывом студентки:
Про флаттер я узнала случайно, просматривая статьи Хабра и vc. Заинтересовалась, начала искать другие материалы и видео. Данная технология мне показалась очень привлекательной, поэтому следующим шагом была покупка курсов по Flutter и Dart на udemy.
Как только стартовал набор на курс у Surf, записалась сразу не раздумывая, так как компания является экспертом в этой области.
На мой взгляд, курс рассчитан не для новичков в программировании. Хорошо, что у меня есть небольшой бэкграунд + прошла предварительно купленные курсы. Отличием курса Surf от других является то, что у тебя постоянно работает мозг, как решить задачу, и никто, кроме тебя, её не решит и не покажут, как. Могут дать наводку, в какую сторону смотреть.
Дан макет приложения в Figma. Дан видеоурок со стандартной темой. Никакого секрета в уроке нет — подобные материалы есть в документации и их полно в интернете. Но после каждого урока тебе надо сделать кусочек приложения, и практически всегда того, что показано в уроке, мало, чтобы решить задачу (а что-то мы ещё не проходили, и оно далеко в закрытых разделах). Приходится копаться в документации и других источниках информации. Пока не сделаешь, дальше двигаться не сможешь.
Курс для тех, кто не ленится и не опускает руки, когда что-то не получается. А опытные наставники поправят и направят в нужном направлении.
Татьяна
Кейсы, лучшие практики, новости и вакансии Surf, а также прямые эфиры — в телеграм-канале Surf Flutter Team. Присоединяйтесь!