«Когда ты можешь сам запилить программу, без привлечения кого-либо — это круто»

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

Fullstack-разработчикэто специалист, который разбирается во всем стеке технологий и используемых в проекте компонентов, как в части frontend, так и backend.

«Когда ты можешь сам запилить программу, без привлечения кого-либо — это круто»

Особенности профессии fullstack-разработчика

— Можешь объяснить, в чем специфика fullstack-разработки?

— Мы в приложении — везде. Мы видим программу от базы до клиентской части пользователя и принимаем участие во всех слоях при построении приложения. В каких-то специализированных сферах разработки, будь то frontend, backend или база данных, такого покрытия знаний о приложении не будет.

— Ты считаешь это преимуществом — то, что вы везде?

— Однозначно это преимущество, как на рынке, так и в развитии карьеры. Fullstack-разработка дает, может быть, не настолько глубокое, зато обширное погружение. Если взять приложение по слоям, мы смотрим на всё целиком и можем строить более крупные системы.

— Еще какие-нибудь преимущества fullstack-разработчика можешь выделить?

— Ты можешь запилить программу самостоятельно, без привлечения кого-либо. У многих fullstack-разработчиков есть собственные небольшие проекты, которые они делают по вечерам. Специализированные разработчики (прим. ред. — frontend или backend), наверное, такого не могут, они не смогут построить приложение от и до.

— Еще я сталкивалась с таким мнением, что невозможно одновременно знать хорошо и front, и back. Как тебе удаётся соблюсти баланс?

— На мой взгляд, лучше избегать здесь слова «хорошо». Я думаю, что для разработки приложения нужно знать frontend и backend на достаточном уровне. Специализированные, более тонкие знания в той или иной сфере нужны тогда, когда начинаются проблемы, в которые нужно углубляться. А для того, чтобы написать программное обеспечение, достаточно просто знать и front, и back.

«Когда ты можешь сам запилить программу, без привлечения кого-либо — это круто»

— Получается, что fullstack-разработчик может создать приложение, но в каких-то экстренных ситуациях ему нужен в помощь кто-то ещё. Правильно ли я тебя поняла?

— Хорошо, если будет тот, кто сможет помочь. В противном случае fullstack-разработчику придется потратить больше времени на решение проблемы. Я думаю, что он с ней разберётся, но будет делать это дольше, чем эксперт.

— Какой стек технологий ты используешь сейчас?

— Я использую backend Java, я в нее влюбился давно. Думаю, что на другой язык программирования не уйду. На frontend — в данный момент React.

— Расскажи, как ты пришел к этому стеку технологий?

— Я был системным администратором, компания разрасталась, я стал руководителем группы. На административной работе мне не хватало пищи для ума. И тут к нам на стажировку пришел парень, который начинал что-то писать на Java. В какой-то момент мы разговорились, я посмотрел, что он пишет, и понял, что мне этот язык очень симпатичен. И всё, с того момента я начал плотно заниматься Java и в конце концов стал Java-разработчиком. А когда начал разбираться самостоятельно, frontend сам по себе подтянулся, потому что пришлось делать и UI часть (прим. ред. — user interface), и backend часть, и базу данных. Таким образом я стал fullstack-разработчиком.

— Видимо, ты изучал Java самостоятельно, вне работы?

— Да. Java - язык backend’а. Чтобы что-то визуальное посмотреть, чтобы был какой-то интерфейс, нужно frontend изучать. Backend просто писать неинтересно. Интересно, когда что-то видно, что-то можно понажимать в интерфейсе, и таким образом, пришлось разрабатывать еще и UI часть для какого-то backend’а.

— Изучением всего этого ты занимался параллельно своей работе сисадмином?

— Да. На тот момент я стал руководителем, у меня появились административные обязанности. А по вечерам я занимался, читал книжки, писал программное обеспечение для работы. С этого все и началось — мне был необходим инструмент, которого не было, и я начал его писать.

