Привет, Хабр! Меня зовут Гриша Скобелев, я бэкенд-разработчик, у меня есть гитара, кошка и скейтборд. Я так сильно люблю Spring Framework, что назвал кошку в честь него — Веснуша. Возглавляю программный комитет Podlodka Java Crew, где мы делаем классные конференции. Еще я организовал книжный клуб для бэкенд-разработчиков { между скобок }. Хочу поделиться своим опытом развития бэкендера — от собеседования до наработки разных навыков для роста. Тут будет много ссылок, практических советов и инструкций, которые я наработал за время своей карьеры, общения с другими бэкендерами и проведения конференций и консультаций.

Подготовка к собеседованию: тренировки и полезные ссылки

Тренировка

Лучшая подготовка — это тренировка, то есть ненастоящее собеседование. Некоторые для этого ходят на филлерные интервью — выбирают условно не очень интересные компании и просто приходят пособеседоваться.

Лично я считаю такую практику не очень хорошей. Это часто оборачивается пустой тратой времени, не дает нужной обратной связи и не помогает потренироваться по-настоящему.

В этом плане гораздо лучше устроить намеренное тренировочное собеседование. Попросите кого-то из друзей или воспользуйтесь сервисом Pramp, где можно найти человека, который проведет с вами mock-собеседование. Можно договориться потренировать секцию алгоритмов, базовый Computer Science, cloud-технологии и даже софт-скилы. Самое ценное в mock-собеседованиях состоит в том, что тебе обязательно дадут обратную связь: что подтянуть, в чем потренироваться.

Кроме Pramp можно воспользоваться сервисами менторов, например, GetMentor или Solvery. Там тоже можно договориться с ментором на mock-собеседование.

Еще один интересный сайт — interview.io (заходить с VPN). На нем публикуют публичные mock-собеседования — можно просто посмотреть и изучить для себя, выписать вопросы, которые не знаешь, чтобы их потренировать. Мы то же самое делаем в рамках подкаста { между скобок } на Ютуб-канале. Там можно выбрать что-то под нужный язык или технологию.

Задачи и навыки

Алгоритмические задачки встречаются часто, особенно в крупных компаниях. Готовиться к ним проще всего на сайте LeetCode. Еще есть разные каналы на Ютубе про алгоритмические задачи — можно поискать и поизучать разборы самых популярных. К этому стоит отнестись просто как к подготовке к экзамену — изучить, потренироваться, выучить, сдать.

Еще очень полезный инструмент, особенно для начинающих специалистов, — ресурс roadmap.sh. На нем участники сообщества собрали навыки, которые нужны разным специалистам, в том числе бэкендерам. Туда можно зайти и посмотреть, что следует доучить и какие еще темы посмотреть.

Общая подготовка

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

Еще есть огромный документ FAANG interview, в котором разработчики собрали заметки по подготовке к собеседованиям в крупные компании: Facebook, Amazon и другие. Он будет полезен и для интервью в компаниях поменьше, так как многие сейчас стараются перенимать практики FAANG.

Как сделать, чтобы твое резюме увидели, прочитали и оценили по достоинству

Существует почти 100%-ный способ сделать так, чтобы ваше резюме увидели — отправить его через человека, который уже работает в нужной компании. Для этого нужно развивать нетворкинг — общаться в профессиональных чатах, посещать конференции, участвовать в каких-то общих проектах. Тогда можно будет просто находить людей из интересующих вас компаний и «засылать» резюме с ними. Доверия к вам будет намного больше, да и человек может получить бонус за ваше трудоустройство.

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

Теперь вернемся к самому резюме. Я считаю, что его стоит писать на английском — независимо от того, собеседуешься ты за рубеж или внутри страны. HR-ы на российском рынке знают английский, да и держать в актуальном состоянии одно резюме будет гораздо проще.

Дальше рассмотрим важное про само резюме.

Красные флаги

