Преподаватель курса по разработке на Android (продвинутый)Кирилл Лаврентьев участвовал в создании целого ряда интересных приложений. Мы спросили у него, чему он будет обучать уже имеющих опыт программистов, какие тренды доминируют сейчас на рынке мобильных устройств и что надо делать, что бы стать настоящим профессионалом.
Расскажите немного о себе. С чего все начиналось? Какой язык программирования вы изучали первым и почему выбор (если он был) пал на него?
Программированием я увлекся еще в школе, в 8 классе. Понравилось ощущение, что можно создавать что-то своими руками с нуля. Создаешь программу и компьютер - с виду бездушное железо - выполняет написанные тобой инструкции. Первым языком программирования был Pascal. Выбор связан с тем, что он очень хорош для обучения.
У вас очень внушительный список проектов, где вы принимали участие. Расскажите кратко о каком-нибудь самом интересном. Может быть, пришлось решать какую-то нестандартную задачу или столкнулись с какими-то неожиданными трудностями?
Самым интересным проектом я бы назвал разработку мобильного приложения Lipe. Интересный он, во-первых, из-за своего объема - нужно было разработать серверную часть и клиента на iOS. Кроме того, очень интересна и сама идея, лежащая в основе проекта. Так как разработкой под iOS я занялся только в этом проекте, то там было много неожиданных трудностей и нестандартных задач, например, внедрение push-уведомлений и работа с картой.
Android-разработка сегодня. Можно ли выделить какие-то тренды, новшества, тенденции, изменения, которые ждут нас в ближайшем будущем в этом направлении.
Сейчас большая ставка делается на сферу виртуальной реальности - разработка под VR в любой области является трендом, в том числе в Android-разработке. А именно в сфере Android востребовано создание приложений для носимых устройств и приложения для интернета вещей.
Android или iOS? Что лучше и почему?
Нельзя сказать, что какая-то из этих платформ является лучше или хуже другой. У каждой платформы есть своя аудитория и свои достоинства с недостатками. Платформа iOS является сбалансированной - железо очень хорошо сочетается с программным обеспечением. Инженеры компании Apple выверяют железо для каждой новой версии iOS, и строгие правила публикации приложений в AppStore не позволяют разработчикам создавать неэффективно работающие приложения. В свою очередь, у платформы Android низкий порог входа для разработки и широкие возможности.
Если бы Вы только сегодня начинали свое обучение Android-разработке, то какой бы путь выбрали? Можно ли обучиться всем тонкостям самостоятельно, используя лишь общедоступные источники в интернете?
Если бы я только сегодня начинал свое обучение Android-разработке, то выбрал бы тот же самый путь с одним маленьким уточнением. Сначала бы посетил курсы по Android-разработке, а потом начал бы учиться самостоятельно. В текущих реалиях обучиться всем тонкостям абсолютно самому невозможно - потому что этих тонкостей очень много и они очень часто меняются. Современная разработка ПО очень быстро развивается и невозможно уследить за всем.
Расскажите о своем курсе. Какая его главная цель? Что будут уметь выпускники?
Цель моего курса - расширение знаний учеников в области Android-разработки, более углубленное изучение основных тем и погружение в сложные области. Выпускники смогут создавать приложения с довольно серьезным функционалом - работа с датчиками, сетью, следование всем канонам компании Google в области дизайна. Кроме того, выпускники смогут работать в команде разработчиков и быстро решать поставленные задачи в плане разработки.
Вообще в рамках моего курса будет довольно много практики, ученики будут реализовывать свои идеи приложений. После прохождения курса выпускники смогут решать довольно широкий спектр задач по Android-разработке. Cамые востребованные - написание клиент-серверных приложений и работа с различными датчиками. Они будут уметь создавать приложения полностью соответствующие канонам дизайна компании Google и приложения, использующие сторонние библиотеки.
Вы учились программированию в нескольких учебных заведениях, принимали участие в различных олимпиадах и хакатонах. Можете вспомнить какой-то нестандартный образовательный подход, который использовали ваши учителя? Может быть, это были какие-то обучающие игры и тд. Будете ли вы использовать что-нибудь подобное на своем курсе?
Я считаю, что в обучении программированию необходимо как можно больше практики. Мои учителя считали также. Кроме того, мы часто использовали такой подход как проектная работа - сейчас все ПО, в том числе мобильные приложения, пишутся командами программистов, а значит, взаимодействие в команде очень важно. Возможно такой подход будет применен в курсе, в зависимости от настроения аудитории.
Дайте пару советов тем, кто намерен дальше развиваться в Android-направлении.
Для дальнейшего развития в Android-направлении я бы посоветовал изучать разработку для носимых устройств и VR. Кроме этого, углублять знания в области фундаментальных вещей - алгоритмов обработки информации, структур данных. Эти знания пригодятся для написания более эффективно работающих приложений.
Также я бы советовал как можно больше разрабатывать - придумывать свои идеи приложений или брать в интернете готовые идеи и реализовывать их. Это позволит прокачиваться в области разработки и повышать свой профессиональный уровень.
Курс разработки под Android (продвинутый) - это обучающая программа для android-разработчиков, которая повышает их квалификацию и уровень владения данной платформой. Во время обучения они освоят создание клиент-серверных приложений и использование наиболее современных и эффективных подходов в разработке.