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

Официальная градация, пропагандируемая работными сайтами, и на которую ориентируется большинство, выглядит так:

  • 0,5-1,5 года реального опыта = Junior
  • 1-3 года = Middle (на протяжении этого времени вы называетесь миддлом)
  • 4-6 лет = Senior

По факту чаще всего эта градация не имеет связи с реальностью.

image


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

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

Окей, скажите вы, так как всё-таки оценивать, если всё индивидуально, а градация не всегда коррелирует с количеством опыта?

Давайте разбираться, что же такое Junior, Middle и Senior.

Джуниор


image

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

Какой звоночек может помочь понять, что вы со своими тремя годами опыта всё ещё джун и гордую приписку «Middle» следует убрать? Очень просто: вы покажете код, сделаете тестовое, или напишите немного кода прямо во время собеседования, а потом вам откажут из-за качества кода. Требуйте фидбэк, на уровне джун-миддл это особенно важно, техспециалист в нём никогда не откажет, и развёрнуто ответит, как стать лучше.

Как понять, что вы уже не джун? Вы справляетесь сами. За вами уже не надо постоянно править код, вы потихоньку тянетесь к реально сложным задачам и иногда консультируете младших коллег. Примерно так. Или можете поступить проще: найдите старшего разработчика из вашей области и попросите оценить ваш уровень. Желательно совпадать по стэку, хотя бы по основным технологиям, не просите спеца по ангуляру оценивать ваш синьорский реакт. Он может, но лучше пусть кто-то другой этим займётся.

Миддл


image

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

Как понять, что вы переросли своё звание? Ваши задачи примерно на порядок (или даже больше) сложнее тех, что вы делали на старте (джуном). Начинали с элементарной вёрстки, а сейчас делаете сложные веб-приложения на любимом фреймворке? Или фреймворками особо не увлекаетесь, потому что каждый день заново изобретаете сложные графики в D3? Уверенно руководите командой разработчиков, среди которых далеко не всем постоянно нужна помощь? И так далее. Реально сложные задачи, руководство (выбором стэка технологий или командой, — не так важно), ощущение того, что у вас есть экспертиза, к которой прислушиваются. Ура, вы что-то вроде синьора.

Синьор


image

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

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

