Generated with Avocode. Generated with Avocode. Generated with Avocode. Generated with Avocode. Generated with Avocode. hat Generated with Avocode. Generated with Avocode. Generated with Avocode. Generated with Avocode. Generated with Avocode. Generated with Avocode. path40

Языки меняются, платформы остаются: Дмитрий Щипачев, Finch — о карьере и жизненном пути разработчика

Как стать разработчиком, не имея опыта и технического образования. Как построить процесс самообучения. О чем забывают те, кто приходит в профессию. Поговорили с Дмитрием Щипачевым, соучредителем студии мобильной разработки Finch.

Про Finch

— С какими проектами работает Finch?

— Нам интересны проекты федерального уровня, то есть с аудиторией в несколько миллионов. Брендов, которые способны такую аудиторию собрать, не так много. Из наших постоянных клиентов это «Столото», лотерейный монополист, ФК «Спартак», группа телеканалов «Газпром-медиа», самый главный из которых — это ТНТ.

Для последнего мы сделали ряд продуктов: «ТНТ Club» — мобильное приложение с программой лояльности. Сейчас помогаем с запуском нового сервиса «ТНТ Premier». Для «Спартака» тоже было несколько продуктов — сайт, мобильное приложение, CRM-системы, мобильные рабочие места и многое другое.

— Необычный факт о Finch.

— Мы на рынке десять лет, у нас обороты в несколько десятков миллионов рублей, но до сих пор нет отдела маркетинга и коммерческого директора.

Классическое образование vs самообучение

— Твое образование. Где и когда учился?

— Я закончил университет 13 лет назад, закончил в кавычках: уже к третьему курсу учиться мне надоело и текст диплома я купил за 300 долларов. К тому моменту уже работал в сфере интернет-продакшна около двух с половиной лет. Тогда digital-специальностей в образовании не было. Существовали всякие математические и физические факультеты, где давали классическое образование, но порой узнать о программировании можно было в самых неожиданных местах — например, в РГГУ на отделении искусственных языков, где изучали их появление и эволюцию.

— Академическое техническое образование тогда и сегодня. В чем разница?

— Процесс обучения прикладных специалистов в digital, какими мы их видим сейчас, тогда отсутствовал. Понятно, что был МГУ и была Бауманка, которую, кстати, закончил мой партнер по бизнесу Дмитрий Хайретдинов. Там программирование изучали с азов, буквально начиная с принципов, по которым работают процессоры в компьютере. Давали фундаментальную подготовку и по железу, и по сетям, и по алгоритмам — классическое техническое образование.

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

Дмитрий Щипачев

И как раз его сейчас очень не хватает техническим специалистам — в эпоху бума онлайн-курсов и тематических вебинаров «по разработке». Ведь современное прикладное программирование в digital — это специальность, подразумевающая знания в очень широком спектре областей.

Для того, чтобы быть крутым специалистом, нужно быть в теме на всех уровнях — начиная с того же железа, сетевых протоколов, того, как устроен пиринг, того, как работают сотовые и кабельные сети. Знать принципы работы различных софтверных платформ и операционных систем, методологии разработки и отладки, среды разработки и, наконец, сами языки программирования. Ну и до кучи — интересоваться пользовательским поведением, вопросами UX, гайдлайнами и многим другим.

К чему я это перечисляю: современный digital, пожалуй, охватывает самый разнообразный и широкий стек по знаниям из всех специальностей, которые я могу представить. И, соответственно, у тебя есть миллиард технологий, которые ты должен иметь в виду при работе над продуктом. Логично, что появляется множество различных курсов, где ты можешь обучиться чему-то изолированному —  PHP, разработке под iOS или основам сетевой безопасности.

— Сколько сейчас человек в твоей компании и сколько из них — технических специалистов?

— Сейчас 40–45 человек, из них большинство, человек 30–35 — программисты, системные администраторы и специалисты смежных специальностей. Дизайнеров тоже можно назвать техническими специалистами.

— Техническая команда Finch: кто где учился?

— Еще два-три года назад я бы сказал поименно, но с тех пор мы выросли. Мне остается только надеяться, что все наши разработчики имеют какое-то техническое образование, хотя у меня порой возникают сомнения в этом.

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

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

