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

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


    image


    При этом некоторые работодатели всячески это приветствуют и считают чем-то вроде предохранителя от выгорания – человек сменит фокус внимания, сменит департамент или отдел, но не сменит саму работу в целом.


    Меня зовут Костя, и я работаю в QIWI почти 4 года. Сегодня расскажу вам, как успешно перешел из frontend-разработки в backend.


    Frontend


    В QIWI я с конца 2014 года, начинал работать как разработчик iOS–приложений, и, в принципе, пару лет занимался разработкой QIWI-кошелька. При этом не могу сказать, что было скучно – задачи были довольно разные и в рамках одного приложения: мы занимались интеграцией кошелька с другими нашими сервисами, чинили баги, подтягивали анимацию. Кроме этого, был занятный опыт по созданию приложения для Apple Watch. Потом немного расширил фокус и поработал еще и над iOS-приложением для «Совести».


    image


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


    Но в бэкенде на то время было слишком мало разработчиков и слишком здоровенный бэклог, так что в итоге я все же переключился на бэкенд полностью. То, что я делаю сейчас, это классические задачи бэкендера – пишу код в наших микросервисах, чиню баги, занимаюсь рефакторингом, постигаю Kotlin. Есть возможность работать и над свежим продуктом компании – QIWI Инвестор.


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


    Так что тут сложилась win-win ситуация – я хотел помочь команде и продукту (перевес в разработке был сильно не в сторону бэкендеров) и набраться новых знаний. Тимлиды все поняли и отпустили меня без каких-то претензий, продакт тоже.


    Кроме этого, знания хотелось именно диверсифицировать, чтобы не привязываться к одной платформе (Android мне немного не по душе, но и Apple все же сдает позиции). Ну и было желание в случае чего уметь взять и сделать себе приложение самому (и фронт, и бэк), если вдруг появится какая-то клевая идея. Пока вот не пригодилось, правда.


    Backend


    image


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


    Никого не раздражало, что первое время я явно работал не так эффективно, потому что во многое надо было въезжать (но в долгосрочной перспективе команда-то все равно в выигрыше).


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


    Впечатления от бэкенда после фронтенда


    Нет работы с UI. Вообще. Раньше приходилось убивать время на исправление багов в UI, сейчас – нет. Минусы такого положения – конечный пользователь не видит результатов конкретно моей работы, как это было с фронтом. Я пытался определить, что же сложнее – бэк или фронт, и понял, что (лично для меня) тяжелее всегда было работать с многопоточностью и сетевым стеком. И тут уже не так важно – за фронт ты или за бэк. На фронте я просто столкнулся с такими задачами впервые, без подготовки, а на бэкенде уже с каким-никаким опытом.


    Набраться опыта и делать что-то крутое можно в любой области, было бы желание и усидчивость, здесь практики сходятся – сделать что-то (и сделать хорошо), и чтобы это работало надежно и легко поддерживалось. Причем для бэкендера не столь критично наличие или отсутствие опыта во фронте. Если разраб учитывает все мелочи, сам продумывает корнер-кейсы и в целом понимает, как будут использовать его API, то он и без фронт-знаний сделает все, как надо.


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


    Что в итоге


    Backend-разработка стала для меня еще одним хорошим опытом – я научился писать код и проводить ревью, продумывать архитектуру. Это на самом деле интересно.


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


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

    QIWI

    176,00

    Ведущий платёжный сервис нового поколения в России

    Поделиться публикацией
    Комментарии 16
      +1
      Нет работы с UI. Вообще. Раньше приходилось убивать время на исправление багов в UI, сейчас – нет.

      Было бы странно если бы вы в back end правили ui.
        +1
        Добро пожаловать в GWT
          +2
          Спасибо, я уж лучше воздержусь)
            –1
            Это не бекенд — это страдание.
          +2

          Я когда начинал карьеру, хотел быть профессиональным "девелопером окошек About для виндовс-программ". С тех пор я переходил из виндовс в веб, потом бекенд, потом mobile, теперь вот фронтенд. На мой взгляд переходить из департамента в департамент можно и нужно, когда ты достиг определенного уровня профессионализма в своей сфере.

            0
            Это было внутри одной компании?
            Мне интересно, как удавалось из senior X developer'а стать senior Y developer'ом, минуя junior/middle Y-стадии.
              +1
              Зависит от X и Y, в любом случае градация junior-senior имхо зависит от языков в меньшей степени, чем от знаний основ-механики-процессов-принципов, а они чаще всего во многом похожи даже в совсем разных сферах.
                0
                Нет принципиальной разницы между разными направлениям в разработке. Просто другие инструменты. Если количество инструментов которые вы сменили не так велико, что вы больше не можете принимать решения, то все хорошо.
              0
              К сожалению или счастью, это работает только в крутых и крупных компаниях, где можно позволить себе горизонтальные изменения в карьере. Но когда работаешь в неплохих, но все-таки небольших командах с штатом в 30-50 человек, такая смена деятельности практически невозможна, а менять сферу через смену работодателя — дичайший стресс (по-крайней мере для меня)
                –1
                (по-крайней мере для меня)

                А пинком? я с февраля отхожу от внезапного сокращения плюс подлость отношений внутри коллектива конторы в не больше 8 человек. Без работы сложно первые пол года, потом начинаешь философствовать о бытии. Меня пока вообще пугает нормированный рабочий день потому что быт сложился вокруг ненормированного.Просто нужны родные ноги и руки не в рабочие часы именно дома. Сейчас хоть ребенок детсад закончил. Все клянчит засранец дорогие фигурки немецкие купи да купи — ща сынок, на работу устроюсь, закупим тебе, ты главное в папку верь и в его ремонт до твоей школы.
                  0
                  Ваша ситуация неприятна, но я скорее про противоположную ситуацию. Дорабатываю последнюю неделю в компании с штатом 60 человек, в которой мне нравилось работать и коллектив хороший, но ухожу сам, потому что предложили более перспективную, интересную и серьезную работу в компании с штатом в 17 000 человек. Так вот эта неделя, что я уже отработал перед уходом далась мне крайне тяжело и физически и морально — я именно про подобный стресс
                +1
                Я проработал frontend-разработчиком примерно 2.5 года и сейчас изучаю backend… примерно месяца 3.

                Должен признаться, что я до сих пор в небольшом шоке, от того стека новых технологий и инструментов, которые мне приходится осваивать разом (Linux, Bash, Docker, Go, Hyperledger и пр.)…
                Еще есть проблема в том, что уже 3 месяца я ощущаю себя совершенно бесполезным в компании. И это при том, что когда я уже смогу «встать на ноги» — еще не ясно.

                Короче, лично мне этот переход дается очень непросто… Возможно, не хватает хорошего наставника «над душой».
                  +1

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

                  • НЛО прилетело и опубликовало эту надпись здесь
                      0
                      Интересный рассказ. Но Вы не рассказали про бэк. На какой язык перешли? Какие технологии/фреймворки/ПО используете?
                        +1
                        У нас большая компания, много проектов, стек очень разнообразный. Но в основном используем JVM, а именно Java и Spring Framework. Сейчас активно изучаем Kotlin, новые сервисы уже пишутся на нём. Так же есть проекты на Scala, там используем Play и Akka.
                        Кроме того, есть проекты на Node.js, на Go. И ещё есть такая страничка stackshare.io/qiwi/qiwi, где перечислено, что мы используем (но не всё, что-то могли не добавить).
                        А ещё мы начинаем деплоить в kubernetes, о чём обязательно напишем.
                        В целом, у разработчиков достаточно свободы, и если какое-то решение принесёт пользу и получит одобрение команды, то его довольно легко продвинуть в наш стек.

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

                      Самое читаемое