В 16 лет Максим Кирилов заинтересовался тем, что находится внутри системного блока компьютера, разобрал его и собрал заново. Сегодня он работает старшим разработчиком в «Тинькофф» и совершенствует приложение, которым пользуются десятки миллионов людей. О том, как он прошел путь между этими точками, рассказываем в статье.
Первое касание с IT: мне стало интересно, что в этой коробке
Интерес к IT был со мной почти всю жизнь. В шестом-седьмом классе у моего друга появился компьютер. Мы играли в Doom, Quake, разбирались с дискетами и операционной системой. К концу десятого класса компьютер появился и у меня. На вторую-третью неделю мне стало интересно, что в этой коробке. Я разобрал системный блок, посмотрел, что где находится, какие шлейфы куда ведут, собрал компьютер заново. В тот момент я попал в сообщество людей с компьютерами. Мы решали вместе какие-то компьютерные проблемы: установка Windows, доступ в интернет, к сети, — обменивались файлами, дисками, играми, фильмами.
Тогда начался мой путь в диагностику компьютеров, я начал разбираться в этом. Стало поступать много обращений извне: помоги с тем, разберись с этим. Экзамен по информатике я сдавал так: в школу привезли компьютеры, и учительница не смогла настроить локальную сеть. Она предложила нам сделать это в обмен на оценку по экзамену за одиннадцатый класс. Мы настроили сеть, прописали IP адреса вручную, поняли, что компьютеры между собой общаются. Параллельно поставили на компьютеры GTA, поиграли, получили свои пятерки. Тогда я уже знал, что свяжу свою жизнь с IT и пойду по этому направлению учиться.
На тот момент, в нулевых, было не очевидно, что IT — это очень перспективная сфера, специалисты из которой совсем скоро будут очень востребованными и высокооплачиваемыми. Мне просто были интересны компьютеры, и я пошел в Омский колледж транспортного строительства на IT-программу. Это образование дало мне базу: сети, теории статистики, принципы работы ПО, программирование на Delphi и Pascal.
От сборщика компьютеров до сисадмина
На последнем курсе колледжа я устроился специалистом техотдела в компанию «Ритм», которая продавала компьютеры. В мои обязанности входила предпродажная подготовка: сборка компьютера, запуск, тестирование, установка софта. Там я проработал до кризиса 2008 года, когда меня сократили. К тому моменту исключительно железо мне наскучило и я решил двигаться дальше, в системные администраторы.
Чтобы попасть на эту должность, я решил освежить знания из колледжа: вспомнил, как работают сети, протоколы, изучил Active Directory, чтобы удаленно управлять компьютерами компании, устанавливать ПО, открывать или ограничивать доступ к нему. В должности системного администратора софтом и железом занимаешься уже пятьдесят на пятьдесят. В небольших компаниях работы с железом больше, потому что оно может быть не самым свежим и требовать обновления.
Моей первой работой сисадмина стало администрирование новостного портала и интернет-магазина. Я работал с сайтом, а также обслуживал два офиса. Я проработал в этом месте год и устроился в компанию «Автоматизация», которая обслуживает компьютеры в Омске. За четыре года эта компания многое мне дала. Я научился работать и зарабатывать деньги, общаться с клиентами, применять свои навыки на больших масштабах. В какой-то момент у меня на обслуживании было около 300 компьютеров в четырех компаниях. Нужно было автоматизировать задачи, чтобы успевать всех клиентов обслуживать.
В один из отпусков я съездил в Петербург и понял, что хочу дальше расти и развиваться здесь. После переезда поработал еще два года системным администратором и увидел, что в этой профессии расти уже некуда, она не дает мне ничего нового.
Первый шаг в Android-разработку
На последних местах работы сисадмином я писал скрипты автоматизации, меня это очень увлекло. Я подумал: почему бы мне не попробовать кодить?
У меня уже был опыт самостоятельного обучения, я умел структурировать знания и составлять план учебы. Начал я с изучения Java. Многие думают, что для того, чтобы стать разработчиком, нужно очень много всего знать. Я считаю, что знать язык программирования для старта достаточно. Если вы умеете программировать на Java или Python, вас уже могут взять джуном чинить баги на зарплату 45 000 рублей. Если вы хотите попасть выше, например в мобильную разработку, нужно изучать платформу, с которой планируете работать. Я начал изучать Android-фреймворк, писать простенькие приложения с двумя кнопками, учиться выходить в сеть. Это были проекты, которые никому не покажешь и в портфолио не положишь. Мне было интересно, как работает какой-то элемент в Android, и я под него писал приложение, чтобы разобраться.
После самостоятельного обучения я пошел на курс по Android-разработке. Мне было важно проверить, насколько то, что я делаю самостоятельно, соответствует запросу рынка и актуально в комьюнити разработчиков. Обучение в группе — это хороший способ актуализировать и систематизировать свои знания, настроить какой-то нетворк. На курсе я познакомился с людьми, с которыми позже встречался на конференциях и собеседованиях. Строчка про обучение в резюме дала мне хороший буст, меня стали чаще звать на собеседования.
Если не знаете, что написать на Java, пишите RSS-парсер
Первым приложением, которое я был готов показывать в портфолио, стал RSS-парсер. Я хотел читать новости из разных источников в одной ленте. Я написал для этого приложение, которое собирало ссылки из RSS-лент разных сайтов в одном месте. Я мог скролить ленту бесконечно — приложение сортировало новости по времени. Это приложение я показывал на собеседованиях и коллегам, с которыми я работал. Уже на позиции джуниор-разработчика я продолжал его поддерживать. Позже, когда я стал мидлом, у меня выросло количество задач и они были интереснее и сложнее, чем мой pet-проект. К тому же в свободное время мне уже хотелось отдыхать, а не кодить.
RSS-парсер — это тривиальная идея, многие пишут такое приложение. Оно хорошо тем, что каждый может набить на нем свои шишки. Если не знаете, что написать на Java для тренировки, — попробуйте написать такой парсер. В интернете очень много информации о том, как это сделать, у вас есть куча открытых источников, откуда можно парсить данные. На примере такого приложения можно отработать очень много задач, с которыми вы, скорее всего, столкнетесь на работе: не работает интернет — нужно показать ленту офлайн, не отвечает сайт — нужно решить эту проблему.
Первая работа в разработке
Когда я изучил Java, я устроился сисадмином в продуктовую компанию «Фабрика лояльности». Это международный стартап, который создает приложения для программ лояльности в общепите. Мое условие при найме было такое: через год я либо перейду на должность разработчика, либо уволюсь. Мне согласились дать такую возможность. Через год учебы и работы я прошел собеседование на андроид-разработчика.
Я был в команде, которая разрабатывает и поддерживает QR-сканер для официантов. На проекте нужно было доработать и адаптировать приложение для американского рынка. Дизайн у этого приложения был скромный, меня подстраховывал тимлид, поэтому совершить ошибку было не страшно. При этом на проекте было очень много суеты, хаоса, горящих сроков. Проджект-менеджер мог подойти и сказать: эта фича нужна уже завтра, — и нужно было сидеть и быстро делать все в ночи. Но мне нравились этот дух стартапа и скорость.
Как меня не взяли в Сбер без высшего
Перед работой в «Фабрике лояльности» я проходил собеседования на другие позиции. Например, меня приняли на должность джуниор-разработчика в Сбер, сделали оффер, начали оформлять документы. Уже на последней стадии мне сообщили: простите, мы не можем вас взять, все специалисты в Сбере должны быть с высшим образованием. Для меня это был удар, я очень хотел попасть в Сбер, на тот момент эта работа казалась мне очень престижной.
Я понял, что могу нарваться на что-то подобное в будущем, поэтому решил закрыть гештальт и получить высшее образование. В 2017 году я поступил в Санкт-Петербургский политех на программу «Информационные системы и технологии». Учиться было несложно, на первых двух курсах большинство предметов мне перезачли, потому что я уже проходил их в колледже.
Так как мобильная разработка была для меня уже знакомой сферой, я решил выбрать для дипломной работы что-то новое, устроить себе челлендж. Я взял тему «Сравнительный анализ нейросетевых методов распознавания эмоций в речи». В процессе исследования я на базовом уровне погрузился в machine learning, написал собственную нейросеть и в итоге защитил диплом на «отлично». Я благодарен университетскому образованию за возможность получить базовый некоммерческий опыт написания нейросетей.
Также учеба стала для меня хорошим нетворкингом, многие мои одногруппники уже работали в IT, я расширил свои связи в индустрии. Другие ребята пришли в университет без опыта работы, и у них не было уверенности. Они думали, что нужно гораздо больше знаний, что попасть в IT сложно, и я для них этот миф развеял.
Новая работа должна бросать вам вызов
В «Фабрике лояльности» я вырос от джуниора до мидла. Путь до сеньора у меня сложился в двух других компаниях.
Я всегда считал так: новая работа должна бросать тебе вызов. Если ты знаешь, что в компании тебя ждут задачи, с которыми ты еще ни разу не работал, — нужно туда идти. Если на новом месте делать те же задачи, что на предыдущей работе, — это не рост. В «АБ Технолоджи», компанию — разработчик решений видеоаналитики и стримингов, я пришел на позицию Android-разработчика в грейде мидла. Эта компания многое мне дала. Я работал на проекте, связанном со стриминговым вещанием, по типу Кинопоиска или ivi. В этом приложении я намного больше писал продуктовых фичей, плотно работал с тестированием, стал более самостоятельным. В компании у меня был хороший наставник, с которым мы много дискутировали в здравом ключе.
После этого я работал в российском подразделении международной компании Intermedia. Туда я тоже пришел на челлендж: мне дали работать с флагманским продуктом — чатом для корпоративного бизнеса. Это было приложение для европейского и американского рынка, в нем вообще не было русского языка. Работа над ним помогла мне прокачаться в новой теме, потому что для чатов есть свои протоколы и эта тема для меня была темным лесом. Я вырос по зарплате и взял на себя больше ответственности. В первый год моей работы в команде разработки на проекте были только я и тимлид, а значит, времени прокрастинировать не было и нужно было четко перформить. Я поработал в этой компании три года, до июля 2022-го, в последствии им пришлось свернуть свою деятельность и уйти из России.
На должности сеньора в «Тинькофф» повысилась креативность
В Intermedia мы обсуждали мое повышение до сеньора, но в феврале-марте 2022-го все эти процессы, в том числе повышения зарплат, заморозили. Стало понятно, что нужно искать другие варианты работы, и в компании нас негласно поддерживали.
В «Тинькофф» я пришел уже на должность старшего разработчика. Эта работа тоже была для меня челленджем. В банковской сфере я ничего не понимал, значит, работать будет интересно. К тому же это очень консервативная отрасль, где чрезвычайно важна безопасность: не дай бог произойдут утечки данных у клиентов. Поэтому все новые фичи по многу раз тестируются.
Я работаю на основном продукте — мобильном банке «Тинькофф» на Android. У нас очень много пользователей, десятки миллионов. На должности сеньора намного повысилась креативность. Мне уже ставят задачу так: должно работать это, а как ты реализуешь — целиком зависит от тебя, твоих идей и фантазии. Я должен предложить решение, которое мы можем обсудить и принять. Конечно, стало больше ответственности. К моменту, когда становишься сеньором, у тебя уже есть опыт, как строить системный дизайн приложения. Ты уже знаешь, как решать задачи нового уровня, ты готов. Видишь узкие места в приложении, отдельные компоненты, как в масштабе работает система. Проект огромный, в нем участвует больше 100 разработчиков. Первое время я только погружался в работу, но в целом уже решал задачи другого уровня: контролировал разработку фичей с нуля до релиза.
Ожидания и реальность: IT — это очень скучно
В профессии айтишника нет вещей настолько раздражающих, чтобы я все бросил. Но нужно понимать, что это на самом деле очень скучная работа.
Можно быть журналистом или фотографом, пилотом «Формулы 1», инструктором по мотокроссу, летать по миру и видеть его красоту. Когда ты программист, даже если ты путешествуешь — большую часть времени ты проводишь за компьютером. Конечно, благодаря Android-разработчикам миллионам людей становится удобнее пользоваться приложение банка и нажимать на кнопки. Но мы не решаем проблемы уровня «Отправить миссию на Марс».
Даже если вы попадете на работу в компанию FAANG, там тоже будет та же скучная работа с кодом. Если только вы не работаете над искусственным интеллектом, все остальные задачи не будут отличаться от того, что вы делаете в «Тинькофф». К этому нужно быть готовыми.