От стажера до начальника центра: с чего начать карьеру разработчиком и чему уделить внимание в первую очередь
Nexign StudentsСвоим опытом поделится Илья Потапов, начальник центра разработки Nexign. В 2018 году Илья начал свою карьеру в качестве стажера и успел поработать разработчиком, тестировщиком и DevOps-инженером. Затем стал техлидом и тимлидом, а сейчас руководит центром разработки.
Из каких специалистов состоит команда разработки?
Классическая команда разработки включает в себя аналитиков, разработчиков и тестировщиков. Специалисты DevOps иногда оказывают помощь и поддерживают процессы. Во главе команды находятся тимлид и владелец продукта.
Универсальный набор навыков, необходимый разработчику
Язык программирования — это база, однако для разработки крупных проектов нужны еще скилы и инструменты. Например:
- Базы данных. Практически ни один крупный проект не обходится без БД, ведь именно там хранится вся информация, с которой работает ваше приложение.
- API, например, REST и gRPC — это те механизмы и интерфейсы, через которые сервисы обмениваются быстрыми, синхронными сообщениями.
- Брокеры сообщений, например, Kafka и RabbitMQ — это то, что позволяет выстраивать асинхронное взаимодействие между сервисами, эффективно распределять нагрузку и обеспечивать связь сервисов «многие ко многим».
- Метрики и мониторинг. Когда ты работаешь с большой распределенной промышленной системой, очень важно иметь возможность оперативно отслеживать ее состояние (нагрузку, количество ошибок, загрузку памяти и т. д.) и в случае проблем отследить, с чего все началось и где нужно вмешиваться.
- Linux и системы виртуализации. Большая часть промышленного ПО эксплуатируется под ОС на базе ядра linux, а это значит, что инженеры должны уметь зайти на машину, настроить и запустить написанное ими приложение. А когда появятся проблемы, уметь их решить. То же самое актуально для docker и k8s.
Соответственно, начинающему разработчику нужно знать не только базовые конструкции языка, но и понимать, что окружает этот язык и как его применять.
Помимо хард скилов, работа в команде требует наличия определенных софт скилов. Умение эффективно взаимодействовать с коллегами и нести ответственность за свою часть работы — навыки, которые точно помогут успешно достигать поставленных задач.
А еще разрабочику полезно развивать:
- ответственность;
- проактивность;
- умение оценивать и планировать свои задачи;
- умение слышать других и доносить свое мнение до окружающих;
- критическое мышление.
А если нет реального опыта программирования, то с чего начать?
«Просто придумай себе задачу, которая будет полезна для тебя, и начни писать код. Например, расписание поездов или калькулятор своих расходов.
Продумай, какими объектами будет оперировать твое приложение, добавь API для этих объектов, а потом положи их в базу данных. Если у тебя есть навыки в разработке веб- или мобильных приложений, сделай интерфейс для своего приложения. Так оно станет в разы дружелюбнее.
Когда на собеседовании ты сможешь не только продемонстрировать теоретические знания, но и показать собственный проект, это станет значительным преимуществом.
Еще одна рекомендация: не бойся пробовать себя в конкурсах, олимпиадах и хакатонах. Это тоже даст тебе практический опыт», — отвечает Илья.
Таким образом, карьера в разработке — это не только знание языков программирования, но и умение демонстрировать свои навыки на практике. Начни с малого, создавай собственные проекты, и у тебя всё обязательно получится! 😎