— Сколько времени у тебя ушло на такую переквалификацию?

— Наверное, в течение двух лет что-то делал по вечерам, когда хватало сил, так как это было вне рабочего времени. Иногда я надолго забрасывал это, были полугодовые промежутки.

— Два года у тебя заняла переквалификация из сисадмина. Как думаешь, сколько времени на это понадобится человеку, не имеющему отношения к ИТ?

— Если заниматься целый день, то на один слой, на UI, на одну специализацию, точно уйдет не менее полугода. Во-первых, у человека всегда есть свои задачи, он не может всё бросить и заниматься исключительно обучением. У одного семья и дети, у другого — учеба, поэтому восемь часов в день отдать переквалификации нереально. У меня был опыт подготовки специалиста по frontend за три месяца — не успели. Поэтому я думаю, что нужно полгода, и то, это будет довольно поверхностная подготовка.

— Я поняла, что твой выбор fullstack-разработки сложился вследствие обстоятельств. А если бы ты выбирал сейчас, выбрал бы fullstack?

— Да, однозначно.

«Когда ты можешь сам запилить программу, без привлечения кого-либо — это круто»

О работе в IBS

— Расскажи немного о себе. Чем занимаешься в IBS?

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

— Что думаешь о руководителях, наставниках, которые бросают новичков, предлагая во всем разбираться самим?

— Я с такими за всю карьеру не сталкивался, если только в каких-нибудь стартапах. Считаю, что отпускать в свободное плавание нового человека, тем более, если ему незнакома та или иная сфера, — неправильно. Как минимум, нужно показать и рассказать, где и что лежит, кто с кем общается, дать права на участие в разработке. Установить рамки работы. У меня, например, когда я только начал разрабатывать, был прекрасный наставник, который всё рассказал и показал.

— Из чего состоит твой обычный рабочий день?

— На данный момент провожу довольно много review кода (прим. ред. — проверка чужого кода). Ставлю задачи, перерабатываем с аналитиками новые постановки, с архитекторами — общее видение системы. К сожалению, становится всё меньше времени на разработку, а хотелось бы больше писать код своими руками.

— Сколько процентов рабочего времени занимает непосредственно написание кода?

— Если 50% будет — это хорошо.

— Бытует такое мнение, что разработчик — это человек, который целый день смотрит в монитор. Так и есть?

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

«Когда ты можешь сам запилить программу, без привлечения кого-либо — это круто»

Советы тем, кто хочет стать fullstack-разработчиком

— Что ты можешь посоветовать тем, кто хотел бы стать fullstack-разработчиком?

— Побольше кодить.

— А если с нуля?

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

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

— Как часто ты бываешь на профессиональных мероприятиях, конференциях, форумах?

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

— Порекомендуй, пожалуйста, спикеров и ресурсы для изучения.

— Алексей Шипилёв, Евгений Борисов. Статьи на examples.javacodegeeks.com, topjavablogs.com, dzone.com, baeldung.com, vladmihalcea.com. Еще я периодически просматриваю книги о том, что я уже давно изучил. Из нового — заинтересовался технологией в Java среде, OSGI.

Блиц

Backend или Frontend?

— Backend. Мне нравится «ковыряться в кишках», люблю жесть. Как раз один из последних примеров: была проблема на одном из модулей, которая не решалась полгода. Тогда привлекли меня — там нужно было вникнуть с головой.

iOS или Windows?

— Windows, от него никуда. Вообще, так как я себя позиционирую больше как backend, (fullstack, но у меня перевес в backend), моя среда — это Linux. Но мы работаем не только на серверах, а разрабатываем в каких-то средах, пишем документы, строим графики, общаемся. Для всего этого нужен большой пул программного обеспечения. С Linux это проблема, поэтому — всё-таки Windows, она гораздо шире распространена.

«Когда ты можешь сам запилить программу, без привлечения кого-либо — это круто»
11
Начать дискуссию