По моему мнению, есть вещи, с которыми в резюме стоит быть поаккуратнее:

  • Ссылки на GitHub. Туда обязательно заглянут посмотреть твой код — и легко могут найти какой-нибудь предыдущий проект, который был откровенно «не очень». Так что GitHub лучше или привести в порядок, или вообще не показывать. Плюс тебе легко могут прямо на собеседовании дать твой же код десятилетней давности и спросить, а что это ты там написал. Это, разумеется, спрашивают не с целью поглумиться над человеком, а чтобы посмотреть, как выросли со временем его скилы и что бы он изменил в коде.

  • Ссылки на соцсети. Показать хороший канал в Телеграме — идея интересная. А вот какой-нибудь Твиттер, в котором вы постите все подряд, — нет. Есть риск, что какой-нибудь пост чем-нибудь HR-у не понравится, и вас никуда не позовут.

Облако тегов

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

Вот эти навыки:

  • Cloud-технологии. Это особенно важно для зарубежных вакансий, где владение «облаками» — практически базовое требование. У нас в России ситуация сложнее, но знание облачных технологий все равно пригодится.

  • Docker, и лучше с Kubernetes.

  • Service Mesh, архитектурные паттерны, System Design.

Полезные «мелочи»

  • Фотография — сразу привлекает внимание.

  • Четкое описание ценностей сделанного. Например, у меня был проект, в котором я уменьшил нагрузку на кластер данных. И я всегда четко об этом говорю в резюме — это отличная ценность для компании, простая и прозрачная.

  • Краткость. Чем резюме короче — тем лучше.

Ну и важно понимать, что нет ничего, что гарантирует вам 100%-ный оффер. Хоть напиши водяным знаком: «Кто меня не позовет на собеседование — тот дурак» — все равно не сработает. Волшебной таблетки не существует, можно лишь приближаться к идеалу.

Как вести себя уже на интервью

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

  • Computer Science: структуры данных, внутреннее устройство процессов в программировании и т. п.

  • Продуктовые вещи: метрики, решение конфликтов и т. п. Это уже больше относится к собеседованиям для сеньоров и техлидов.

  • Истории из практики: их лучше заготовить заранее.

  • Процессы в команде и CI/CD: чаще всего спрашивают у сеньоров, к этому лучше подготовиться заранее.

  • Решения конкретных вопросов: например, у Java-программистов часто просят написать метод, который переведет деньги с одного счета на другой. И набрасывают разных сложных штук вроде асинхронности.

Если вам будут задавать вопросы о ваших конкретных решениях, на них очень здорово отвечать по методу STAR — «Situation, Task, Action и Result». Суть в том, что нужно описать:

  • Situation — что именно произошло, в какой ситуации ты оказался.

  • Task — какую конкретную задачу в этой ситуации тебе нужно было решить.

  • Action — какие действия ты предпринял.

  • Result — какой именно результат получил, желательно с цифрами.

Разберем на примере:

  • Situation: У нас в команде было тестирование, но с данными все было непросто.

  • Task: Чтобы облегчить задачу, понадобилось написать генератор данных.

  • Action: Я написал генератор на таком-то языке, с помощью таких-то технологий.

  • Result: Теперь задачи по интеграционному тестированию стоят не три сторипоинта, а один.

Данные по зарплатам от getmatch

Вообще уровень зарплаты нужно, конечно, выбирать по своему комфорту. И желательно делать это максимально прозрачно, без вот этой пикировки «а сколько вы дадите?», «а сколько вы хотите?», которую так любят HR-ы. Но примерно ориентироваться по рынку, конечно, стоит.

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

По Java в России медианные цифры вот такие:

  • Джун — 100,000 ₽.

  • Мидл — 200,000 ₽.

  • Сеньор — 300,000 ₽.

  • Тимлид — 350,000 ₽.

По Node.js — такие:

  • Джун — 85,000 ₽.

  • Мидл — 190,000 ₽.

  • Сеньор — 326,000 ₽.

  • Тимлид — 450,000 ₽.

В целом на эти цифры можно ориентироваться, сопоставляя свои ожидания с реальностью.

Полезные ссылки

