Код
#статьи

Татьяна Свиридова: «Если что-то не получается, спрячьте эмоции и решайте задачу»

Бэкенд-разработчица рассказала, какие навыки нужны старшему разработчику в крупной IT-компании и какие задачи он решает.

Иллюстрация: Wikimedia Commons / Annie для Skillbox Media

Татьяна Свиридова


Старший бэкенд-разработчик на Python. Хобби — спорт и вокал. Была джазовой вокалисткой и выступала в джаз-клубах.



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

Из фронтенда в бэкенд и менеджмент

После окончания учёбы я почти три года проработала в томском стартапе Supl.biz. Компания сводит оптовых поставщиков с клиентами — малым и средним бизнесом. Там я быстро доросла до должности ведущего разработчика.

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

Сначала я была fullstack-разработчицей. Я обожаю JavaScript, но терпеть не могу вёрстку. Понимаю, что с опытом привыкаешь к любой технологии (стерпится — слюбится), но я так и не смогла перебороть себя. Мне гораздо интереснее заниматься бэкендом, чем верстать.

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

После ухода из стартапа я переехала в Москву и устроилась в ЦИАН. Моим последним проектом был поиск по сайту, мы вели его вместе с напарником. Сейчас я временно оставила работу, чтобы отдохнуть, но через пару месяцев буду искать новое место.

Что должен уметь старший разработчик

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

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

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

Кадр: сериал «Кремниевая долина»

Распределять ресурсы. Важно контролировать свои физические и эмоциональные ресурсы. Берите столько работы, сколько осилите. А если чувствуете, что не справитесь, — обязательно говорите команде и начальству.

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

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

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

Какие задачи решает старший разработчик

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

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

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

Кадр: сериал «Кремниевая долина»

Я пишу код в РуСharm — это моя любимая IDE, и ничего удобнее я пока не нашла. В своей работе я регулярно сталкивалась с RabbitMQ и Kafka, реляционными базами данных (PostgreSQL, MS SQL) и NoSQL (Cassandra). А ещё от проекта к проекту меня преследует поисковый движок Elasticsearch.

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

Советы начинающим разработчикам

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

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

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

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

Нейросети для работы и творчества!
Хотите разобраться, как их использовать? Смотрите конференцию: четыре топ-эксперта, кейсы и практика. Онлайн, бесплатно. Кликните для подробностей.
Смотреть программу
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована