Екатерина Зорина, full-stack разработчица в Beetroot, рассказывает о том, как универсальные специалисты помогают командам быть более эффективными, и что делать тем, кто тоже хочет стать многопрофильным разработчиком.

Как все начиналось

Я полюбила точные науки еще в школе. У меня был классный преподаватель физики, и, в большей степени, я обязана ему своим увлечением техническими предметами. Когда пришло время выбирать ВУЗ, я недолго думая подала документы в несколько технических институтов и поступила в Харьковский университет радиоэлектроники. У меня никогда не возникало странных ощущений из-за того, что я, девушка, изучаю автоматизацию процессов на производстве. Но, следует отметить, что на нашем курсе вообще было много девушек — где-то 30-40% от всех студентов. Поэтому мы чувствовали себя комфортно. А вот соседний радиотехнический факультет был совсем другим — там на весь курс было только 3-4 девушки.

Когда я поступала в университет, то совсем не имела опыта в написании сложных программ. Потом понемногу научилась и решила писать курсовую на Java. Мне очень понравилось работать над практической частью. Я осознала, что хочу и дальше программировать, и начала разбираться с C#, на котором сейчас и пишу. К счастью, у меня было достаточно ресурсов — сайтов и книг — поэтому мне было легко выучить все самостоятельно.

Дальше — работа

Мне повезло с моей первой работой — там были очень интересные технологии и опытные специалисты, у которых я много чему научилась. С того времени прошло уже шесть лет. Сейчас я работаю в Beetroot на проекте Zwapgrid. Это платформа для стриминга данных между разными системами, клиентами и партнерами. Я занимаюсь разработкой нового функционала и поддержкой существующего. Собственно, у меня есть определенный набор технологий, с которыми я работаю уже много лет. Одни из базовых технологий — это ASP.NET MVC, ASP.NET Web API, ASP.NET Core, Entity Framework Аngular JS и Angular. Также у меня есть опыт работы с MS Sql Server и MongoDB.

Кто такие full-stack разработчики и почему они крутые

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

Full-stack разработчики могут быть очень полезными для команд. Во-первых, такая многопрофильность позволяет нам лучше понимать код и разбираться в архитектуре проекта. Кроме этого, ми одинаково хорошо понимаем логику как front-end, так и back-end части. Таким образом, поскольку может возникнуть ситуация, что кто-то из команды уйдет в отпуск или возьмет больничный, работа не остановится, потому что остальные могут подхватить проект на любом этапе.

Тем, кто хочет стать full-stack разработчиками

Чтобы начать работать со стеком технологий, с которыми работаю я, нужно выучить основы. Например, можно начать с языка C#. Сейчас довольно легко найти всю необходимую информацию для самостоятельного изучения, если вам подходит такой метод. Я могу посоветовать Pluralsight — это онлайн-ресурс, которые агрегирует в себе невероятное количество разных видео-уроков про языки программирования и разные фреймворки. Обучение там платное, но контент очень качественный. Если вы рассматриваете бесплатные курсы, то обратите внимание на Microsoft Virtual Academy.

После того, как вы выучите основы, выберите направление, в котором вы хотите двигаться — desktop, web или mobile разработка. Потом, на основе личных предпочтений или рейтинга технологий и фреймворков, можно выбрать несколько для дальнейшего изучения. Если вы решили работать с Microsoft по направлению web, то вам пригодятся такие фреймворки, как ASP.NET MVC, ASP.NET Web API, ASP.NET Core. Если вы хотите работать с front-end, то придется начать с изучения JavaScript/TypeScript. Но не тратьте слишком много времени на теорию — хотя теоретическая часть необходима, основные знания мы получаем во время работы над реальным задачами.

Прямая коммуникация с клиентом чрезвычайно важна

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

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

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

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

Кстати, сейчас в Beetroot есть открытая вакансия Full-stack разработчика. Кликай на ссылку, чтобы узнать больше. Может, эта работа как раз для тебя?