Путь в ИТ: мобильный разработчик

От подростковой мечты о Макбуке к разработке приложения для предпринимателей
23
Путь в ИТ: мобильный разработчик
Аватар автора

Юра Савельев

руководитель отдела мобильной разработки в Т-Бизнесе

Страница автора
Аватар автора

Анастасия Преснякова

разработчик текста

Страница автора

Меня зовут Юра, мне 25 лет, и я руковожу отделом мобильной разработки в Т-Бизнесе.

Я захотел стать программистом еще в юности — и упорно пытался войти в профессию: самостоятельно учился, поднаторев, брал любые заказы на фрилансе, со второго раза поступил в Т⁠-⁠Банке Финтех и в 2017 году все же пробился на позицию джуна в Т-Бизнес.

Со временем дорос до мидла, а потом меня унесло в работу с бизнесом и организацию проектов. Так я стал руководителем отдела мобильной разработки, формально минуя позицию сеньора. Сейчас у меня в подчинении семь тимлидов со своими командами.

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

Что такое мобильная разработка

Мобильный разработчик, mobile developer, создает программы и приложения для планшетов, смартфонов и других мобильных устройств. Сейчас две самые популярные мобильные платформы — iOS и Android. Специфика мобильной разработки в том, что под понятие «мобильная» подходят обе эти системы — внешне похожие, но очень разные внутри. И в разработке тебе надо быть немного и дизайнером, и аналитиком, и бэкендером — то есть уметь связать все вместе и разбираться во всем.

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

Тем не менее для каждой платформы есть свои языки программирования: для iOS чаще всего пишут код на Swift, а для Android — на Java или Kotlin. Чтобы быть хорошим мобильным разработчиком, нужно разбираться и в языках, и в платформе, для которой программируешь.

Термины

Java — язык программирования общего назначения. Программа, написанная на Java, может выполняться практически на любом компьютере — с его помощью можно создавать мощные мультимедийные приложения для любой платформы, но в мобильной разработке он чаще используется для программирования приложений под Android.

Kotlin — язык программирования, тоже использующийся для разработки под Android. Полностью совместим с Java, но обладает большей масштабируемостью по сравнению с ним.

Swift — язык, представленный компанией Apple в 2014 году для разработки приложений под iOS, MacOS, Apple TV и Apple Watch. Знаменит своей простотой, быстротой действия и защищенностью.

