Сайты-визитки бесплатно, работа в веб-студии и техподдержке — веб-разработчик TalkBank Семен Русин прошел огонь и воду, чтобы стать сеньор-разработчиком. Он рассказал о своем опыте роста в веб-программировании и поделился инсайтами по итогам 150 собеседований в IT.
Теории из университета не хватило, и я пошел на курсы
Я начал интересоваться информатикой еще в школе и после поступил на IT-специальность в СПБГУТ имени Бонч-Бруевича. В первом университете у меня было чувство, что это не мое. Я был молод и горяч, отчислился и пошел поступать в другое место. Сейчас я думаю, что можно было просто перевестись. Зато в новом вузе на направлении «Информационные системы и технологии» я почувствовал себя на своем месте, закончил обучение и стал бакалавром.
Несмотря на то, что мое высшее образование связано с IT, в университете я получил больше теории, чем практики. Чтобы наработать навыки, я в какой-то момент решил пойти на курсы по HTML и CSS. Все было хорошо, пока я не понял, что этого недостаточно, чтобы сделать хороший сайт. Тогда я взял второй курс, по PHP, и смог начать свой путь в IT.
Зачастую на старте проблема разработчиков — найти первые проекты. Я решил ее тем, что начал делать сайты-визитки для друзей и знакомых бесплатно или за минимальную стоимость. Я делал простейшие сайты с системами управления контентом на WordPress или Joomla, ModX. С высоты сегодняшнего уровня я понимаю, что было много не лучших решений, технологии тогда были еще не на текущем уровне. Но так я получил свой первый опыт.
На первой работе я постигал бэкенд
На первую работу меня пригласили преподаватели с курса PHP. Они основали небольшую веб-студию и позвали меня писать бэкенд. Мы занимались в основном сайтами-визитками и каталогами, изредка были проекты небольших интернет-магазинов. Мы работали в основном с маленькими компаниями, для которых основной задачей сайта было показать контент, не беспокоясь о скорости загрузки, оптимизации и масштабировании.
Нас было в команде четверо. Каждый делал все, что в его силах. Я был немного и верстальщиком, и бэкендером, насколько позволяли мои знания.
На этой работе я постигал бэкенд. Если понимал, что с чем-то не справляюсь, спрашивал у старшего сотрудника, как сделать правильно. Например, однажды мы делали сайт для архитектурной мастерской. Фон сайта должен был состоять из анимаций чертежа, которые накладывались друг на друга. Мне было очень сложно реализовать все так, чтобы смотрелось красиво, не глючило и не сжирало все ресурсы компьютера. На тот момент задача казалась очень сложной.
Весь сервис упал из-за русской «с» в коде
Ошибок в карьере я совершал много и продолжаю совершать. Но без них никак не вырасти.
Как-то раз за день до сдачи проекта у нас в коде появилась ошибка. Ни одна страница сайта не открывалась. Ошибки никак не логировались, поэтому нужно было искать их вручную. Мы не могли найти, что не так, на протяжении многих часов. В итоге решили все переписать заново. Нам пришлось остаться в офисе на ночь. К 11 утра следующего дня мы закончили. Никому не советую так делать, но у нас не было других вариантов. Проект нужно было закрыть.
В конце концов мы выяснили, что в изначальном коде у нас вместо английской C стояла русская «С». Сейчас это гораздо проще найти, потому что редакторы кода подсвечивают такие ошибки. У нас в ModX такого функционала не было.
Я думаю, что в нашей среде об ошибках нужно больше говорить и не стесняться этого. Если специалист готов признать ошибку, поработать с ней, понять, почему так вышло и исправить, это показывает, что человек может расти. Есть множество историй, как в Microsoft кто-то положил прод, но никого не уволили, потому что на обучение сотрудников потратили время и миллионы долларов. Ошибаться — cовершенно нормально. Это один из шагов от джуна до синьора.
Техподдержка помогла мне увидеть разработку со стороны клиента
Со временем в веб-студии стало меньше заказов. Одновременно с этим я начал понимать, что хочу заниматься немного другим. На время я ушел на фриланс и делал сайты для разных заказчиков. Это были проекты не лучшего качества, потому что на фрилансе никто не проверяет ваш код. Нет второго мнения, а, значит, вы можете до последнего быть уверенным, что все нормально.
После фриланса я пошел работать в техническую поддержку рекламного агентства. Компания помогала клиентам размещать рекламные блоки у себя на сайтах. Часто рекламные блоки размещали неправильно, они не отображались на сайтах. Тогда недовольные клиенты шли ругаться ко мне, а я подсказывал, как исправить ошибку. В 90% случаев ошибка была на стороне клиента, но нужно было терпеливо во всем разбираться. Работа научила выдержке, а еще — смотреть на продукт со стороны клиента.
Наш отдел сократили, и я продолжил свой путь уже в продуктовой разработке.
На первом продукте я понял, что айтишник — не главный человек в команде
Я продолжил работу в другой рекламной компании, так как был опыт. Компания размещала рекламные блоки, за которые рекламодатель платил по количеству кликов. Я работал в отделе интеграции. Мы с командой разработали систему, которая учитывала клики по баннерам или рекламные действия. На основе статистики из этого инструмента клиентам формировали чеки за рекламу.
Мы постоянно дорабатывали систему, добавили в нее фичу логирования, объединения кликов в пачки. В итоге разработали платформу, которая позволяла понимать, что происходит с рекламой, в режиме онлайн.
Я взаимодействовал с коллегами из других отделов: финансистами, менеджерами по продажам и пр. Тогда я понял, что разработчику важно понимать, как работает бизнес-ценность продукта, как на нее влияют решения. По сути, айтишник — не главный человек в команде, не он приносит бизнесу деньги. Приносят прибыль те, кто продукт продает.
Для руководства не важно, сколько задач вы взяли на себя и одновременно обрабатываете, не важно, сколько вы отдали на тестирование. Выполненной задача считается только после релиза. Если ни одна фича не зарелизилась, значит, вы ничего не успели сделать.
Мы создали крутой современный продукт, но у компании кончились деньги
После меня направили в другую компанию из того же рынка, чтобы сделать похожий продукт для них. Мы с командой работали над ним на протяжении года. Это был, по сути, стартап, где нас не контролировали жестко, дали много свободы. Команда была небольшой, и мы поняли, что каждый должен повысить свои навыки, чтобы создать качественный продукт. Это был один из двигателей нашей работы — нам интересно было потрогать разные инструменты и подходы. В стартапе решили разобраться с фреймворком Laravel и попробовать все технологии. Это очень богатая экосистема со множеством платных продуктов.
Мы сделали State of the Art — самый актуальный продукт, который только может быть. Но не успели довести проект до конца. К сожалению, у компании кончились деньги. Продукт наш жив, его модифицировали, и есть слухи, что снова хотят запустить.
Если на секунду что-то упадет в рекламе, произойдет непоправимое
После стартапа я перешел на работу в компанию LuckyGroup. Это лидер на рекламном рынке CPA, организатор главной конференции в России по этой тематике. Я разрабатывал систему для учета рекламных кликов.
В работе на масштабных проектах важна скорость, то, как вы записываете большой объем данных. Для интернет-магазина тысяча заказов в день — очень хорошо, для рекламы — мало. Нам приходилось обрабатывать миллионы кликов в день. Если при запуске в прод хотя бы на секунду что-то упадет, произойдет непоправимое. Нужно аккуратно работать с выкаткой, ничего не ломать при запуске тестовых окружений, предусматривать возможность быстро откатить к предыдущей версии.
Также была задача организовать сбор и хранение данных. Их очень много, десятки миллионов записей в сутки. В крупном рекламном бизнесе задачи сильно сужаются. Ускорить сервис на процент или даже долю процента — экономит большие деньги.
В финтехе всегда есть челлендж
Со временем рекламный бизнес стал для меня понятным. Мне захотелось развиваться, пробовать себя в новой сфере. Искал проекты с интересными задачами. Остановил выбор на финтехе.
Устроился на работу в финтех-компанию TalkBank. Сейчас мы делаем платформу, которая связала бы банки и мессенджеры. Чтобы можно было работать с банковскими приложениями и оплачивать покупки через WhatsApp* или Telegram-боты.
На этом месте работы я перешел на новый фреймворк Symfony. Этот инструмент считается более сложным, чем Laravel. Я бы сказал, что сложнее объяснить его принцип работы. У Laravel и Symfony разные вещи происходят «под капотом», снаружи все работает аналогично: вставляете код — происходит какая-то магия — готово.
Сейчас мы решаем задачи интеграции сервиса с банками: настраиваем взаимодействие с разными компонентами системы, логируем все связи, ставим мониторинг, чтобы ничего не падало, добавляем платежные инструменты типа СБП и QR-кодов. Наша задача — постепенно вводить новые технические возможности. Финтех в этом плане напоминает мне рекламный бизнес, потому что здесь постоянно появляется что-то новое, не устаешь от похожих задач, всегда есть какой-то челлендж.
Вас можно назвать сеньором, когда вы готовы брать большую ответственность
В вопросе, как оценивать уровень специалиста, я ориентируюсь на западный образец. Джун — сотрудник, который может решить практически любую задачу, если ему подробно расписать, как это сделать. Миддл — специалист, который уже сам может решать задачи, без инструкций, ему нужно только сказать, что нужно сделать или внедрить. Сеньор — это это человек, который может проектировать архитектуру сервиса, разбивать на задачи конкретную проблему бизнеса. В своих решениях он должен быть уверен и нести ответственность за весь сервис целиком.
Часто рынок решает по-другому и сеньором считается человек, который, например, проработал пять лет. Мне кажется, это излишнее упрощение и грейд разработчика должен оцениваться по тому, что он может вложить в общую работу, какую ценность может принести бизнесу.
Для работы программистом нужно резюме, портфолио и любопытство
За свою карьеру программиста я поменял довольно много работ, часто не по своей воле. В процессе я понял, что в том, чтобы продвигаться и расти в IT, нет никакого секрета. Самое главное — быть проактивным.
Работа программиста состоит в том, чтобы постоянно узнавать новое. Технологии, которые были актуальными пять лет назад, уже мало используют. Если вы из тех, кем движет любопытство, кому всегда не хватает информации, это профессия для вас.
Сейчас на рынке много джунов, следовательно — много кандидатов на одну вакансию. Рекрутер посмотрит на ваше резюме несколько секунд. Важно, что он в эти несколько секунд увидит: нужно дать выжимку того, что вы можете, что вы себя представляете, прописать стек технологий. Если есть портфолио, ставьте ссылку на него как можно выше.
Когда вы ищете первую работу, портфолио — это ваш главный козырь. Покажите то, что вы разрабатывали, вне зависимости от того, вышел ли проект на продакшн. Показать два-три пет-проекта — гораздо эффективнее, чем доказывать, что вы молодец, на одних словах. С точки зрения оформления, на российском рынке можно написать для каждого кейса набор технологий и как вы их использовали. На международном рынке ценят результат: например, вы внедрили мониторинг и повысили скорость обработки ошибок на 15%.
Сопроводительные письма лучше писать индивидуально под каждую вакансию: рассказать немного о себе и показать, что конкретно вы можете дать компании. Например, изучить их сайт и найти точки роста, указать их в письме. Если вы придете с конкретным предложением и покажете, что ваши навыки хорошо подходят компании, это повысит ваши шансы получить оффер.
Подготовиться к собеседованию можно только через сами собеседования. Можно прочитать на эту тему сто книг и статей, но прийти на первое собеседование, получить отказ и провалиться в сильный стресс. Первые неудачи могут вызвать синдром самозванца: значит, на предыдущем месте работы меня переоценили, а на самом деле я ни на что не способен. Я тоже проживал такое. На самом деле, с вами все в порядке, просто к отказам нужно привыкнуть и продолжать пробовать. Из 150 собеседований, которые я прошел, только 20 завершились рабочими офферами. Когда вы ходите на собеседования, вы узнаете, чего ждет от вас рынок, что сейчас актуально. Даже если вы не устроитесь на работу, постарайтесь получить от собеседования опыт и пользу. Запросите у работодателя обратную связь, часто для них это несложно.
Осознание бизнес-целей убивает романтику в IT
Самое интересное в IT — это учиться чему-то новому и реализовывать это. Но не всегда вы сможете делать только то, что хотите, и это, наверное, самое главное разочарование. Нужно делать не только что-то классное, но и делать его полезным для бизнеса.
Также нужно понимать, что рост по грейдам будет значить меньше работы с кодом. Если вы джун, вы только пишете код, потом на уровне миддла вы уже можете писать документацию, тесты, логирование. Когда вы сеньор, вы пишете код только 30% от рабочего времени. А для тимлида раз в две недели написать кусочек кода — уже хорошо. Если ваш драйвер в профессии — это именно программирование, скорее всего стоит оставаться на позиции мидла и становиться гуру в этом грейде.
Миф о легких деньгах и работе с Бали — тоже всего лишь миф. Да, в IT платят выше остального рынка, но и требования к вам будут соответствующие. Вам нужно постоянно интересоваться новыми технологиями и инструментами, пробовать фреймворки. Работа в IT — это своего рода постоянный набор ачивок как в видеоиграх.
* Принадлежит компании Meta, деятельность которой признана экстремистской в России.