Что вам даст учеба у практиков, или почему наш курс по Flutter — это про реальные проекты и навыки для работы

    Вот уже третий год мы разрабатываем на 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 — мобильное приложение со списком интересных мест и достопримечательностей для путешествий по миру

    Разработку приложения вы ведёте в собственном репозитории. По мере продвижения по курсу проводите итерационный рефакторинг кода. Преподаватель делает ревью кода, контролирует, как вы используете EffectiveDart и best practice.

    Вы сразу применяете подход, максимально приближенный к реальным условиям разработки коммерческого  проекта. Это значит, что по ходу проекта вы будете неоднократно переделывать уже созданный функционал и интерфейсы, повышая качество кодовой базы, документирования  изменений, юзабилити, производительность и масштабируемость своего приложения.

    Что особенно понравилось и мне кажется очень важным, что идёт разработка приложения с нуля и последовательно по шагам. Особенно прикольно, когда что-то сделаешь, а потом на следующем задании надо всё переделать, потому что узнал новое. То есть это никак не разработка в стиле Лего — по шагам к заданной цели. Тут по многу раз всё переделать можно. Как на реальном проекте, когда опыта ещё не набрался.

    Виктор

    Второе направление — карьерные консультации 

    Вы составите резюме под руководством опытного HR, который специализируется на поиске и найме разработчиков, знает, на что обращают внимание работодатели. Получите рекомендации по поиску работы и консультацию от HR.

    Лучшие студенты курса могут пойти на оплачиваемую стажировку в Surf. При еë успешном прохождении вы сможете стать частью Surf Flutter team.

    На языке цифр

    По данным, собранным Кейт Джордан, исследовательницей в сфере образования и технологий, в среднем массовые открытые онлайн-курсы (MOOC) завершают около 15%  поступивших. 

    По нашей статистике более 60% наших студентов работают над курсом ежедневно. Часть из них уже приближается к финальным этапам, а это — показатель полезности программы для студентов. 


    Завершим отзывом студентки:

    Про флаттер я узнала случайно, просматривая статьи Хабра и vc. Заинтересовалась, начала искать другие материалы и видео. Данная технология мне показалась очень привлекательной, поэтому следующим шагом была покупка курсов по Flutter и Dart на udemy.

    Как только стартовал набор на курс у Surf, записалась сразу не раздумывая, так как компания является экспертом в этой области.

    На мой взгляд, курс рассчитан не для новичков в программировании. Хорошо, что у меня есть небольшой бэкграунд + прошла предварительно купленные курсы. Отличием курса Surf от других является то, что у тебя постоянно работает мозг, как решить задачу, и никто, кроме тебя, её не решит и не покажут, как. Могут дать наводку, в какую сторону смотреть.

    Дан макет приложения в Figma. Дан видеоурок со стандартной темой. Никакого секрета в уроке нет — подобные материалы есть в документации и их полно в интернете. Но после каждого урока тебе надо сделать кусочек приложения, и практически всегда того, что показано в уроке, мало, чтобы решить задачу (а что-то мы ещё не проходили, и оно далеко в закрытых разделах). Приходится копаться в документации и других источниках информации. Пока не сделаешь, дальше двигаться не сможешь.

    Курс для тех, кто не ленится и не опускает руки, когда что-то не получается. А опытные наставники поправят и направят в нужном направлении. 

    Татьяна


    5 марта стартует новый поток курса по Flutter от команды Surf. Если хотите присоединиться и освоить разработку на Flutter на практике.

    →→→ Регистрируйтесь на сайте

    Surf
    Мобильные приложения и цифровая трансформация

    Комментарии 9

      +1
      Спрос на Flutter-разработчиков очень быстро растёт.


      На западе растет. У нас, например в Питере, как было примерно 20-30 активных вакансий, где хотя бы упоминается Flutter, так и есть. Выкинуть отсюда вакансии, где знания Flutter упоминаются просто как некое преимущество, вот вам и всего 9 реальных вакансий разработчиков на Flutter. Так что особого спроса до сих пор не наблюдается.
        +1
        На деле прибавляется.
        В сравнении с тем что было год назад — больше предложений (сюда входят хантеры без выложенных вакансий).

        Надо начинать что-то изучать не когда это станет хайповым и туда ломанутся все, а ранее. Начал изучать Flutter 2 года назад и не жалею.
          +3
          Ломануться и что? Ну ломанулись когда-то люди в Java (ну или подставьте любой другой язык) и было это много-много лет назад. Все места заняты? Да нет, полно вакансий. То, что ты будешь в каком-то языке/фреймворке первым, это не дает никаких плюшек, даже в размере зарплаты. Больше сейчас предлагают разрабам на Flutter? Да нет. Я смотрю, что их часто даже дешевле оценивают, чем, скажем, Swift разработчиков. Зато минусов вагон характерных для всего нового, от нехватки каких-то библиотек до трудностей при поиске каких-то решений тех или иных вопросов. Не, можно написать вопрос и тебе через день-два ответят. Но все-таки лучше, когда 99% твоих потенциальных вопросов уже разобраны и не раз. Остается в поисковике вбить.
          Я это не к тому, что можно забыть о Flutter и не вспоминать, пока он реально не будет востребован многими компаниями. Если время есть, почему не поизучать. Но как-то бояться не успеть запрыгнуть в последний вагон, глупо. Помню такие же мысли про Go высказывали, что надо непременно его учить, пока он не стал популярным, а потом будет поздно. Ну стал он популярным. В чем проблема? Нет вроде проблем, вакансий море.
          Ведь главная проблема всегда не в том, успеешь ли ты освоить тот или иной язык вовремя, а насколько хорошо ты его можешь освоить. А уж найти, как и где его применить, если сможешь его освоить на достойном уровне, всегда сможешь. Cи больше века назад появился и его до сих пор учат. Никуда спрос на сишников не делся.
          А про начал изучать и не жалею, это про любой язык/фреймворк можно сказать. Если кто-то сегодня начнет изучать Python или C# и через два года доведет это начинание до какого-то рабочего результата, то он так же вряд ли пожалеет. Не встречал еще человека, который пожалел бы, что начал изучать тот или иной язык, будь то С, Python или Dart. Более того, знаю людей, которые до сих пор Delphi ковыряют и тоже не жалеют )))
            0
            Это да, почему то зарплаты на Flutter как-то на удивление невысоки.
              0

              Потому что, чаще всего, что бизнесу, что начинающим разработчикам, кажется, что кроссплатформа – это проще, не надо вникать в особенности каждой платформы. Соответственно, можно нанять специалиста подешевле на тот же фронт работ.


              Отчасти это так – как любой дополнительный уровень абстракции, кроссплатформенный фреймворк упрощает многие вещи.


              Но в реальности, чтобы этот фреймворк помогал, а не мешал, команда все равно должна иметь опыт с нативной разработкой, так что хороший кроссплатформщик должен цениться дороже нативщика.

                0
                Я думаю что просто пока флаттеристов больше чем бизнесов, готовых вкурить такую кросс-платформу.

                На React Native то все нормально.
              0
              Тут не стоит сбрасывать, что чем раньше начнешь — тем больше опыта будет.

              Это применимо ко всем технологиям, но Flutter еще на той стадии когда уже есть ресурсы для изучения, но еще не такое обширное распространение (по крайней мере у нас).
              И в момент пика популярности больше шансов получить выгоду разработчику с опытом, чем новичку.

              Как я и сказал, это актуально для любой технологии, но именно Flutter сейчас в этой позиции.
              0
              За пол года, особых изменений не вижу. Где требуется один Flutter, зп часто ниже нормальных ручных тестировщиков)
            +1
            Рано или поздно бизнес поймет выгоду. А писать под Flutter это не «пирожки печь», там надо знать даже больше чем нативщику. Flutter разработчику как минимум надо знать три языка, Dart, Kotlin, Swift. Чтобы подстроиться под особенности платформ. Знать внутреннее устройство IOS, Android и их работу, Runtime Permission, Lifecycle, Intents, и т.д. Также важно понимать и уметь реализовывать архитектуру приложения. На Flutter легко зайти, написать какую-нибудь ерунду, попробовать, потестить, но чтобы идти с ним дальше, нужно гораздо больше. А это как минимум багаж знаний трех разработчиков.

            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

            Самое читаемое