С Sharp (С#) — язык программирования, разработанный Microsoft. Не очень модный и распространенный, но даже сегодня на нем можно делать почти все — от приложений до веб-сервисов.

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

Когда бизнес приносит идею, он отдает ее на отрисовку дизайнерам. Те готовят дизайн и показывают разработчикам. Часто они задают много вопросов, детально обсуждают проект. Бывает, видишь свежий дизайн и сразу говоришь коллеге: «Ты какой-то космолет придумал, мы это четыре года будем делать». Дизайнер немного остывает и берет в работу правки.

И, наоборот, после того, как проект прошел через разработку и тестирование, дизайнеры проводят ревью, оставляют комментарии о том, насколько результат соответствует первоначальным макетам и видению.

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

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

Образование и первые шаги в программировании

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

У меня был компьютер на Windows, а у друга — Макбук, и он программировал приложения под iOS. Я ему, конечно, завидовал: у меня примерно с восьмого класса был Айфон и мне тоже хотелось написать для него приложение.

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

Изучая Java, прошел интерактивный курс, оформленный в стиле «Футурамы», а остальное учил по коротким видеокурсам и стихийным роликам на «Ютубе». За редким исключением они довольно сухие — и без опыта трудно понять, как применить новые навыки. Поэтому я сам придумывал задачи, которые хотел бы решить: написать «Морской бой» или получить прогноз погоды через консоль. Как по мне, рост с таким подходом обеспечен, это лучше, чем только чтение книг или просмотр видео.

Просто берешь и разбираешься со всем на практике.

В общем, мне пришлось сразу положиться на самообразование, потому что информатики в школе почти не было: за первые полгода из трех лет по предмету мы написали в текстовом редакторе HTML-страничку, а потом учитель заболел и уволился.

Я сам для себя активно программировал под Android, писал несложные приложения в последних классах школы и на начальных курсах университета. Сделал, например, простую игру: на экране смартфона появлялась Земля, начинала кружиться и падать в огонь — нужно было очень быстро на нее кликать, чтобы она не упала в пламя.

Пара скриншотов игры. Я сделал платную версию с разными опциями, получилось заработать несколько долларов
Пара скриншотов игры. Я сделал платную версию с разными опциями, получилось заработать несколько долларов
1/2
Пара скриншотов игры. Я сделал платную версию с разными опциями, получилось заработать несколько долларов
Пара скриншотов игры. Я сделал платную версию с разными опциями, получилось заработать несколько долларов

Я неплохо сдал ЕГЭ, получил около 240 баллов за три предмета и в 2014 году окончил школу. Подавал документы в три вуза, первым по приоритетности для меня был Финансовый университет в Москве, потом МАИ и затем МИСИС. В последние два меня не взяли, а в Финансовый я поступил на бюджет во вторую волну — на прикладную информатику. Совсем топовые вузы я не рассматривал, так как понимал, что баллов недостаточно, а количество университетов, куда можно подать документы, ограничено.

В университете была теория, которая помогла чуть-чуть структурировать знания, в остальном преподавались не слишком релевантные технологии. Нас учили синтаксису, объектно-ориентированному программированию, а я уже знал обо всем этом еще со школьного возраста. К третьему курсу я уже загружал в «Эпстор» приложения, которые писал в свободное время, тогда как на занятиях мы разрабатывали что-то не особо применимое на языке C#.

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

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

Первый рабочий опыт в ИТ

В начале первого курса я попытался попасть на курс по Android-разработке от Т⁠-⁠Банка Финтеха, но не прошел отбор. Через пару месяцев мы с тем самым другом, у которого был Макбук, влетели в авантюру.

Какой-то мужик нашел нас через «Авито», где мы публиковали объявления о наших услугах как разработчиков, и обратился к нам с госзаказом: надо было разработать гид по городу для одного областного министерства туризма. Мы, два восемнадцатилетних оболтуса с нулевым опытом в коммерческом программировании, конечно, согласились: 300 000 ₽ на двоих и на все полтора месяца.

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

Закончили мы выгоревшие, зато на свои 150 000 ₽ я купил желанный Макбук.

Примерно в то же время я откликнулся на вакансию в Т-Инвестициях. Меня позвали на собеседование, и на нем, кажется, я всех расстроил и расстроился сам: мои знания были совсем не структурированы, не было даже понимания, на какие вопросы я ответил нормально, а на какие — не очень. Таким был мой первый — неудачный — опыт собеседований.

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

Отдохнув, наконец перешел на iOS-разработку, как и всегда хотел. В 2017 году, на третьем курсе, я снова подался в Финтех, но уже на iOS-разработчика, потому что просто так сдаваться не собирался. Было больше мотивации, знаний, уверенности в себе, а еще было немного спокойнее, потому что я представлял, как проходит отбор. В школу я прошел.

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

В Финтехе учиться было интересно, хотя и непросто. Трехмесячный курс строился вокруг базовых iOS-тем: управления памятью, многопоточности и других. Обучение пришлось на доковидное время, поэтому мы собирались на занятия в штаб-квартире Т⁠-⁠Банк у станции метро «Водный стадион». Нас было человек 30, и мы знали, что кто-то попадет на собеседование по окончании учебы, а кто-то — нет. За домашние задания и разные челленджи мы получали баллы, и тех, кто набирал много, в итоге звали на собеседование.

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

Я и мои однокурсники в Финтехе в 11 вечера — пытаемся сделать дополнительное задание в аудитории, чтобы получить больше баллов
Я и мои однокурсники в Финтехе в 11 вечера — пытаемся сделать дополнительное задание в аудитории, чтобы получить больше баллов

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

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

Как я наконец попал в Т⁠-⁠Банке

В конце курса я оказался среди тех, кого позвали на собеседование в Т⁠-⁠Банке на джуна. Собеседование длилось около полутора часов, я очень переживал.

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

Я не ответил на 10—15% вопросов. Мой будущий тимлид, один из двух интервьюеров, даже говорил второму: «Чего ты с ним возишься», — имея в виду меня. Но в итоге я получил тестовое задание — написать приложение для Т⁠-⁠Банк Новостей. Я сделал его в черно-желтых неоновых тонах, с анимациями, иконками. Код был не очень, но меня похвалили за то, что удалось сделать какой-никакой продукт. Думаю, мне помог опыт работы и экспериментов над собственными приложениями.

Главное при прохождении первых собеседований — не волноваться, проявлять заинтересованность. Если что-то пошло не так, не опускать руки и продолжать пробовать и стараться. В итоге меня взяли джуном в Т-Бизнес. Даже запомнил точную дату — 07.07.2017, три семерки. Я попал в команду, которая работает над мобильным приложением на iOS.

Я на стенде Т⁠-⁠Банка в рамках конференции мобильных разработчиков Mobius 2017
Я на стенде Т⁠-⁠Банка в рамках конференции мобильных разработчиков Mobius 2017

Работа в Т⁠-⁠Банке

Когда я только пришел, у меня было сильное желание быстро расти и выделяться. Соревновательная жилка подталкивала в нескольких направлениях.

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

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

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

Возможно, вы видели эти экраны и пользовались ими — в них есть и мой вклад
Возможно, вы видели эти экраны и пользовались ими — в них есть и мой вклад

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

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

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

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

Сейчас у нас отличная команда, которая проводит собеседования, я уже ими не занимаюсь.

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

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

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

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

Как проходят собеседования в Т⁠-⁠Банке

Раньше у нас была одна полуторачасовая секция, на которую интервьюеры — представители от команд, потенциально заинтересованные в кандидате, — приходят его проверить. Например, сразу три группы хотят себе мобильного разработчика: команды мобильного банка, Инвестиций и Т-Бизнеса. Значит, кандидата все полтора часа будут разрывать между собой вопросами минимум три человека. Это проблема. Еще было не очень классно, когда три классных крутых тимлида тратят свое время, а кандидат оказывается ни о чем.

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

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

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

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

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

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

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

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

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

Не дайте синдрому самозванца съесть себя: говорите коллегам и себе, какие вы классные.

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

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

Наша рабочая команда, конец 2017 года
Наша рабочая команда, конец 2017 года

В жизни каждого разработчика, наверное, наступает момент, когда хочется все поменять. Я на какое-то время «выбивался» из команды, вновь уходил разрабатывать банковскую авторизацию в core-команду — я в принципе был в ответе за старую версию на нашем проекте и по наследству отправился помогать разрабатывать общую. Потом вернулся в Т-Бизнес.

Так я попал в ситуацию, когда я вроде и часть команды, но в то же время работаю над сторонними задачами с другими разработчиками. Например, мы с коллегой глубоко погрузились в управление релизами. Это автоматизация планирования, реализации, тестирования и внедрения изменений в ИТ-продукт

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

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

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

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

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

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

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

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

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

На прогулке
На прогулке

Как дорасти до руководителя

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

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

Вот как обычно бывает, мой путь — не исключение.

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

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

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

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

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

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

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

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

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

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

Наша команда сейчас — под моим руководством семь лидов, а у них собственные команды
Наша команда сейчас — под моим руководством семь лидов, а у них собственные команды

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

Еще одна сложность — перестроиться с программирования на заполнение каких-то табличек и посещение множества встреч. В целом у меня было понимание, что и как делать, просто окончательно приходишь к руководству только на практике. Сейчас уже 80% рабочего времени уходит на встречи, остальные 20% — на стратегическое планирование, решение то и дело возникающих проблем.

Самое трудное тут — быстро переключать контекст.

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

Еще, когда становишься руководителем, надо много разговаривать с людьми вместо того, чтобы писать код. И если с кодом все понятно — ты написал «сделай то», и оно делает, — то с людьми нет: ты говоришь «сделай то», а получается совсем не то или вообще ничего не получается. Или получается, и ты очень радуешься.

Так начинаешь понимать: к счастью или сожалению, люди не код. И просто ищешь к каждому свой подход.

Новости из мира образования, советы по карьере и учебе, вдохновляющие истории — в нашем телеграм-канале: @t_obrazovanie.

Анастасия ПресняковаКак вы вошли в ИТ? Расскажите свою историю:
  • LentenРазговаривал с девушкой, которая занимается обучением желающих Войти в айти. Говорит это как накачать кубики пресса. Из 150 человек курс заканчивают 3 Я думал половина или треть, но тут вообще ппц. 2 процента Хотя может курс не очень конечно)11
  • Всё такДитё какое-то2
  • Оранжевый ЛисПрограммисты тинькофф - это что-то с чем-то... Три недели не могли привести в порядок свой челлендж. Банк, который сделал ставку на онлайн, мог бы себе позволить нанимать лучших айтишников. И очень раздражает ваш робот в техподдержке, как будто сам с собой общается, вообще не в тему всё, что он предлагает.9
  • Никита МизинLenten, ну так и есть. Нам в школе предложили бесплатное обучение программированию, факультативом. Преподаватель из вуза, практикующий, никакой воды, все максимально практично и по делу. Правда это был год 2003. Сначала набралось 60 человек, поделили на 2 группы. Уже через месяц ушла половина, осталась одна группа в 30 человек. К концу года осталось 5 человек из которых только 3 ходили регулярно, я один из них. И по итогу я не стал работать программистом, хоть и остался в сфере и этот опыт и принципы многое дают для понимания. Работа программиста скучная, если в течении лет 5-8 не перейти на управляющую позицию, вас может отвернуть от нее на всю оставшуюся жизнь. Так что нужна рубрика не только Вайти, но и Выйти из айти)5
  • Lenten"если в течении лет 5-8 не перейти на управляющую позицию, вас может отвернуть от нее на всю оставшуюся жизнь." после 11 лет работы программистом пустил скупую слезу19
  • Никита МизинLenten, и вы кодите столько же, сколько и в первый год работы? Не менторите, не собеседуете, не ревьювите, не сидите пол дня на созвонах? Может быть несколько причин: 1) Ваш стэк обновляется постоянно и есть эффект новизны 2) Вы уже свичнулись разок 3) Ваша фамилия Кармак) 4) И есть просто люди для которых работа это работа, они не ищут челленджей, а просто приносят домой деньги, я и таких знаю1
  • LentenНикита, 1 2 42
  • ШевальеОй, это больше не актуально. Войти в ойти на сегодняшний день это все равно ещё обсос. Теперь уважаемый чел - это валютная удаленка и работа за пределами РФ.4
  • AlexxxMSKТак бы сразу и написали, что наши баги связаны с одним юношей. Превратили всех пользователей ТИ в тестеров. Только нам не платят, а платим мы регулярно своими потерями. Если бы не все эти бесконечные и растущие баги, то ваш софт один из лучших с этим одним и жирным НО.4
  • Panzer KaiserИсторию можно закончить на "мне 25 лет и я руководитель". Так каждый может. Вы в 30-40+ попробуйте. Каждые 10 лет повышают сложность на порядок. Все в дело в HR, политике ИТ компаний и прямой дискриминации. Не каждому в принципе дано. А кому дано мало кто доходит до конца2
  • Panzer KaiserНикита, что значит кодите? Думать программисту в среднем приходится в разы больше, чем клацать по клаве.2
  • Fat pandaНдаа, глядя на эти фотки в духе "Наш выпускной в 9-м классе", че-то я сомневаюсь, что после 40 реально зарулить в это самое айти))6
  • Неким ВКлассика тж, красивая и няшная «духота», местами по делу местами налили воды. В принципе ничего против не имею, но зачем это читать категорически не понимаю1
  • rediskaС Sharp (С#) — язык программирования, разработанный Microsoft. Не очень модный и распространённый :))) Ну ну)) Вон какой не распространённый и не очень модный)2
  • Никита МизинPanzer, это и значит кодить, решать задачи прикладным способом. Речь о том что с возрастом это многим надоедает. И человек понимает, что сидя в кодинге, он решает одну задачу в день. А набирая команду, управляя ей, ведя проект, он помогает решать 10-20 задач за день. Это более продуктивное использование его знаний и навыков.0
  • Спокойный ДенисНадежда, недалеко от правды ушли, на hh, Junior Frontend Москва, будет 50 вакансий с 400+ человек на место)2
  • Провинциальный ИТ-шникШевалье, здравствуйте, пришла вас поблагодарить, за совет данный полтора года назад уже под другим дневником, я честно ему последовала, по ходу поражалась откуда вы могли так цифры зп угадывать )))) но факт остался, на прошлой неделе я получила оффер и таки да, ЗП почти как у американской технички, теперь вот буду смотреть на международный рынок. Еще раз благодарю и желаю вам успехов в работе и не только.1
  • ШевальеПровинциальный, спасибо, рад что удалось помочь )1
  • ШевальеПровинциальный, можете подсказать дневник, вспомню, что писал1
  • Провинциальный ИТ-шникШевалье, вот этот дневник, https://journal.tinkoff.ru/diary-it-specialist-tomsk-66k/#c427186 вы дали мне действительно стоящий совет1
  • ШевальеПровинциальный, там я в основном описал все свои карьерные ошибки. Как раз долго сидел в вендерной параше, успел сделать все ошибки. Ну разве что однажды отказался от работы, где больше на 15 тыщ рублей, и в последствие зп у меня была уже в 4 раза больше ) Поэтому приятно, что кто-то сможет эти ошибки не повторить. А по валютной удалёнке посмотрите стрим Антона Назарова, там он исчерпывающе приводит все ресурсы, процесс поиска, собеседования и.т.д2
  • Провинциальный ИТ-шникШевалье, большое спасибо, обязательно посмотрю, в ближайшее время планы активно работать на новом месте и учить язык, а там уже посмотрим, у меня семья, поэтому переезд пока вещь трудноосуществимая, но есть куда стремится во всяком случае. Рада что у вас все хорошо.1
  • Антон ВихляевОчень классная история! Тоже прошел собеседование в Тинькофф на iOS-разработчика после Финтеха и теперь жду команду.0