Комментарии (15)


  1. FeathErr
    29.06.2023 10:23
    +1

    Зарплаты по Java Junior довольно завышены. Сейчас нахожусь в поиске работы в этом направлении, ни разу не видел чисел больше 80к. Откуда взялась медиана в 100к - непонятно.


    1. AlexIsaev Автор
      29.06.2023 10:23

      Здравствуйте! Это реальные (и анонимные) ЗП, которые собирали внутри сервиса. Подробнее разбирали здесь: https://habr.com/ru/company/getmatch/blog/722246/ , но цифры тут могли уже слегка устареть.


    1. NikolayRussia
      29.06.2023 10:23

      Возможно, стартовым джунам да, дают менее 100к. Поработав со временем (1-2-3 года), ребятам часто индексируют з/п, без повышения ранга, то есть джуны с опытом вполне заслуженно получают более 100к и, тем самым, влияют на статистику зарплат в целом.


  1. Leetc0deMonkey
    29.06.2023 10:23
    +7

    Я одного не могу понять, почему кандитат должен готовиться к собеседованию? В моём миропредставлении, если у человека за плечами пачка проектов, приносящих прибыли бизнесу, то это работодатель должен чесать репу и разрабатывать методики как распознать такого умеющего работать кадра. Такого какой он есть.


    1. GSobaka
      29.06.2023 10:23
      +1

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

      Рынок вакансий постоянно меняется, то о чем вы написали это работает только с узкоспециализированными специалистами.


      1. Leetc0deMonkey
        29.06.2023 10:23

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

        В таком случае моё резюме банально не пройдёт дальше HR отдела.


    1. cupraer
      29.06.2023 10:23

      Готовиться к собеседованию — все равно, что готовиться к маршруту, которым тебя повезет таксист из аэропорта.

      Новое освоить (на таком уровне, чтобы тебя не прогнали с позором) — один хрен не удастся, а про подзабытое старое можно спокойно сказать: «это подзабытое старое, так что слепой печати сейчас не ждите». Если интервьюера такой подход не устроил — поздравляю, вы только что сэкономили кучу времени и нервов.


      1. Maccimo
        29.06.2023 10:23

        Готовиться к собеседованию — все равно, что готовиться к маршруту, которым тебя повезет таксист из аэропорта.

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


        а про подзабытое старое можно спокойно сказать: «это подзабытое старое, так что слепой печати сейчас не ждите».

        Ну такое.
        «Я знаю и умею всё что вам нужно, честно-честно, просто забыл!»


  1. ermadmi78
    29.06.2023 10:23
    +1

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

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


    1. GSobaka
      29.06.2023 10:23

      Ревью собственного кода это нормальная практика. Где тут токсичность? Тут даже профита больше для кандидата, тк он знает этот код и скорее всего помнит контекст при котором он его писал.


      1. ermadmi78
        29.06.2023 10:23

        Ревью актуального кода - да, абсолютно нормальная практика. Но ревью кода 10летней давности - категорически ненормально.

        Во первых этот код вспомнить нереально.

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

        В третьих непонятна цель такого ревью. Заявленная цель посмотреть, как человек развился за эти 10 лет, мягко говоря нелепа - так вы проревьюите не то, как человек развился, а то как индустрия разработки развилась за эти 10 лет.

        Ну и в четвертых, с вероятностью 80% сами интервьюеры не будут обладать 10летним опытом, соответственно у них не будет технологического контекста 10летней давности, и они в принципе не смогут дать адекватную оценку такому коду.

        Поэтому да - "ревью" неактуального кода это обыкновенное проявление токсичности. Не более того.


        1. Leetc0deMonkey
          29.06.2023 10:23

          Ну и в четвертых, с вероятностью 80% сами интервьюеры не будут обладать 10летним опытом, соответственно у них не будет технологического контекста 10летней давности, и они в принципе не смогут дать адекватную оценку такому коду.

          Стопудов! Собеседовать поди ещё будет какой-нибудь "20-летний синьйор".


    1. Leetc0deMonkey
      29.06.2023 10:23
      +1

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

      Так и есть. А потом работодатель скулит "ищем 30 лет и 3 года, и никого найти не можем". Дальше - хуже. Скулёж о якобы дефиците кадров подхватывают инфоцыгане и продавцы курсов. И вот теперь отрасль действительно разбавляется посредственностями, и найти толкового специалиста среди горы шлака становится просто нереальной задачей.


  1. lastmac
    29.06.2023 10:23
    +4

    Привет, Гриша! Меня зовут Саша, я был бэкенд-разработчиком когда-то, у меня была гитара, фортепьяно, есть попугай Артём, жена и дочька. Я катался на сноуборде и скейте пока не пробил себе голову. Я так сильно люблю читать подобные статьи, что просто разлогинеться хочется тут.


    1. GSobaka
      29.06.2023 10:23

      Классика