Нетипичный программист: как посмотреть мир, разрабатывая мобильные приложения
Вадим Дробинин в прошлом году окончил бакалаврскую программу «Программная инженерия». Сейчас он работает в Лондоне в амбициозном стартапе, который обещает перевернуть современные представления о поиске в интернете. Вопреки стереотипу о программисте-интроверте в растянутом свитере, который «прогает» ночи напролет, Вадим много путешествует, ведет блог с рецептами блюд из разных стран, преподает и участвует в крупных международных конференциях.
О профессии разработчика и плюсах небольших компаний
Когда после выпуска я выбирал работу, успешно прошел интервью в Uber в Амстердаме, но потом отмел это предложение. Uber — это огромная и не очень поворотливая машина. Работать в таком коллективе тяжелее, чем в маленькой компании. В Uber я не могу прийти к гендиректору и сказать ему: «Слушай, это ерунда какая-то. Давай не будем так делать». Сейчас я работаю в небольшом британском стартапе. Мы хотим переосмыслить поиск в сети с учетом того, что все больше и больше людей пользуются голосом. Пока у нас все хорошо, много известных крупных инвесторов — люди, которые вкладывались в Google и Airbnb, когда те еще были маленькими компаниями в гаражах. В нашей небольшой компании я могу влиять на решения, которые принимает руководитель. Это бесценное ощущение, которое я не хочу терять.
Разработка для меня всегда была созданием новых миров. Я своими руками делаю то, что потом может быть использовано миллионами людей в разных странах. Это что-то оживает по щелчку пальца в моих руках. Я всегда больше любил разработку, например, сайтов, потому что ты пишешь пару строчек кода и сразу видишь результат. Если пишешь сервер, результат можно увидеть спустя какое-то время — когда кто-то другой напишет мобильное приложение, и оно будет общаться с этим сервером. Еще мне очень нравится особый взгляд разработчиков на мир. Я понимаю, что происходит, когда человек нажимает мышкой на ссылку в браузере, и люди, с которыми я взаимодействую в коллективе, тоже. Думаю, мне безумно нравилось в Вышке именно потому, что большинство людей, с которыми я учился, разделяли мою страсть к изучению нового.
О том, чему научила Вышка, и что нужно делать студентам, чтобы преуспеть
Курс Михаила Ульянова по ресурсно-эффективным комбинированным алгоритмам содержит необходимый базовый подход, я пользуюсь им ежедневно. Еще нам на отличном уровне дали английский язык. Сейчас я говорю на нем даже больше, чем пишу код. Пригодились все курсы, связанные с работой в коллективе: курс психологии, управления проектами по Scrum. У нас был потрясающий факультатив от Павла Манахова и Сергея Пронина по проектированию мобильных интерфейсов. Он состоял из двух частей: концепции пользовательских интерфейсов и разработки на языке Swift. Павел Манахов показал, как даже разработчик, который не работает с интерфейсом, а просто программирует то, что ему дали дизайнеры, может в процессе проектировать интерфейс. Это очень важно. В моей компании я не только занимаюсь программированием, но и «склеиваю» по частям разработку продукта, разработку сервера и дизайн. Благодаря полученным знаниям я могу свободно общаться с дизайнерами на их языке.
Даже если завтра мир захватят роботы, и им вдруг понадобится совершенно новый язык программирования и зачем-то люди, чтобы писать этот код, я с этим справлюсь
Одно из главных преимуществ Вышки в том, что она никогда не мешает дополнительному развитию. Все наши проекты и инициативы, начиная с хакатонов и заканчивая поездкой на конференцию в Калифорнию за три дня до начала экзаменов, всегда поддерживали. Поэтому я бы пожелал всем студентам не бояться общаться с руководством и развиваться не только в рамках семинаров и лекций, но и вне вуза. Когда выпускается сто человек, которые получали одни и те же знания, среди них будут выделяться те, кто добрал еще что-то вне университета. Это очень важно даже с учетом того, что Вышка — лучший вуз России в плане software engineering.
О том, как расширить потребительскую аудиторию, и свободе работать где угодно
Работа над зарубежными проектами дает, в первую очередь, масштабы. У русскоязычного проекта, который не перевели на двадцать языков, аудитория двадцать миллионов в лучшем случае. Когда разрабатываешь англоязычный проект, аудитория по умолчанию превышает несколько сотен миллионов. Просто потому, что он на английском, и есть медийные возможности достучаться до иностранных производителей.
Еще один плюс — все более доступно. В нашем коллективе есть люди, которые родились в Германии, учились в Америке, а сейчас работают в Англии. У них знакомые и там, и там, и там. Это позволяет очень быстро находить контакты. Часто шутят, что IT bubble — среда людей, связанных с миром информационных технологий — не имеет границ. Интервью на позиции мобильных разработчиков почти одинаковые, рабочий язык в основном английский. Собрал чемоданы — и ты уже работаешь на новом месте в другой стране. Мне очень повезло: благодаря хакатонам я много путешествую. Работая удаленно с иностранными компаниями, я перенял культуру, подход к программированию и общению в коллективе и не чувствую большой разницы между менталитетами. Как программист я не привязан ни к стране, ни к языку программирования. Даже если завтра мир захватят роботы, и им вдруг понадобится совершенно новый язык программирования и зачем-то люди, чтобы писать этот код, я с этим справлюсь.
О том, какой опыт можно получить на зарубежном проекте, и как туда попасть
Самый первый крупный зарубежный проект я нашел на сайте Upwork. Это платформа, где люди, которым нужны разработчики, оставляют свои заказы. Потом заказчики сами начали мне писать и спрашивать, могу ли я сделать для них приложение. В 2015 году мы с моим однокурсником и очень хорошим другом Александром Зиминым победили в конкурсе приложений WWDC Scholarship и получили билеты в Калифорнию на крупнейшую конференцию для мобильных разработчиков Apple Worldwide Developers Conference и поехали. Третий источник моих проектов — конференции, на которых я активно выступал и которые я иногда проводил с 2015 года: CocoaHeads Russia, Mobius в Петербурге, AppsConf в Сколково.
Мой первый крупный хакатон — HackTrain в 2015 году в Лондоне. Участников посадили в три поезда, и мы три дня ездили по всей Англии и писали код. Из этого опыта родился проект WaveRoll, который мы потом с друзьями развивали еще два с половиной года. Прочувствовав проблемы железнодорожной индустрии, мы создали систему B2B, встраиваемую в мобильное приложение. С его помощью компания собирает данные об использовании трафика в каждом из поездов, которые ездят по всей стране.
Интервью на позиции мобильных разработчиков почти одинаковые, рабочий язык в основном английский. Собрал чемоданы — и ты уже работаешь на новом месте в другой стране
В Великобритании до последнего времени не было централизованной системы отслеживания поездов. Если поезд застревал или задерживался, машинисту приходилось звонить во все регионы, куда он собирался ехать. При этом железные дороги — самый популярный вид транспорта в Англии, было очень тяжело и сложно масштабировать. Для автоматизации масштабирования была придумана система Darwin. На ее основе мы построили собственную программу, которая работала для увеличения комфорта пользователей. Например, показывала, в какой вагон сесть, чтобы в нем точно было свободное место. А компания в свою очередь получала подробную аналитику и статистику опаздывающих поездов, карту перебоев с интернетом и мобильной связью и анализ трафика каждого вагона. Для этого мы использовали iBeacon’ы и данные с ТВ-тюнеров, чтобы составить heat map — карту данных по каждому из вагонов. Проект получил поддержку британского министерства транспорта, которое было заинтересовано в появлении такой системы. Чтобы развиваться дальше, мы зарегистрировали компанию в Эстонии и получили электронное эстонское гражданство. Оно не дает никаких бонусов для получения визы, но позволяет в несколько кликов зарегистрировать банковский аккаунт в стране или открыть там офис.
О том, с чего все начиналось
Есть стереотип, что программисты — это такие асоциальные люди, которые сидят по ночам в свитерах и прогают. Мне хотелось чего-то более социального: управлять командами, заниматься разработкой. Раньше я увлекался лингвистикой, поэтому очень долго выбирал между прикладной лингвистикой и программной инженерией. Потом я выиграл Московскую олимпиаду по информатике и отнес документы в Вышку, потому что здесь нет физики и химии — это было для меня плюсом. В конце первого модуля я еще узнавал, как перевестись на лингвистику, но когда выяснилось, что для этого нужно сдать древнегреческий, решил, что оно того не стоит.
Я начинал программировать с разработки сайтов еще в старших классах. То были темные времена PHP и платформ типа WordPress. Потом был Python, сейчас я разрабатываю на Swift. Если человек знает один-два языка программирования, третий можно выучить легко и очень быстро. Для меня Swift очень похож на Python в плане синтаксиса. Это не громоздкие конструкции из Java или нечитаемые структуры из С++. Это элегантность в коде. Учился я в основном по онлайн-курсам. Лучшим из них был курс Пола Хегарти из Стэнфордского университета. Курс каждый год обновляется, и я до сих пор пересматриваю новые версии.
В конце первого модуля я еще узнавал, как перевестись на лингвистику, но когда выяснилось, что для этого нужно сдать древнегреческий, решил, что оно того не стоит
Начиная с восьмого класса, я ездил в Летнюю компьютерную школу под Костромой. Там дети на три недели погружаются в разработку проектов или в олимпиадное программирование. После одиннадцатого класса я поехал туда уже в качестве преподавателя и ездил четыре года подряд, совмещая подготовку программы с учебой. Я преподавал в параллели промышленного программирования, где рассказывали о стандартах качества, которые применяются не к олимпиадным заданиям, а в индустрии.
О хобби и планах на будущее
В девятом классе я осознал, что однажды мне придется съехать от родителей в общежитие и готовить себе самому. Тогда для меня это казалось кошмаром. Максимум я мог пожарить себе яичницу, если сильно повезет — нарезать фруктовый салат и не порезаться. Поэтому я решил, что каждую неделю буду готовить по два блюда, снимать весь процесс и выкладывать в блог, чтобы себя замотивировать и получать фидбек. К выпуску из школы в блоге было уже около ста пятидесяти рецептов. Я понял, что мне достаточно интересно писать про еду и фотографировать, экспериментировать с рецептами. Одновременно с этим я путешествовал по Европе, останавливался у людей на каучсерфинге, немножко автостопил и записывал в блог свои впечатления. В какой-то момент это все переехало на домен foodncities.com и превратилось в более осмысленные заметки о путешествиях. Они были изданы в сборнике эссе «Блог без имени и адреса», который можно купить в России.
Я люблю серфинг, но в Лондоне тяжело серфить, поэтому остается только писать мобильные приложения для души или путешествовать. Когда человек растет как профессионал, то, что раньше у него занимало восемь часов, будет занимать три, а оставшиеся пять можно потратить на что-то более интересное. В последнее время я занимаюсь настройкой автоматизированного тестирования приложений, которые готовятся к выпуску в App Store. Человек ничего не делает, система ботов имитирует нажатие кнопки в разных приложениях, которые взаимодействуют между собой, и проверяют корректное отображение. Полноценное end-to-end тестирование — это безумно интересная тема. Один из следующих проектов в рамках этой компании — нетривиальные случаи взаимодействия с Siri, которые не разбираются в учебниках по программированию. Пока что задач много, и я надеюсь, что у меня дальше будет возможность выбирать себе проекты из смежных областей и развиваться вширь, а не вглубь.
Если вас заинтересовала программа «Программная инженерия», то на ней еще остались свободные платные места. Подать документы на платное место можно до 10 августа, заключение договоров идет до 20 августа (включительно).