Это с одной стороны плохо, потому что все самообразовываются по-разному, нет каких-то общих стандартов. С другой — это хорошо, потому что ты понимаешь, что человек пришел к своему уровню сам, своими ошибками. Он не был на потоке из 300 людей, которые получали одинаковые знания в готовом виде, а набивал свои шишки по собственной инициативе.

Конфликт фундаментальных и прикладных знаний

— Как построить процесс самообучения?

— Самое полезное, что можно сделать, если начинаешь с нуля изучать какую-либо технологию, — это выполнять конкретные практические задачи. Это как учить английский язык, когда смотришь сериалы с субтитрами. Разберись, или смотреть будет не интересно. Откуда взять эти задачи?

Ко мне иногда приходят люди и говорят: я джуниор (или стажер), и я хочу научиться тому-то. Я отвечаю: учись. Мне возражают: но я не знаю, с чего начать, может, вы мне дадите какое-то задание? Если у меня хорошее настроение, я не игнорирую этот вопрос, а объясняю человеку, что он сам может обеспечить себя заданиями без моей помощи на год вперед. Можно включить фантазию и придумать себе на день 50 заданий, а потом выполнять их в течение года. Придумать задачу самостоятельно и решить ее — это тот уровень осознанности в саморазвитии, который доступен каждому и при этом дает отличные результаты. В таком подходе не требуются ни курсы, ни стажировки — достаточно помощи комьюнити (того же Stack Overflow) и мотивации. При этом порог, до которого можно дойти самостоятельно, достаточно высок — уровень миддл-разработчика точно, если склад ума подходящий.

— Главная специализация Finch — это мобильные приложения. Если человек, не имея академического технического образования, хочет научиться мобильной разработке, с чего ему начать?

— Все давно есть в интернете — книги, статьи. Я когда начинал интересоваться тем, чем мы сейчас занимаемся, учился мультимедиа-программированию (тогда был в моде Flash). По сути, мобильная разработка сейчас — это то же самое, что Flash тогда: некая проприетарная технология, со своей платформой, средой разработки, виртуальной машиной и своим языком программирования. Тогда ты мог прийти в программирование через Flash, сейчас через мобайл. То есть ситуация в принципе очень похожая.

Берутся книжки, читаются, выполняются примеры. Потом по мере того, как ты разбираешься с одной технологией, начинаешь понимать какие-то новые вещи, выходишь за рамки своей платформы. Начинаешь интересоваться, что происходит у тебя вокруг: в браузере, в операционной системе, в вайфай-модуле, в роутере, далее открывается бесконечный океан веба, который нужно постигать. Потому что в digital все взаимосвязано.

— Что вы делаете внутри компании, чтобы улучшить фундаментальные знания команды?

— Мы пытаемся организовать рабочий процесс так, чтобы разработчики как можно больше друг с другом общались — backend с frontend и с мобайлом (у нас три основных подразделения).

Соответственно, мы строим работу так, чтобы все по максимуму погружались в каждый аспект проекта. Плюс мы постоянно экспериментируем с различными новыми технологиями. Когда ты внедряешь что-то новое, то всегда проходишь через этап, когда «трясет» всю систему — со стороны это выглядит так, как будто не работают самые примитивные вещи и всему приходится учиться заново. Но если взглянуть глубже — происходит повышение экспертизы всех, кто в этом задействован. Когда я собеседую мобильного разработчика, мы в любом случае обсуждаем все смежные вопросы, в том числе и бэкенд. Потому что мобильный разработчик должен понимать, как он устроен. А бэкенд-разработчик должен понимать, как работает мобильная платформа. Без этого им будет очень сложно коммуницировать и, соответственно, делать продукт вместе.

— То есть я выучил PHP или Java, знаю синтаксис, могу писать код без гугла. И не могу считать себя разработчиком?