Как бы это объяснить. Допустим, мы покажем школьнику младших классов сложное уравнение. Он посмотрит на него, подумает, и выдаст ответ, который как-то для себя посчитал, не зная материала старших классов. И ответ может даже быть верным, интуитивно или совсем случайно, или может он заглядывал на последние страницы учебника. Но это не значит, что у него есть понимание и аргументы, доказательства в защиту этого ответа. А вот у старшеклассника уже есть.
Поделиться с друзьями
-->

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


  1. tentakle
    27.02.2017 13:40
    +14

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


    1. TerraV
      27.02.2017 14:45
      -3

      Чем не нравятся размышления то? Вполне годные. Качество кода + уровень ответственности. Сейчас потихоньку подыскиваю вакансию, так чем дальше от СССР, тем меньше технических деталей в собеседованиях. В основном вопросы идут по мотивации и ценностям. Вся техническая часть идет в тестовом задании (которые тоже не очень сложные, но показательны с точки зрения реальных подходов соискателя). После местных собеседований контраст просто ошарашивает.


    1. catwomenko
      27.02.2017 19:43
      -1

      Так я и не говорю, что написанное — истина в первой инстанции, это просто моя попытка объединить (и усреднить) критерии, чтобы помочь начинающим на рынке труда в оценке.

      Само собой, этих «если» там полно, потому что в разных компаниях понимание уровней тоже может быть разным, равно как и оценка их в денежном эквиваленте.
      Видела вакансии, в которых от джуна требуют неслабых знаний об архитектуре и опыт разработки куда больше года или маленького проекта. Точно так же синьорские требования порой неотличимы от требований для миддлов.
      Видела и «школьников, начитавшихся учебников старших классов», и брала их на работу. И старшеклассников, хихикающих на галёрке, тоже навидалась. :)


      1. tentakle
        27.02.2017 20:56
        +3

        Вот эти неоднозначные критерии должны помочь начинающим на рынке труда оценить свои знания? Вы не считаете, что сама концепция HR — необъективный «костыль», который препятствует попаданию вот этих, которые из младших классов, но с учебниками, в ряды, грубо говоря, синьоров. Понимаю вполне для чего было изобретено это звено, но в конечном счете получили систему сродни замене устных школьных экзаменов на машинное ЕГЭ, который тупо пробегает по галочкам. На мой взгляд, только тот, кто имел дело с компьютерами может преподавать в школе информатику, такой же подход должен быть и к HR — сам не синьор, так не берись ставить оценки синьорам и джуниорам.


  1. DexterHD
    27.02.2017 14:15
    -3

    Но это не значит, что у него есть понимание и аргументы, доказательства в защиту этого ответа. А вот у старшеклассника уже есть.

    А инженер пошлет куда подальше, мол я вам что, первокурсник я чтоб ваше уравнение считать :D


    1. ikovrigin
      27.02.2017 16:57
      -2

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


  1. Coffin
    27.02.2017 15:25
    +8

    А если > 10 лет, то ты кто?
    А если ты JS разраб, где каждые пол года новьё, то ты всегда джуниор? :)


    1. Spiceman
      27.02.2017 16:11

      С «каждые пол года новьё» действительно подстава. Но тут важно, что остается в остатке от «старья».
      Думаю, что тут логарифмическая зависимость. Между разрабом с опытом 1 год и 5 лет — пропасть. А между 5 лет и 10 лет различия уже не сильно заметны.


      1. Coffin
        27.02.2017 16:19
        -2

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


    1. catwomenko
      27.02.2017 19:35

      Кандидаты с опытом >10 лет уже обычно отлично знают, хочется им просто писать код, руководить или рулить архитектурой энтерпрайза. И уж тем более знают, как себя назвать :)

      JS и в частности фронтендеров люблю всей душой. Но чем ситуация с JS'ом отличается от работы, например, в команде, в которой все очень любят попробовать новое? Вряд ли человека, который успел за 15 лет использовать 5 и больше языков программирования в том же бэкенде, кто-либо назовёт джуном. :)

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


  1. moonster
    27.02.2017 15:29

    Был уже пост на эту тему на Хабре.


  1. botyaslonim
    27.02.2017 15:40
    +13

    По сути, никакой годной метрики не предоставлено. На уровне «вам уже кажется» и «вы тянетесь».
    Хотя есть более адекватная градация: зарплата. Если вас взяли на зарплату сеньора, вы сеньор :)


    1. Areso
      27.02.2017 16:07
      +1

      А если потом компания поняла, что совершила ошибку, и предложила расстаться? Уже не сеньор?
      Видел людей, которые работают всю жизнь за зарплату меньше, чем у совсем зеленого джуна в МСК. Они, получается, тоже не сеньоры (правда в таких конторах их принято называть «ведущими специалистами»)?


      1. botyaslonim
        27.02.2017 16:44

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


        1. Areso
          27.02.2017 17:39
          +2

          Рыночный метод работает там, где есть рынок. А если рынка нет, то работает только один метод: переезд (модное слово — релокация). Ближе или дальше, уже второй вопрос.


          1. AzureSeraphim
            01.03.2017 09:23

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


            1. VolCh
              01.03.2017 11:04

              "Миграция" — не модное, а, скорее, официальное. Модное именно "релокация" или "релокейшн" даже.


    1. catwomenko
      27.02.2017 19:50

      Зарплата действительно неплохая метрика, но порой она тоже отдаляет от действительности:

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


      В результате нередко появляются кандидаты, которые не имеют никакого плана стоить дороже, чем они есть, — они просто не знают, сколько стоят. И джун после зарплаты в у.е. оскорбляется до глубины души предлагаемым окладом. Конечно, работу можно найти за любые деньги, в любой валюте. Но тогда и к «зарплатной» градации появляются вопросы. :)


  1. Dwite
    27.02.2017 19:51
    +1

    В рамках этой темы мне понравилась статья What Makes A Senior Software Engineer. Наиболее важная цитата оттуда:


    Junior engineers build on the rails, Seniors build the rails.


  1. Bobolik
    27.02.2017 19:51
    +2

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

    Я .NET разработчик и провожу много собеседований. К нам в компанию приходит много кандидатов но только 1 из 10 имеет знания соответственно годам опыта.

    Приходят с 8-9 годами опыта, по резюме senior уже некуда.
    Спрашиваю:
    — S.O.L.I.D. — не слышал,
    — ладно DI — нет.
    — Ок потоки, пример dead lock-а — не могу,
    — реализация IDisposable — нет.
    Смотрю в резюме есть строчка — Strong design patterns experience, или что то такое
    — ок, давай по паттернам
    — хорошо, MVC, MVVM
    — А другие?
    — ну не использовал
    — Ни разу за 8 лет?
    — Нет
    — Ну хотя бы Singletone?
    — А, да знаю
    — Thread safe singletone?
    — Простите, не понял вопрос.
    — У вас были в практике утечки памяти в программе,
    — Да
    — А почему возникает утечка?
    Молчит
    — Юнит тесты?
    — Не пишем.
    — Ни один раз за 8 лет?
    — Ну да, а кто пишет?
    — По Вашему, что такое хороший код?
    — Ну комментарии, имена методов и классов и группировка кода в регионы.

    Вот вам и самостоятельные эксперты синьоры у которых такие же джуны под управлением.
    А еще потом зарплату заоблачную просят.

    P.S. у вас уровень котиков зашкаливает.


    1. catwomenko
      27.02.2017 19:55

      Не могу понять как HR может оценить уровень разработчика?

      А я и не говорила, что я оцениваю. Оценивают как раз такие как вы, я просто подмечаю, анализирую и рассказываю новичкам на рынке труда. :)
      И своим постом как раз стараюсь отучить людей оценивать себя по годам, потому что оценивать надо по качеству знаний.

      P.S. Простите, не сдержалась с котиками.


    1. TerraV
      27.02.2017 22:11
      +1

      Простите, но вас читать тоже было не интересно. Почему SOLID а не YAGNI, KISS, DIE? MVC это ваще бредовый паттерн, в него каждый вкладывает свой смысл. Рядом с потоками должно стоять ровно одно слово — иммьютбл и нечего там больше мусолить. Но проблема даже не в этом. Проблема в том, что вы берете людей которые дротят на собеседования.


  1. ookami_kb
    27.02.2017 20:54
    +2

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

    Ну сколько можно-то… Опыта у них не хватает, а не экспертизы.


    Эксперти?за (от лат. expertus — опытный, сведущий) — исследование, проводимое лицом, сведущим в науке, технике, искусстве или ремесле, привлечённым по поручению заинтересованных лиц, в целях ответа на вопросы, требующие специальных познаний.


    1. Antervis
      28.02.2017 09:49

      я так полагаю, речь шла об английском expertise, которое с experience имеет ровно столько общего, сколько стаж с квалификацией


      1. ookami_kb
        28.02.2017 11:48

        Да понятно, что это expertise. Только в этом контексте expertise означает "человеческий опыт, знание дела; квалификация, компетентность, компетенция", но никак не экспертиза. Я понимаю, если бы эти понятия путал носитель английского языка, или бы это был подстрочный перевод… New York Magazine хоть пока еще Нью-Йоркским магазином не называют?


  1. 3aicheg
    28.02.2017 04:22
    +1

    Вот гораздо лучше рекомендация: кто-то начал рассуждать про джуниоров-миддлов-сениоров? Сразу бейте по лицу! Если растяжка позволяет, то лучше даже ногами. А если звучало богопротивное «джун», то в конце комбо проводите фаталити офисным креслом потяжелее.


  1. VolCh
    28.02.2017 05:46

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


  1. tigraboris
    28.02.2017 10:15
    +1

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


  1. potorof
    28.02.2017 21:45

    Нормальная статья, чего набросились?


  1. KotV4
    28.02.2017 21:45

    сегодня не субкота


  1. arcman
    01.03.2017 11:50

    Senior который руководит другими инженерами это уже team lead.


    1. VolCh
      01.03.2017 13:30

      Руководить можно по разному. Даже один джун может руководить другим джуном, а иногда и сеньором в плане постановки задач. Тимлид совместно с ПМом осуществляет прежде всего административное руководство. Техническое — техлид/архитектор.