— Дело не только и не столько в языке. Тебе недостаточно знать Java, чтобы писать под Android. Знание языка — это 30% твоей деятельности, а 70% твоей деятельности — это понимание того, как работает платформа: стор, интеграция, сервисы, покупки, аккаунты — нужно видеть целиком всю эту большую связку. Язык сам по себе может быть легко заменен: например, сегодня Java, завтра Kotlin. Но ты все равно Android-разработчик, и остаешься в этом же контексте.

Бэкенд, фронтенд, мобайл

— Может ли человек, который работал в бэкенде, легко уйти в мобайл, если вдруг ему надоест? И наоборот.

— Есть определенные хаки. В мобайл из бэкенда уйти может быть довольно просто, если человек на бэкенде использовал Java, и он хочет уйти в Android, под который тоже пишут на Java. Язык и даже среда разработки во многом очень похожи. Понятно, что набор библиотек абсолютно разный, и компоненты разные, но язык и синтаксис — те же.

Если ты уходишь, с Node.js на фронтенд, то тоже в принципе знаешь JavaScript. То есть можно уйти в смежную область через пересечение технологий или языков, и сделать это достаточно комфортно. Ко мне приходили собеседоваться ребята, которые решили заниматься Android с бэкграундом бэкенд-разработки именно на Java. И наоборот тоже.

— Популярная дилемма у новичков: фронт или бэк. Куда пойти?

— Возможно, это мое предубеждение, но мне кажется, что у фронтенд- и бэкенд-разработчиков разная психология. Я это очень хорошо вижу. У мобильных разработчиков есть много общего с людьми, которые пилят фронтенд, пишут браузерный код. И они довольно сильно отличаются от людей, которые делают бэкенд.

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

Практик должен компенсировать нерешительность перфекциониста, а стратег должен страховать стахановца при необдуманных действиях. Хотелось бы к этому балансу прийти и в Finch.

— Есть мнение, что мобильная разработка «прокатилась на хайпе» и теперь отрасль не так перспективна. Хотя бы в плане трудоустройства. Правда?

Вообще не согласен. Наоборот, мы постоянно видим, что в мобайле выстреливают новые технологии — одна за другой. Например, три года назад вышел абсолютно новый язык Swift, в этом году аналогично вышел на Android язык Kotlin. Постоянно улучшаются среды разработки, комьюнити. Sketch (инструмент, рожденный именно мобайлом) за пару лет разрушил гегемонию фотошопа, которая длилась, кажется, вечно. Мобайл меняет все вокруг себя с огромной скоростью. Он сейчас, как онлайн-порно в 2000-х — главный локомотив всего прогресса вокруг. В моем понимании хайп — это что-то прямо противоположное.

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

Дмитрий Щипачев

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

Если пять-шесть лет назад, чтобы программировать под айфон, тебе нужно было знать Objective C — язык, который неподготовленному человеку изучить просто невозможно, то теперь у тебя есть Swift. И произошло это именно потому, что все поняли: порог входа должен быть снижен.

И я не думаю, что эта ситуация изменится в ближайшее время. Нынешние модные веяния, internet of things или wearable-девайсы, все равно имеют в своей основе те же самые платформы, которые используются в мобайле.

— Взяли бы сейчас на работу себя самого (сразу после университета)?

— Да, я бы себя всегда взял на работу. На первую большую работу я вышел в 20 лет, это была компания, на тот момент самый крупный российский разработчик мультимедиа-решений, а я в ней был единственным и самым главным медиаразработчиком.

Пробивая потолок. Пути развития программиста

— О перспективах. Вот ты поработал в студии, поделал проекты на аутсорсе, набрался опыта. Как развиваться дальше?

— Если рассматривать именно аутсорс, то тут несколько путей. Можно устроиться в какой-нибудь Luxoft, где работают несколько тысяч программистов. Уходить туда нет никакого смысла. Там всегда ниже требования именно к программистам, там всегда больше текучка, там всегда менее интересные задачи — просто потому, что такой масштаб.

Второй путь — устраиваться в продуктовые компании: Яндекс, Mail.ru Group. Наши ребята туда уходят, и я очень за них рад. Один парень ушел в «Яндекс.Навигатор» мобильным разработчиком, другой — в «Яндекс.Браузер» фронтендом.

— В Долину уезжают?

— Ну да, у нас уезжали в том числе и в Калифорнию. Было несколько лет назад, мы тогда были совсем маленькие. И пара ребят, которые у нас работали, сейчас там. Тоже проблем в этом не вижу, я сам туда езжу периодически. Как к этому относиться? Как можно относиться к развитию человека? Я очень хорошо отношусь.

Когда человек развивается и выполняет свое предназначение — это правильно.

Дмитрий Щипачев

— Менеджер проекта — насколько для него важно понимать техническую часть?

— Мы берем ребят, которые имеют технический бэкграунд, и погружаем их во все вопросы. Собеседование product-менеджера у меня в основном составлено из технических вопросов.

— Теперь о тебе. Когда технический специалист основывает компанию и становится руководителем, он начинает терять квалификацию. Чтобы поддерживать форму, не хватает времени. Как управлять технологическим бизнесом «бывшему» технарю?

— Я никогда не был топовым технарем. Если брать очень глобально, то прошел три основных стадии на своем пути: первая стадия — технический специалист, вторая — project-менеджер, третья — корпоративный менеджер. Я уже не помню, когда в последний раз программировал. Сейчас я примерно поровну управляю проектами и компанией. Наверное, через какое-то время я полностью перестану заниматься менеджментом проектов и сконцентрируюсь на компании. Это логичная эволюция.

— Не хочется что-нибудь время от времени написать самому?

— Хочется, но я плохой программист.

Про HR и курсы

— Если срочно нужен хороший специалист, куда пойдешь: hh, друзья в Facebook, HR-агентство? На что смотришь в первую очередь, когда нанимаешь программиста (на первом собеседовании)?

— Все делаю. В резюме смотрю на путь, который человек прошел за последние несколько лет. Последние места работы и что он там делал —  это первое. Второе — ключевые технологии, если нанимаю разработчика.

— В HR-агентствах распространено такое мнение, что если в резюме в последних местах работы указан срок один год, шесть месяцев и меньше, то на них даже не смотрят. Считают, что это многое говорит о человеке: что он нестабильный, не знает, чего хочет. Как ты к этому относишься и обращаешь ли внимание?

— Ну это не такой показатель, как личное общение. К нам вообще идут только те, кого заинтересовала конкретно наша компания. Когда мы проводим собеседование, все становится понятно — человеку либо нравится, он хочет и на 100% готов здесь работать и расти, либо ему не нравится и не интересно — тогда мы его и не берем.

Поэтому я не обращаю внимания на то, где он мог работать. Мы смотрим на взаимодействие конкретно с нами. Естественно, если нет каких-то причин подозревать, что человек неэтично поступал по отношению к предыдущим работодателям, но это отдельный вопрос.

— Онлайн-курсов много. Как выбрать хороший, на что смотреть?

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

— Доступность всевозможного дополнительного технического образования — это хорошо или плохо для рынка?

— Это хорошо. Многие в индустрии жалуются, что онлайн-курсы делают рынок труда нестабильным, мол, появляется куча народу, который ничего не умеет, но считает себя специалистами. У меня встречный вопрос: а вашей компании это как мешает? Как будто кто-то заставляет вас этих людей брать на работу. На мой взгляд, это наоборот плюс: пусть глупый конкурент их возьмет и провалит производственный план.  Большое количество курсов дает больше возможностей тем людям, которые интересуются тематикой и хотят самообразовываться. Больший выбор материалов — это всегда полезно. Но опять же: я не склонен считать онлайн-курсы самой важной составляющей самообучения. Но с них полезно начинать.

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

— Нет подвоха. Только плюсы.

Курс «Мобильный разработчик»
На этом курсе вы научитесь создавать приложение под Android и iOS, а кроме этого получите полноценное портфолио разработчика.
  • Живая обратная связь с преподавателями
  • Неограниченный доступ к материалам курса
  • Стажировка в компаниях-партнёрах
  • Дипломный проект от реального заказчика
  • Гарантия трудоустройства в компании-партнёры для выпускников, защитивших дипломные работы

Комментарии

0
Чтобы оставить комментарий,  авторизуйтесь
Хочешь получать крутые статьи по программированию?
Подпишись на рассылку Skillbox