«А ты точно senior?»

    Привет, я тех/тим лид в одной из продуктовых web компаний - систематически занимаюсь собеседованиями. Для меня главная проблема - понять кто перед тобой, senior, или не особо. А если еще и нужно согласовать мнение со вторым интервьюером...

    В общем, если вы занимаетесь web-разработкой, хотите понять свой уровень, или стоите на страже компании и не до конца понимаете, как понять уровень кандидата, добро пожаловать под кат.

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

    Для себя я выделил два основных направления — аутсорсинг и продуктовые компании.
    Для аутсорсинга важнее широкий спектр технологий, с которыми сталкивался кандидат.
    В продуктовой будет важнее глубокое понимание технологий и принципы написания поддерживаемого кода.

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

    Итак, первое знакомство с кандидатом - резюме

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

    На что обращаю внимание:
    Как долго работает в одной компании, есть ли рост/смена позиций за время работы.

    На чём акцент: технологии или подходы, задачи, которые решал, или технологии, которыми пользовался.

    Красным флагом могут быть:
    частая смена проектов
    большое количество проектов с CMS
    пустое перечисление слов от CSS до IDE (и отсутствуют ключевые технологии и подходы).

    Если будет интересно, к теме хорошего оформления резюме как-нибудь вернёмся.

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

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

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


    Под таблицей есть спойлер с картинкой, если на вашем экране таблица поползла.

    Junior

    Middle

    Senior

    Архитектура приложений

    Есть базовое понимание принципов ООП

    Слышал про SOLID

    Может придерживаться соглашений проекта и прослеживать аналогии

    Знает пару паттернов

    Хорошо понимает SOLID

    Слышал про GRASP

    Знает про модульную архитектуру

    Знает какие есть паттерны, понимает когда нужно применять

    Знает основные подходы к проектированию приложения(например CQRS, ES, Modular, SOA)

    Хорошо понимает как избегать каскадных изменений

    Знаком с метриками качества кода

    Знаком с паттернами вне GOF

    Код

    Знает базовые конструкции языка

    С помощью гугла может решить основные задачи

    Знает основные возможности языка, ряд популярных дополнений/библиотек

    Может решить сложные задачи и направить Junior разработчика

    Знает нюансы языка, понимает как обходить ограничения языка

    Код понятен легко читаем без лишнего усложнения

    Структуры данных/Алгоритмы

    Знает какие есть структуры данных

    Может подобрать подходящую для простых случаев

    Может написать простой алгоритм, посчитать его сложность

    Хорошо понимает структуры данных, в каком случае какую выбрать

    Может выбирать/ создавать алгоритмы для более сложных задач

    Реляционные базы данных

    Может строить простые запросы(выборки, простые джоины)

    Понимает что такое индексы

    Может построить отношения между таблицами

    Может строить сложные запросы(сложные джоины, подзапросы, агрегации)

    Понимает как построить оптимальные индексы

    Может профилировать запросы, знает explain

    Может спроектировать простую структуру базы данных

    Понимает как работать с большими таблицами

    Знает про репликацию

    Может построить сложную структуру базы данных(шардинг, денормализация)

    Знает ограничения и возможности нескольких баз данных

    Понимает ограничения CAP, PACELC

    Безопасность

    Слышал основные уязвимости

    Знает основные OWASP уязвимости и как их предотвращать

    Знает ряд техник для мониторинга, предотвращения уязвимостей

    Тестирование

    Есть базовое понимание для чего и как писать юнит тесты

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

    Может эффективно их писать

    Понимает как избегать хрупких тестов

    Знает разные подходы к написанию тестов(TLD, TDD)

    Может рассуждать о пирамиде тестирования

    Знает что дает и как создать нагрузочное тестирование

    Как плюс знает AB тестирования

    API

    Знает базовые методы HTTP

    Слышал про RPC,REST

    Хорошо понимает принципы проектирования API

    Знает какие есть варианты авторизаций

    Знает основные подходы стандартизации/версионирования API

    Может выбрать тип авторизации для проекта

    Очереди/ Шина сообщений

    Понимает зачем они и как работать на уровне интерфейса языка/библиотек

    Понимает разницу между очередью и шинной сообщений

    Знает основные проблемы демонов и как из предотвращать (утечки памяти, перезапуск, мониторинг)

    Знает основные решения по настройке, мониторингу очередей (со стороны приложения)

    Может подобрать подход к обработке данных (очередь, пайплайн, асинхронный ответ…)

    Многопоточность/ Асинхронность
    Если поддерживает язык

    Владеет на уровне интерфейса языка

    Знает как работать с многопоточностью
    (блокировки, синхронизация)

    Знает как работать с асинхронностью

    Понимает что такое итоговая согласованность

    Когда и как лучше распараллелить процесс

    Кеширование

    Может работать на уровне интерфейса языка/библиотеки

    Догадывается когда использовать

    Знает как организовать кеш, какие бывают проблемы

    Хорошо знаком с проблемами нагруженного кеша(прогрев, волна запросов, конкурентный доступ)

    Инфраструктура/Сети

    Знание базовых команд операционной системы

    Знает какие этапы проходит запрос перед тем как попасть в приложение

    Знаком с одним из средств виртуализации

    Понимает какие вещи и как нужно настроить для продакшн среды

    Понимает виртуализацию и контейнеризацию

    Знает базовые сетевые протоколы TCP, UDP, HTTP, HTTPS

    Знает как балансировать нагрузку

    Хорошо понимает принципы работы CDN и как решать базовые проблемы

    Метрики/ Логи

    Знает зачем логи, как их писать

    Знает варианты сбора логов

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

    Может выбрать необходимые метрики

    Знаком с рядом вариантов сбора метрик/логов

    Способен настроить алертинг, сбор необходимых метрик (со стороны приложения)

    Хорошо если знаком с TSDB

    VCS/ Релиз процесс

    Понимает зачем нужна VCS

    Может выполнять базовые операции VCS

    Может рассказать как сделать простой релиз через VCS и SSH руками

    Хорошо знает команды VCS

    Знает пару фреймворков построения процесса

    Знает как работает CI

    Может построить CI процесс, знает какие для этого есть инструменты

    Хорошо знает подходы к ветвлению, может выбрать подходящий

    PNG

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

    С помощью обратной связи часть пунктов пересмотрено.

    Отдельное спасибо @Metotron0за пачку исправлений.

    Only registered users can participate in poll. Log in, please.

    Интересна ли вам тема найма со стороны интервьюера

    • 58.6%Да139
    • 21.1%Нет50
    • 20.2%Нейтрален48
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 158

      +6
      Как Вы определяете знание «клиентоориентированных технологий»?
      Где в Вашей таблице скрыто знание предметной области?

      Спасибо.
        +1

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

          0
          — дублирование ---
          +21
          Красным флагом могут быть
          пустое перечисление ключевых слов от CSS до IDE.

          и дальше в таблице перечисление этих слов со стороны интервьюера=)
            0

            Видимо не достаточно дал контекста, есть ряд резюме на старшие позиции содержащие не в тему позиции css, html, ide, jira, photoshop- но без упоминания ключевого стека и подходов.
            спасибо, попробую подправить предложение.

              +1

              Приветствую.
              Есть мнение, что вначале, резюме просматривают рекрутеры. И может случиться ситуация, когда она… или даже он не увидят в вашем резюме знакомых аббревиатур (я имею ввиду HTML/CSS) и отдадут предпочтение тем у кого они есть — а чтоб наверняка.

                0
                Если позиция предполагает эти знания — то конечно должно быть. Но идя на мидла бека имея в резюме все подряд кроме того что нужно, уж простите)
                  +3

                  В некоторых компаниях позиция мидла бека подразумевает базовое знание HTML/CSS/JS. Чтобы не футболить задачу от бекенда фронтенду если надо одну строчку поправить. Резюме отправляется сразу в несколько компаний, никто не будет править его специально для вашей вакансии, ждать ответа 2 недели, а потом править обратно.

                    0
                    содержащие не в тему позиции
              0
              ---
              +10
              Это называется 5-в-1 ну или «и швец, и жнец, и на дуде игрец».

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

                Но и ничего прямо явно лишнего я тут тоже не вижу. Так или иначе, а в крупном проекте по всем этим пунктам пройтись придется, и никто полностью за вас все это не сделает. Вы что думаете, придет какой-то (мифический) специалист по безопасности, и сделает ваше приложение безопасным, при этом вы об этом вообще не будете думать что-ли?
                  0
                  Ну так одно дело — «пройтись», и совсем другое — хорошо знать, глубоко понимать, иметь обширный практический опыт.

                  Я бы сказал, что третья колонка на уровне «пройтись» — это более-менее уверенный мидл и есть. На сеньора нужно либо глубже копать, либо искать какие-то другие формулировки.
                    +3
                    >Ну так одно дело — «пройтись»,
                    Когда я говорю пройтись, я имею в виду, что вы как синьор разработчик проекта определенного размера будете за все эти пункты так или иначе отвечать. Сами. Никого другого для этого не будет.

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

                    Формулировки — да, к ним могут быть вопросы. Тут они местами чрезмерно конкретные.
                      +1
                      Возникает вопрос, а какой тогда смысл в этой таблице? просто набросаны тезисы с которыми «ну неплохо бы быть знакомым» она не является ни лостаточной ни необходимой.
                        0
                        Ну, тут лучше спросить автора, а я опять же не он. Я только хотел сказать, что список пунктов (строк таблицы) и с моей точки зрения вполне типовой. Хотя проекты у меня другие.
                          0

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

                          +1
                          Вы, мне кажется, немного путаете сеньера, лида и архитектора
                          Это немного разные люди и все они нужны и важны
                            +1
                            Не, не путаю. Архитектор — это человек, который в общем-то не делает ничего руками, как правило. Т.е. не пишет код. Поэтому с него не спросят (тоже как правило) за промахи в той же безопасности. Во всяком случае в моей вселенной. Лида и синьора — возможно путаю, скорее всего потому, что сам, как правило, выполнял обе роли одновременно.
                              0
                              Это с архитектора-то не спросят за промахи в безопасности? За что он тогда вообще отвечает? За красивые квадратики? Ну и зачем он вообще нужен тогда? Нет, серьезно? Нарисовать квадратиков безусловно нужная и важгая работа… для менеджеров, которым отчитываться перед другими менеджерами.
                              Есть такое понятие как архитектурный астронавт — человеки витающие в облаках и общающиеся только между собой. У них большие зарплаты, уважение среди таких-же. Они очень любят слово таксономия. А вот пользы от них ровно ноль. Ибо все что они делают — это раз за разом перерисовывание довольно банальных архитектурных паттернов. Реальная архитектура разрабатывается гораздо ниже. И если там архтитектор не озаботился безопасностью — гнать пинками сразу.
                                +1
                                Вообще-то я ровно об этом и говорил. Реальная архитектура делается не всегда руками архитекторов (зачастую, не будем прям обобщать). И тот кто там внизу чем-то озаботился (или нет) — это очень часто человек, которые не называется формально архитектором. Ну вот опять же, если говорить про себя, то моя основная работа — писать код, но если порыться в бумажках, то можно найти некий документ, согласно которому я числюсь solution architect своего проекта.
                                  0
                                  А я собственно с вами согласен. У меня в бумажках ровно тоже самое :) Вы вот внизу дали очень точное определение:

                                  [Сениор это]
                                  Когда вам не на кого переложить решение проблемы, когда вы даже можете посоветоваться — но решать все равно нужно самому
                        +4
                        В том-то и дело, что в крупном проекте только пощупать и получится. А вот в маленьких и средних проектах бывает поскакать приходиться.

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

                        Конечно нужно расширять свой кругозор. Но для меня все же каждый столбец выглядит нереальным при условии что надо знать каждый перечисленный пункт в столбце. В лучшем случае — 50%.
                          +2
                          По-моему про все пункты даже автор не говорит нигде. И даже вроде была оговорка, а, вот она:

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


                          Ну да, есть спорные пункты, есть пункты, которые наверняка зависят от проекта, от компании.

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

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

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

                          И вообще, на любую нестандартную задачу находиться коллега

                          А теперь представьте, что этот коллега вы. Представили? Вот это и будет состояние «Я уже синьор». Когда вам не на кого переложить решение проблемы, когда вы даже можете посоветоваться — но решать все равно нужно самому, потому что спросят-то с вас. Вот это, на мой взгляд, и отличает кстати реально синьора от миддла.
                            0
                            Это плохие или малые проекты
                            Специалист по безопасности, в данном случае, это не человек, который пропуска выдает и говорит на какие сайты не надо ходить, а человек, который на этапе закладки архитектуры готовит список мер и рекомендаций по организации разработки, а потом занимается, как минимум, блэк-бокс тестированием на безопасность
                            Если его нет — это компромисс, когда неспециалист делает не свое дело
                            Много таких проектов живут
                            Но это не норма, это просто экономия на ресурсах
                            Я не знаю ни одного небезопасника, который был бы способен нормально выстроить безопасность (включая себя, хотя да, как-то могу)
                            Тоже самое, как уже писал, касается баз данных и так далее
                              +1
                              Ну, может это и не норма, но я никогда вообще не видел, чтобы было прямо так, как вы рассказываете. Ну т.е. мои приложения просто никто никогда не тестировал на безопасность вообще, за последние скажем 16 лет. И это все были не мелочь какая-то, а скажем топ 10 банков в РФ, включая некоторые иностранные. Так что мне даже сложно представить себе, где бы это могло быть выстроено правильно.
                                0
                                Моя фирма занимается e-commerce и у нас есть специальный отдел по безопасности, который делает аудит сервера, аудит самого приложения, выдаёт рекомендации и контролирует их исполнение.

                                Это обходится дешевле, чем судиться с клиентами если, например, сольют данные кредиток или пользовательские учётки.
                          0
                          Ну вообще… да, так это и работает
                          Есть архитектор, есть разработчик, есть базист, есть безопасник, и каждый из них делает свою работу
                          Безопасник — сеньер и классно делает безопасность (разрабатывает рекомендации для линейных разработчиков, например) так, как никто из прочих вышеназванных сеньеров, зато базист классно строит базу, репликацию, фейлпротект, масштабирование… ну и так далее
                          И… ну может быть вы найдете одного какого-то уникального суперспеца, который делает на их уровне это все (скорее всего, нет), но стоить он будет как они все вместе взятые, и странно, что он все еще не в Google
                            +1
                            ТС просто путает и где-то смешивает понятия фулстек и синьор девелопер. Последнее это скорее про глубину понимания проблемы и владения технологиями в определенной области. Ты можешь быть продвинутым в одной области и, в то же время, быть джуниором в другой. В таблицу засунул видимо то, с чем сам сталкивался. Но где в этой таблице SEO, UX, GDPR, accessibility, VR?
                            Вот возьму к примеру БД нашего бэкенда. В пиковые дни (типа black friday) наша система переваривает 900к(данные позапрошлого года) транзакций в секунду(!). Сомневаюсь, что топикстартер может создать/сконфигурировать такую БД. Значит ли что он не очень синьор девелопер? А человек, который может сделать поднять такую базу, но при этом не знает названий патернов ООП или как обходить какие-то ньюнсы языка (какого кстати?) он что, не синьор? Таких спецов в мире можно пересчитать практически по пальцам. В общем поднятая тема интересна, но ТС сам в ней не очень. Может, и скорее всего, он и синьор и фулстек девелопер, но далеко не специалист по набору персонала.
                            0

                            И при этом джун?

                              0
                              Где джун, и откуда такой вывод?
                            0

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

                            • UFO just landed and posted this here
                                +3
                                это же реальная история про создателя FastAPI, которого не взяли на работу по причине нехватки опыта в его же библиотеке)
                                • UFO just landed and posted this here
                                    0
                                    в вакансии был требуемый опыт на FastAPI 4 года, в то время как этой библиотеке было 1.5 года от роду
                              +4
                              Задумался какой у меня уровень. Я-то не программист, а научный работник, и программирование у меня такое… либо численные методы, либо что-то инженерное — принять данные с АЦП, с COM-порта, и т.п… На джуна вроде тяну.
                                +1
                                Это таблица для веб разработчиков. Если вы работаете в другой области — для вас скорее всего нужно нарисовать сильно другую.
                                +2
                                А расскажите в чем разница между очередью и шинной данных?
                                  0
                                  Если совсем просто — то очередь это штука без логики внутри. С одной стороны положили, с другой — забрали. В крайнем случае — у сообщения есть атрибуты, возможно — приоритеты. И можно забирать с их учетом.

                                  Шиной же обычно называется софт, которые сообщения обрабатывает, т.е. содержит логику. Реально на сегодня эти понятия размываются, скажем, берем Apache ActiveMQ, вроде бы — обычный брокер сообщений, JMS, очереди и топики, и все такое. Но в тоже время, внутри уже давно можно писать обработчики, так что в какой-то степени это уже шина. Кафка — примерно так же.
                                    0

                                    В статье в одной колонке написно "очередь/шина сообщений", а в другой "очередь и шина данных". На собеседовании это повод для диалога, но в статье всё таки хочется видеть согласованность терминологии (в идеале с переводом на английский).

                                      0
                                      Это вопрос не ко мне — я не автор. Если на то пошло, в тексте вообще написано «шинна».
                                        0
                                        В тексте, видимо, исправили уже, а на картинке — осталось. :-)
                                          0
                                          Нет, не везде:

                                          Понимает разницу между очередью и шинной данных
                                          0

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

                                            0
                                            Ну, вы его в ответ на мой коммент написали, а не на верхнем уровне…
                                          0

                                          виновен, исправлю, привык больше к англицызмам — но решил их в статье не использовать.

                                      +10
                                      Удачи с поиском senior c такими требованиями
                                        –1

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

                                          +3
                                          Я думаю фишка в том что слабая граница между «адаптация для вашей организации и процессов» и «senoir» — даже если вы вырастите senior, то при переходе в другую организацию все равно может «не дотягивать» по их требованиям и точно также им придется «выращивать».

                                          То есть проблема в том, что слишком большой упор на специфичные знания, в том время как с большей частью из них можно просто уже в процессе проекта разобраться.
                                            0

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

                                              +1
                                              Я тут больше про то, что будете ли вы нужны сеньеру, который устроит вас по требованиям. С выращенным сеньором тот же вопрос.
                                            +4
                                            Прям даже стало интересно какой такой веб-разработкой занимается компания автора, если ему нужны такие сеньоры.
                                              +2

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

                                                +4
                                                Мне кажется хоть миллиард, знание например динамических протоклов маршрутизации вобще до лампочки. Зачем может понадобиться знать что маршрут пришел по ospf а не bgp, да и вобще не статически привязан.
                                                  0
                                                  Спросите это у тех кто делает свои CDN
                                                  Но этот пункт убрал, многих смущал)
                                              +9
                                              «А вы точно рекруитер?»

                                              Табличка на самом деле очень полезная, но больше для junior, чтобы понимать, в каких областях какие навыки примерно наращивать (направления).

                                              Потенциальных сениоров-кандидатов она скорее всего отпугнёт, потому что она слишком сильно перекошена в сторону довольно специфических требований, сформулированных в виде: «еще больше этих непонятных аббревиатур, которые знают только наши сениоры». Поэтому пришлось гуглить непонятные аббревиатуры (TLD, TSDB).

                                              Если честно, у меня сложилось впечатление, что здесь очень часто аббревиатуры используются только ради аббревиатур, как какого-то «сакрального» знания. Я, например, работаю с time-series DBs в нескольких проектах, но эту аббревиатуру «не узнал», мне кажется она пока не так широко используется. Кроме того, я сначала ломал голову, зачем же вы требуете знания морально устаревшего CVS от сениоров (ну может у вас такая махровая легаси система), но потом понял, что скорее всего Вы перепутали VCS и CVS аббревиатуры. Это еще раз убедило меня в том, что все эти сокращения, наверное, больше для сакральности.
                                                +2
                                                >эти сокращения, наверное, больше для сакральности
                                                Не, у автора наверное просто буквы заканчивались, и он пытался экономить :) Ну и опечатка конечно же. Не единственная.
                                                  +2
                                                  >еще больше этих непонятных аббревиатур, которые знают только наши сениоры<

                                                  Это вы со Сбербанком не общались. Там люди прям реально говорят аббревиатурами как в романах-антиутопиях. Просто новояз какой-то.
                                                    0
                                                    Как и любая крупная фигня
                                                    Типа той же абстрактной крупной связи (Ростелеком)
                                                    Там просто подразделения, должности и процессы состоят из половины листа А4 текстом, это невозможно использовать без аббревиатур
                                                    +1

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

                                                      +5
                                                      А вам в 2020 (уже 21) нужно что-то кроме GIT?
                                                      Нет, я не спорю, я правда заинтересован
                                                        –1

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

                                                          0

                                                          Мне действительно интересно стало, чем гит для монорепы не угодил?)

                                                            0
                                                            Git далекоооо не верх совершенства. Например старый добрый cvs (да да тот самый что легаси) имеет гораздо более понятную систему команд. Perforce по тулингу оставляет git где-то в районе лошадиных повозок в век мирного атома. А парадигма RCS с которого все и началось в 82 году папа их всех вместе взятых.

                                                            Вот вам пример если хотите — мне нафиг не сдались бранчи (комит в мастер, мастер на CI), но очень надо смотреть историю удаленных файлов. Скажете так не бывает, так нельзя, надо по-другому? А вот и нет. Это задания, которые реплицируются на прод из UAT. Т.е. есть репа в состоянии между прод и UAT. Туда комитят, а автомтический процесс вытягивает изменения и удаляет файлы. Опять скажете «так не надо»? Но почему-то «так можно» и даже удобно в perforce, но полный ужас в git. Нет совершенства.
                                                              0

                                                              Мой вопрос был про то, чем гит для монорепы не походит? Что в нем такого, что не позволяет его использовать для монорепы в сравнении с остальными vcs? Я не писал, что гит — верх совершенства, это вы дофантазировали)

                                                                +1
                                                                А что тогда вообще не подходит для монорепы? Для нее подходит файловая структура с ресолвом всех конфликтов вручную не говоря уже об абсолютно любой системе контроля версий.

                                                                Конечно git подходит для любой репы. Как и практически любая другая система контроля. Уникальность гита в локальных бранчах и слиянии, но оно нужно ровно одному проекту — ядру. Я не видел еще чтоб хоть одна организация (именно организация, а не оддельные девелоперы) использовала гит как распределенную систему. Всегда есть golden source, а значит функционально что git что cvs все едино. Дальше только вопрос предпочтений.

                                                                Мне git не нравится тем, что они не поддерживают систему команд svn хотя и могли. Это сняло-бы порог вхождения. Нафига учить _еще одну_ систему контроля версий когда уже работал с минимум четырьмя? Я-же не _работаю_ с системой контроля, а _использую_ для одних и тех-же тасков. Кроме того основную фишку — легкое переключение бранчей я не использую (сложно знаете-ли бранчи переключать, когда билд занимает полтора часа).

                                                                Добавлено: А! Я промахнулся с ответом. Он на самом деле был для APaMazur. «А вам в 2020 (уже 21) нужно что-то кроме GIT?» — да нужно. И git вовсе не вершина пирамиды вершн контролов.
                                                              +1
                                                              Обычно, производительностью таких операций как status, commit, checkout, clone. Если у вас сотни тысяч или миллионы коммитов в истории, ну и срез репозитория для конкретной ревизии занимает десятки гигабайт — вам будет очень, очень грустно.

                                                              Есть более лайтовые примеры, такие как репозиторий Unreal Engine 4. Можете для эксперимента скачать и посмотреть, как оно, если любопытно.
                                                            0

                                                            Ходят слухи, что есть еще Mercurial из используемых более-менее активно.

                                                              0
                                                              Эхххх, не нюхали вы StarTeam от Борланда…
                                                                0

                                                                Я так полагаю, оно и к лучшему?
                                                                Мне хватает того, что пользовался Subversion, Git и Arc. В этом мире слишком много VCS, что бы знать каждую.

                                                              –1

                                                              Разные проекты и конторы бывают. Только-только вот год, как смигрировались с CVS на SVN :-)

                                                              –1
                                                              Вот это, кстати, очень правильно (про git), перейдя на него с perforce я очень хорошо прочувствовал преемущества последнего и баги «мейнстримовского» решения! При том что git, конечно, сейчас просто стандарт в индустрии, и никуда от него не денешься (хотя мы и используем tfs в ряде проектов — и жутко довольны!).
                                                              Вот за это — плюсик лично от меня!
                                                                0
                                                                А в чем сила perforce?
                                                                  0
                                                                  Сила в тулинге. У p4 прекрасая оболочка с возможностью легко подключить windiff/diffmerge если хочется. А главное там есть тайм машина — движок подвинул и смотри разницу между 18 и 24-м комитами с конца. Это-же можно сделать и в git, да только оно гораздо медленнее, глючнее и именно что «можно сделать». А там уже есть из коробки. А уж про ресолвинг конфликто уж кто кто а git лучше-бы вообще молчал. В тревнем svn конфлиты и то лучше разрешались.
                                                                    0
                                                                    когда я пользовался им то там бинарники компактно хранились, инкрементально
                                                                    0

                                                                    Первый раз слышу хвалебные отзывы о TFS

                                                                      +1
                                                                      Не знаю, я с ним работаю больше 10 лет, в нескольких фирмах. Для наших задач он подходил намного лучше того же git.
                                                                0
                                                                Знает основные подходы к проектированию приложения

                                                                Как отделить тех, кто знает от тех, кто не знает, что если собеседуемый и собеседующий имеет равное количество знаний, но они не пересекаются на 100%? К тому же большинство вопросов крайне дискусионные, люди не могут по пробелам-табуляциям договориться, аналогично будет и с разными архитектурными вопросами, банально не совпадает опыт/видение.


                                                                Может рассуждать про метрики качества кода

                                                                Я могу много о чём рассуждать, например, о полётах на Марс, как оценивать рассуждения? Я полагаю, что это сведётся к "что больше нравится собеседующему".


                                                                Код понятен легко читаем без лишнего усложнения

                                                                Понятен кому? Как определить "лишние усложнения"? Какой код мы будем смотреть? И как мы поймём, что человек действительно пишет код для продакшена именно так?


                                                                Знает паттерны вне GOF

                                                                Одного хватит? Или это X% от знаний собеседующего? Оценка "Знания" невероятно сложная задача и без объективных критериев и формализованных вопросов подобные пункты:
                                                                1) Не могут быть оценены самостоятельно, т.е. я не могу взять этот список и оценить свой уровень
                                                                2) Волатильна и зависит от настроения/самочувствия собеседующего
                                                                3) Ограничена личностью собеседующего и его набором знаний
                                                                В целом у каждого, кто собеседует разработчиков рано или поздно появится своя таблица, которая едва ли адекватно конвертируется между собеседующими.


                                                                Может выбирать, создавать сложные алгоритмы

                                                                Что значит Сложный? Надеюсь не экспоненциальный! Не могу говорить про Web, но мой опыт говорит, что самых простых алгоритмов на деревья и обход графов хватает с головой. Так ли это нужно?


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

                                                                  0

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

                                                                    0

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


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

                                                                      0
                                                                      Знает паттерны вне GOF

                                                                      знание их существования, возможно пару примеров вполне вариант.


                                                                      Может выбирать, создавать сложные алгоритмы

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

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

                                                                        согласен, но я пока не знаю как это понять вне испытательного срока, нужно подумать над этим

                                                                        +3

                                                                        Как вот эта таблица с горой скиллзов коррелирует с "не должен часто менять проекты"?
                                                                        Где всего этого набраться-то тогда?

                                                                          –3

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

                                                                            +4
                                                                            Кто ж тебе даст выбирать, если ты не синьер? А если ты уже синьер, то всё это уже откуда-то знаешь.
                                                                              –2
                                                                              Конечно зависит от региона, но в больших городах для позиций выше джуна всегда раздолье.

                                                                              И могу предположить что это не всем нужно
                                                                              0

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

                                                                            +4
                                                                            По опыту — многие сениоры не верят в CAP-теорему. Серьёзно, даже видя проблемы на продакшене пытаются костылями сделать невозможное — в итоге всё становится только хуже.

                                                                            Что касается CI/CD — это возможно, но проще и быстрее сказать девопсу что ты от него ожидаешь и он это сделает.

                                                                            Про алгоритмы — ну если человек у меня например спросит, какая сложность операций для какого-нибудь дерева я ему например отвечу что структуры оптимизируются так что имеют логарифмическую и линейную сложность и нужно выбирать ту которая подходит под конкретный случай. И в ходе собеседования я в свою очередь не буду от кого-то требовать прям точного ответа. Главное помнить принцип: по возможности избегать алгоритмов требующих квадратичную сложность, и применять ситуативно те что имеют логарифмическую и линейную в зависимости от задачи по балансу RAM/CPU.
                                                                            ИМХО, если от вас кто-то когда-то потребует вспомнить какая сложность какой-нить фигни, то это говорит о том что от человек не понимает зачем он проводит с вами собеседования и вы соответственно также собеседуя человека не должны создавать впечатление безумности происходящего.
                                                                              0

                                                                              вспомнить согласен, тут скорее про уменее посчитать когда алгоритм перед глазами

                                                                              0

                                                                              "по этому оформление упускаем". простите, не удержался, два раза не удержался. тоже люблю правильно о формленное.

                                                                                0
                                                                                Можно чуть подробнее, опыта в написании и оформлении статей как видите не много)
                                                                                  +1
                                                                                  Вам намекнули — «о формление». Поэтому, в данном случае, пишется вместе. И ваше требование к резюме с такой банальной ошибкой, вызывает, назовём это так, улыбку.
                                                                                –1
                                                                                sijinjoseph.netlify.app/programmer-competency-matrix

                                                                                выставьте уровни по запросам, и ищите
                                                                                +4

                                                                                Все эти "может выбрать подходящий потому что знает несколько" — как-то слишком сильно сказано. Тут и архитекторы выбирают от полной балды, основываясь на хайпе/лайке/наличии проекта откуда можно скопипастить, а сеньер так должен знать несколько подходов да еще и выбрать мочь...

                                                                                  0
                                                                                  Согласен, формулировку убрал)
                                                                                    +1
                                                                                    Вот это ОЧЕНЬ зря. Половина комментариев теряет смысл, т.к. пост отредактирован и изначальных формулировок нет (
                                                                                  +7
                                                                                  Автор принимает свои знания по верхам за золотой стандарт и накладывает это как фильтр на соискателей. Привести такое может только к найму себе подобных и создание эдакого пузыря людей соответствующей квалификации внутри компании.

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

                                                                                    Человека делает «старшим разработчиком» отдел кадров, после найма и выпуска соответствующего приказа. Всё остальное субъективные представления каждого из нас о том каким должен быть «старший разработчик».
                                                                                      0

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


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


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

                                                                                        0
                                                                                        Тимлид и техлид — это тоже должны быть сеньоры.
                                                                                      +1
                                                                                      Было бы хорошо если бы Vladnev добавил ещё одну колонку — «оценка зания самим Vladnev
                                                                                      по шкале от 1 до 10», для лучшего понимания
                                                                                        +2
                                                                                        От 1 до 10 во Vladnev'ах
                                                                                          –1
                                                                                          Спасибо за лесть, но мои знания не покроют каждый пункт таблицы — я только стремлюсь к этому)
                                                                                            +1
                                                                                            Это не лесть — а реалити-чек для многих кто после прочтения напридумывал себе.

                                                                                            А так увидят как техлид сам себя оценивает — может попустит.

                                                                                            Добавить что-то типа пунктов

                                                                                            SOLID — 7
                                                                                            CQRS — 6
                                                                                            ES — 8
                                                                                            Modular — 4
                                                                                            SOA — 3

                                                                                            и т.п. для всего из списка, будет полезно. И пустой список можно давать на собеседовании, чтобы кандидат самооценку по ним сделал и тогда более предметно говорить и понимать.
                                                                                              0
                                                                                              Теперь я понял вашу мысль, изначально воспринял как язвление)
                                                                                              Естественно как и писал выше у меня по многим пунктам будет недотяг, где-то 0
                                                                                                +1
                                                                                                Ну тогда у меня большой вопрос: по каким причинам вы решили, что junior / middle / senior должны соответствовать критериям из таблицы? Уточню: ваши слова
                                                                                                Привет, я тех/тим лид в одной из продуктовых web компаний — систематически занимаюсь собеседованиями. Для меня главная проблема понять кто перед тобой senior, или не особо.


                                                                                                Правильно я понял, что суть примерно в следующем: «я думаю, что сеньор должен знать А, B, C — конкретно этот не знает C, значит он не сеньор, хотя я сам не знаю A и B»?
                                                                                                  0
                                                                                                  Вы так говорите, как будто это что-то плохое? Набирать людей умней себя. Наоборот. Поставил планку, адекватную или нет — вторично, но ищешь под неё. И не останавливаешься из-за того, что сам эту планке на соответствуешь.
                                                                                                    +1
                                                                                                    Нет, я говорю про совсем другое. Повторюсь:
                                                                                                    Для меня главная проблема понять кто перед тобой senior, или не особо.


                                                                                                    Если человек сам для себя придумал оценки — ок, норм. Но утверждать, что сеньор это тот, кто знает A, B и C, самому не зная что и как в этих областях и принижая всех остальных — не правильно.

                                                                                                    По мне правильно, это когда: «от сеньора я ожидаю знания С, но если он еще знает A и B и научит нас — будет бонус от компании». Чуток иначе звучит, верно? ;)
                                                                                                      0
                                                                                                      Боюсь вы восприняли все в абсолют, но в тексте не единожды говорится что в разных компаниях могут быть разные стандарты.
                                                                                                      Как это не странно, но не знание пары пунктов не понижает разработчика)
                                                                                          +6
                                                                                          А вы точно «настоящий сварщик»? /s
                                                                                          В ваших требованиях многое свалено до кучи из требований к web-разработчику. Судя по всему это full stack разработчик с навыками DBA, DevOps, QA и SysOps. Причём хорошими навыками судя по некоторым требованиям.
                                                                                          К прочитанному возникает вопрос, на какое материальное вознаграждение может претендовать тот или иной кандидат? Допустим, есть претендент, который соответствует всем требованиям уровня Junior. Какую вилку ЗП вы ему предложите? А кандидату, который проходит по вашим пожеланиям для уровня Middle? Как вы понимаете, последний вопрос будет про предлагаемую ЗП идеального по вашим требованиям Senior.
                                                                                          Думаю, кроме меня многим читателям будут интересны ответы на эти вопросы.
                                                                                            0

                                                                                            не сказал бы, как писал перед таблицей — у каждого будут свои прокачанные области и свои слабые.
                                                                                            что там от DBA — базу данных спректировать?


                                                                                            QA — нагрузочное тестирование? можете не знать как пользоваться инструментами, но как сделать правильный профиль для вашего приложения вряд-ли кто-то кроме вас поймёт.


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


                                                                                            У меня в компании далеко не все вопросы поднимаются.


                                                                                            Вилки вам хорошо покажет доу и джини, естественно продуктовые компании предлагают верхнюю планку — в зависимости от требований.


                                                                                            Хорошо зная последнюю колонку думаю можно ориентировался на 4.5-5+к но все зависит от продукта

                                                                                              +1
                                                                                              что там от DBA — базу данных спректировать?
                                                                                              Построить оптимальные запросы (какой критерий оптимальности?), построить сложную структуру базы данных — не всегда тривиальная задача даже для DBA.

                                                                                              Хорошо зная последнюю колонку думаю можно ориентировался на 4.5-5+к
                                                                                              Так и запишем: в вашей картине мира, человек хорошо знающий и умеющий всё описанное в последней колонке, может рассчитывать на 4.5-5+к. А вот скажите, какими знаниями и навыками по вашему надо обладать, чтобы рассчитывать на сумму 6-7к?
                                                                                                0
                                                                                                Хорошо зная последнюю колонку думаю можно ориентировался на 4.5-5+к но все зависит от продукта
                                                                                                страна/город?
                                                                                                  0
                                                                                                  Киев же
                                                                                                    0

                                                                                                    Ну тогда я бы сказал — это маловероятно. Даже в Харькове очень тяжело найти senior devops инженера, например, на 4к.

                                                                                              +8
                                                                                              Веб разработчик, который будучи мидлом
                                                                                              Понимает как устроена сеть DNS, NAT, OSPF, BGP, RIP

                                                                                              Это батенька из разряда фантастика.

                                                                                              Простите.
                                                                                                –5

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

                                                                                                  +6
                                                                                                  Но это курс универа

                                                                                                  А еще там сопромат был, и линал, и даже философия, упущения в табличке вижу я. Только где все же на практике разработчику нужно знание «вот на том циска маршрутизаторе bgp или ospf»?
                                                                                                    –2

                                                                                                    это даёт понимание как работает сеть, и упрощает понимание принципов работы CDN или может вы ВК у которых свое подобие CDN

                                                                                                      +1

                                                                                                      Если вы подобие ВК со своим CDN, то, скорее всего, у вас CDNом заниматься будут больше сетевики, чем веб-девелоперы. По крайней мере лучше бы им заниматься именно сетевикам :-)

                                                                                                        0
                                                                                                        Спору нет, знание сетей важная и нужная область. Правда стоит учитывать, что и она довольно широка и что разработчику web желательно знать определённую, нужную для его предметной области часть. Вот например, приведены протоколы динамической маршрутизации: OSPF, BGP, RIP (покойся с миром уже), какими знаниями об этих протоколах должен обладать по вашему web-разработчик? Как они устроены, как работают, как настраивать пиринг между AS? Или может быть было бы неплохо, если бы человек представлял, что Мировая Паутина представляет из набор автономных систем, которые связаны между собой протоколами динамической маршрутизации? Что для ускорения доставки целевого трафика существуют определённые решения. Только для этого необязательно, допустим фронтэндеру, знать и уметь протоколы динамической маршрутизации.
                                                                                                        или может вы ВК у которых свое подобие CDN
                                                                                                        CDN не такая уж диковинная штука. Даже не знаю у каких облачных провайдеров её нет. Помимо их CDN можно приобрести у провайдеров интернет.
                                                                                                      +3
                                                                                                      можете для себя вычеркнуть

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

                                                                                                      Какой универ, какая специализация, какой курс? Влад, вы в реальности живёте, или мире «fluffy unicorn dancing on the rainbow» (я специально в оригинале написал). У меня на собесе побывали кандидаты окончившие достаточно широкий спект «технических» универов, вплоть до MIT (занесло Американца парня, решившего в Европе пожить), причём на позицию сеньёра SRE, а не веб разработчика и отваливались на этих технологиях в том числе.
                                                                                                      Технический универ != человек это джуном знает.
                                                                                                        –2

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


                                                                                                        Опять таки у нас в компании нет такого требования

                                                                                                        0

                                                                                                        Что имеется ввиду под знает? Знает как расшифровуется OSPF/BGP? Или знает как их настроить в cisco/hp? Или умеет их дебажить?


                                                                                                        Ибо это 3 разных знания

                                                                                                      +1
                                                                                                      Знает основные подходы к проектированию приложения(CQRS,ES,Modular,SOA)

                                                                                                      Вы реально видели живого человека, который не просто знает аббревиатуры, но и сможет грамотно спроектировать приложение по каждому из них? Завидую (((

                                                                                                      Хорошо понимает как предупредить каскадные изменения

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

                                                                                                      Знает паттерны вне GOF

                                                                                                      Что значит «знает»? Читал на хабре? Применял в реальности? Может объяснить когда и какие применять и главное — применяет в жизни?

                                                                                                      Может грамотно построить структуру проекта

                                                                                                      Что имеется в виду под «структурой приложения»?

                                                                                                      При выборе алгоритма и структуры данных размышляет про эффективность выбора в разрезе RAM/CPU

                                                                                                      Если выбрал не оптимальную структуру по ram/cpu, но это сокращает расходы в 2 раза — это хорошо или плохо?

                                                                                                      Может построить сложную структуру базы данных(шардинг, денормализация)

                                                                                                      Погодите, погодите… Нормализация и шардинг — это теперь «сложные структуры базы данных»?! А «простые структуры» — это типа монга без схемы? А как тогда назвать структуру, в которой база размазана по дц?

                                                                                                      Знает ограничения и возможности популярных баз данных

                                                                                                      Каких? Тарантул — это популярная база или нет? Кликхаус? Вертика?

                                                                                                      Может выбрать подходящий брокер

                                                                                                      Серьезно? Хотел тут написать, что у каждого есть свои плюсы/минусы и потом этим брокером будут пользоваться все, вне зависимости от того, подходит или нет (это по опыту почти во всех продуктовых компаниях), но… Только 1 вопрос — как часто сеньор веб-разработчик продуктовой компании должен выбрать реализацию очереди для продукта? Что именно он выберет в итоге? Опыт подсказывает — то, с чем работал больше всего. Я не прав? Или сеньоров, в вашем понимании, не существует?

                                                                                                      Знает как балансировать нагрузку(включая необходимость попадания данных на тот-же сервер)

                                                                                                      Охх… Любой сеньор точно знает, что «необходимость попадания данных на тот-же сервер» — это уже косяк.

                                                                                                      Знает ограничения текущей платформы, как их обойти

                                                                                                      «Текущей» — это какой? Вроде речь про собеседование, не?

                                                                                                      Хорошо понимает принципы работы CDN и как решать базовые проблемы

                                                                                                      Серьезно? Веб-разработчки? А разбираться в медицинских препаратах на уровне доктора медицинских наук он не должен?

                                                                                                      Сорри, но пост на уровне «мы ищем самых крутых, но точно найдем причину не платить денег».

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

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

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

                                                                                                        Имеется ввиду проблема когда у приложения плохие абстракции или большая связность в итоге при любом внесении изменений нужно перелапатить пол приложения

                                                                                                        Знает паттерны вне GOF

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

                                                                                                        Что имеется в виду под «структурой приложения»?

                                                                                                        По сути дублирующий пункт, уберу — имеется ввиду разбиение проекта на правильные модули без свалки в директориях models :)

                                                                                                        Знает ограничения и возможности популярных баз данных

                                                                                                        Ну как минимум это в теме реляционки так что круг сужается, но это действительно за рамками сеньера

                                                                                                        Охх… Любой сеньор точно знает, что «необходимость попадания данных на тот-же сервер» — это уже косяк.

                                                                                                        То что вы не сталкивались с такими задачами не значит что их нет, представьте что вам нужен аналог s3 но под рукой

                                                                                                        «Текущей» — это какой? Вроде речь про собеседование, не?

                                                                                                        Рабочей, переформулирую

                                                                                                        Хорошо понимает принципы работы CDN и как решать базовые проблемы

                                                                                                        Content delivery network — добавил расшифровку)

                                                                                                        Сорри, но пост на уровне «мы ищем самых крутых, но точно найдем причину не платить денег».

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

                                                                                                          –1
                                                                                                          Перечислены примеры но не маст хев, ну и из списка затруднения может вызвать только ES там много специфики, с остальными проблем не вижу.

                                                                                                          Да я по каждой могу найти проблемы при общении с любым сеньором ;)

                                                                                                          Имеется ввиду проблема когда у приложения плохие абстракции или большая связность в итоге при любом внесении изменений нужно перелапатить пол приложения

                                                                                                          Оок. Хотя по мне — тоже какой-то мифический человек. Если только он не один работает, конечно.

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

                                                                                                          Тогда у меня уточняющий вопрос: а если он не знает названий, но использует в работе — это уже не сеньор?

                                                                                                          Ну как минимум это в теме реляционки так что круг сужается

                                                                                                          Ну вычеркните тарантул, остальные 2 варианта оставьте и ответьте на свой же вопрос, плз ;)

                                                                                                          То что вы не сталкивались с такими задачами не значит что их нет, представьте что вам нужен аналог s3 но под рукой

                                                                                                          Так я как-раз сталкивался и не раз ;). Аналог s3 — это вы пытаетесь доступным способом объяснять суть cdn?) Так-то — даже в s3 применяются реплики и пр., нет необходимости попадать на тот-же самый инстанс/сервер, что в предыдущем запросе (а чаще всего работает в точности наоборот — запрос полетит уже на другой сервер, который ближе / менее нагружен / более стабилен / etc).

                                                                                                          Content delivery network — добавил расшифровку)

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

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

                                                                                                          Вы сильно ошибаетесь)
                                                                                                            0
                                                                                                            Тогда у меня уточняющий вопрос: а если он не знает названий, но использует в работе — это уже не сеньор?

                                                                                                            А где там про названия?

                                                                                                            Ну вычеркните тарантул, остальные 2 варианта оставьте и ответьте на свой же вопрос, плз ;)

                                                                                                            Давайте скажу Mysql, PgSql естественно вариаций больше, и если человек знает Oracle это только в плюс, с более простыми продуктами разберется

                                                                                                            нет необходимости попадать на тот-же самый инстанс/сервер, что в предыдущем запросе

                                                                                                            Вашему запросу нужно попасть на сервер на котором лежит файл сколько бы раз вы не обратились в этом суть, остальное буквоедство с вашей стороны.

                                                                                                            Так-то я и до этого знал и расшифровку, и принцип работы, и потенциальные проблемы и способы их решения

                                                                                                            По вашему сеньер не должен знать как прикрутить CDN на проект чтобы не сайт не разлезся при следующем релизе из-за кешированных картинок, или не знать какую выбрать политику распространения — ну ок)

                                                                                                            Вы сильно ошибаетесь)

                                                                                                            Может быть — по этому и написал что это моя точка зрения, и эта статья возможность вам ее увидеть и не согласиться
                                                                                                              0
                                                                                                              включая необходимость попадания данных на тот-же сервер

                                                                                                              То что вы не сталкивались с такими задачами не значит что их нет, представьте что вам нужен аналог s3 но под рукой

                                                                                                              Вашему запросу нужно попасть на сервер на котором лежит файл сколько бы раз вы не обратились в этом суть, остальное буквоедство с вашей стороны.

                                                                                                              И так по каждому пункту ((. Ну ок, подтвердили то, что я писал в самом начале: «ищем непонятно кого, но точно найдём причину не платить».

                                                                                                        +1
                                                                                                        Немного похоже, что статья написана только для того, чтобы оставить ссылку на телеграмм канал. Ну и какого-то заключения не хватает после таблички в конце статьи, но я статью и автора поддержал, просто, что бы не отбивать у человека тягу к творчеству и совершенствованию публикаций.
                                                                                                          0
                                                                                                          Спасибо, да основная цель поделится ссылкой, вторая подбросить ориентир куда двигаться чтобы расти в качестве разработчика — из комментраиев увидел ряд промахов, буду подправлять.
                                                                                                          0
                                                                                                          Если что, гуглить programmer competency matrix
                                                                                                          Ну или вот я за вас погуглил: 1 и 2
                                                                                                          Я как-то пытался спрашивать на собеседовании — как вы считаете, на каком уровне вы находитесь? Метод оказался так себе.
                                                                                                            0
                                                                                                            Интересно спасибо, считаю себя мидле 3ий год в ит, половину вещей в столбике мидла не в курсе, буду изучать.
                                                                                                              0
                                                                                                              Многое знаю, умею и даже ненавижу из третей колонки. Не являюсь (увы) разработчиком.
                                                                                                              0
                                                                                                              Не успел отписаться первым =)

                                                                                                              Тут сеньер — это какой-то комбайн. Однако, тут нет ни слова, что относится к технологиям. То есть человек, зная алгоритмику, архитектуру, паттерны, построение и оптимизацию базы данных это сферический конь в вакууме, и специфика конкретных языков ему не нужна? Я наблюдал кучу людей, с болью и кровью пытающихся писать JS после ПХП. А когда ты начинаешь погружаться в мир JS с вебпаками, pwa, реактивность, шадоу-дом, грунты, пре-прцессоры, ректы — даже имея багаж выше перечисленной абстракции — изучение конкретных инструментов занимает ВРЕМЯ,

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

                                                                                                              В общем автор, ИМХО сеньер твой — это утопия. С таким багажом знаний кого-то найти можно, и задачами загрузить можно. А через 3-5 лет, окажется, что это не синьер а динозавр — т.к. на основе скилов если предположить объем работы — хорошо, если человек есть и дремать будет успевать.

                                                                                                              В моем понимании синьер — это человек с достаточным багажем знаний для того, чтобы БЫСТРО понять проблему, БЫСТРО найти ГРАМАТНОЕ решение и внедрить его, и в случае необходимости — донести его до всех окружающих (тима, бизнес итд). Быстро = за вменяемое время, не «через год когда я выучу фреймворк Х».

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

                                                                                                              Одним словом — описаный синьер — это утопия, универсальная боевая единица которая в реальной тиме в реальном бизнесе — золотой якорь на шее. И кикнуть жалко, и стоит дорого, и ко дну тащит.
                                                                                                                –1
                                                                                                                ГРАМАТНОЕ решение

                                                                                                                Испанский стыд!

                                                                                                                  0
                                                                                                                  Что поделать, multilanguage он такой, случаются ошибки, а редактировать — увы. Рейтинги не позволяют или что, не знаю…
                                                                                                                  0
                                                                                                                  Однако, тут нет ни слова, что относится к технологиям

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

                                                                                                                  У данной таблицы нет цели сказать если ты это все знаешь значит ты сеньер на Java и JS.

                                                                                                                  ИМХО сеньер твой — это утопия


                                                                                                                  Может быть) Как говорилось перед таблицей у каждого из нас свои слабые и сильные стороны

                                                                                                                  БЫСТРО понять проблему, БЫСТРО найти ГРАМАТНОЕ решение и внедрить его,


                                                                                                                  Для этого нужен опыт и базовые знания. Если человек не знает про то что кешируя все подряд запросы он в какой-то момент уложит базу

                                                                                                                  У Вас же, автор, синьер это и DevOps, и бэкенд, и ДБ и всё на уровне эксперта


                                                                                                                  Да это про бекенд эксперта, но нет девопс и ДБА из него полноценные не получатся, тут пару критических пунктов которые нужны для грамотного взаимодействия и поддержки части вопросов на стыке
                                                                                                                    0
                                                                                                                    ну чтож, тогда возможно стоит изначально это оформить как БЕКЕНД senior. А возможно еще точнее — если бы статья содержала хотя бы намёк на стак.

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

                                                                                                                    Резюмируя — требования выше рынка, завышены примерно на 1 ступеньку (т.е. джун требования — это мид итд.), короче очень идиелазированы требования, но если Ваш рынок позволяет — удачи в поиске специалистов!
                                                                                                                  0
                                                                                                                  С помощью гугла может решить основные задачи


                                                                                                                  Это, по-вашему, прерогатива лишь джуниора? А мидл и сениор не имеют права решать свои основные задачи с помощью гугла?
                                                                                                                    +1
                                                                                                                    Все последующие включают все предыдущие.
                                                                                                                    Тут указан минимальный необходимый навык — не поверите но он есть не у всех)
                                                                                                                    +2
                                                                                                                    А потом этого синьора сажают саппортить десятилетнее легаси, у которого верх технологий — XML/XSL…
                                                                                                                      0
                                                                                                                      Бывает и так, но я бы брал кого-то с меньшим скиллсетом.
                                                                                                                      –2
                                                                                                                      Мде, я бы тут на синьора не прошел никак:)
                                                                                                                      С такими реальными знаниями в практике(умение применять на 90% хотяб), уровень зарплаты примерно 100 000 в месяц, и не рублей, вобще не рублей:)
                                                                                                                      Это уровень того парня из статьи про фэйсбук, где у него уровень E9
                                                                                                                        0
                                                                                                                        Поделитесь ссылкой?) Искал на Levels, но там макс грейд — Е8, аж интересно, сколько следующий
                                                                                                                      0
                                                                                                                      колонку с синьором зря добавили ) Слишком общее понятие.
                                                                                                                      Толк от таблицы, как вы и писали — только как навигатор, как programmer competency matrix.
                                                                                                                      Но оценивать по ней, или по той матирице — не сильно разумно, особенно синьора, да еще и на собеседовании. Еще одно применение — гайд для собеседующего (это дно, конечно, но бывает и хуже, все мы сталкивались я думаю).

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

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

                                                                                                                      tl;dr проверять «знания арифметики» у синьера глупо, он синьер. И это нормально если он мало на что ответит. Человек занимался сложными вещами, а его попросят (не в шутку) связный список перевернуть и fuzzbuzz написать — он встанет и уйдет скорее всего. Или сразу, или потом. А вот поговорить о сложных походах — это может только он (если вы тоже это можете, конечно).
                                                                                                                        +1

                                                                                                                        Все больше подтверждаю свою идею: сколько интервьюверов — столько и понятий "сениора", "мида" и "джуна" — все прям вот слишком субъективно — даже два интервьювера из той же команды могут отдавать предпочтение разным критериям.

                                                                                                                          0
                                                                                                                          Да, в том числе потому, что у каждого интервьюверо свое понимание нужд команды. Особенно, когда «бизнес» хочет больше ресурсов, а интервьювер — хочет набрать вменяемых ребят. Вот и получается борьба за место внутри компании…
                                                                                                                          0
                                                                                                                          Middle — хорошо понимает SOLID.
                                                                                                                          Senior-а, который хорошо понимает SOLID, днем с огнем не сыщешь. Middle обычно в лучшем случае в какой-то степени понимает часть этих принципов, другую часть понимает не правильно или частично.

                                                                                                                          «Структуры данных/Алгоритмы»
                                                                                                                          Странный пункт. Что такое простой и сложный алгоритм? «Может написать простой алгоритм» — это уровень middle-а? По-моему средней сложности алгоритмы и джун должен быть в состоянии писать.
                                                                                                                          Студенты без опыта работы пишут алгоритмы на указателях для работы с деревьями – это сложные алгоритмы и простые? Некоторые что-то вроде рейтрейсинга пишут.
                                                                                                                          Я думаю, это не тот критерий по которому стоит делить на уровни junior/middle/senior.
                                                                                                                          И я бы разделил на 3 типа:
                                                                                                                          • Новичок или инженер из области, где код писать практически не нужно или код очень простой – не может разобраться и написать алгоритмы уровня алгоритмов для работы с деревьями.
                                                                                                                          • Программист (студент, junior, middle, senior) – может. Причем, время реализации, в разумных пределах, не важно.
                                                                                                                          • Программист из направления, где требуется постоянно реализовывать сложные алгоритмы.


                                                                                                                          «Код» — я не считаю этот пункт критерием, по которому можно отличить middle-а от senior-а. Тем более, человек мог писать в разное время или пишет сейчас одновременно на нескольких языках. Я бы по другому делил:
                                                                                                                          • junior
                                                                                                                            Знает язык в какой-степени. Многие сложные вещи и многие нюансы языка не знает. Может решить большинство задач, но многие очень не эффективно. Читабельность кода в лучшем случае средняя.
                                                                                                                          • middle и senior
                                                                                                                            Знает сложные вещи языка и нюансы, которые часто использует. Ряд популярных дополнений/библиотек. Конструкции языка, включая некоторые базовые, которые не использует, уже забыл.
                                                                                                                            Код обычно достаточно читабельный. Могут присутствовать некоторые странности в силу предпочтений/привычек/пробелов в знаниях/отсталости от моды.


                                                                                                                          Другая таблица навыков веб-разработчика. Но фуллстэка, в отличие от этой таблицы бэкендера.

                                                                                                                            +2
                                                                                                                            У меня в начале карьеры тоже были такие подробные списки. Спустя время, после пост-фактум анализа того, как разработчики отвечают и уровня пользы для проекта после найма, списки выродились просто в списки тем на поговорить. Да, кое-что есть есть и как proxy-knowledge, и как использующееся в нашем проекте, но без такого упора на что-то конкретное, как в статье.
                                                                                                                            Вот, например, тестирование у вас выделено в тему. В принципе, верные ключевые слова там. Но ведь цель — вообще не писать тесты, а обеспечить качество проекта. Вот о QA и можно поговорить (подталкивая кандидата к рассуждениям, делиться собственным опытом и идеями).

                                                                                                                            В итоге, по моим наблюдениям, в проект нужно нанимать человека, выдающегося в одной или нескольких областях, и, желательно, как-то знающим другие области. Например, в принципе, ничего знать о БД и не надо (но подозрительно, когда кандидат ничего не знает). Базовых знаний, которые всегда сами передаются внутри команды, хватит для большинства работ, а небазовые работы с БД покроют те, у кого расширенные знания. Это еще называется «роли на проекте».
                                                                                                                            Хотя чем меньше проект, тем меньше «перекрытие» и больше требования к широкой специализации. Но у меньших проектов и меньше требования в третьей колонке.
                                                                                                                              0
                                                                                                                              мидлов — не существует (безцеремонно так). Почему? Студент, проработав джуниором 3-6 лет(зависит от), начинает ощущать, что в предметной области он «шарит» не хуже, а иногда и лучше местных аксакалов-сеньоров. И далее все слова с корнем «мидл», относящиеся к нему или его грейду, воспринимает как недооценку его квалификации. Воспринимают и реагируют по разному, но суть одна. Исключений не видел.
                                                                                                                                0

                                                                                                                                Не увидел графы "Социальные навыки", разве что упоминание в разделе "Код".
                                                                                                                                А между тем, это ИМХО тоже важная категория навыков, которые тоже развиваются по мере взросления из джуна в сеньора, которая включает(по моей версии):
                                                                                                                                навыки объяснения проблем и их решений; аргументированного спора; четкой коммуникации; анализа требований и извлечения из них задач.


                                                                                                                                То есть, в некоторых командах и ситуациях будет уместен сеньор, который:


                                                                                                                                • отвечает на каждый вопрос "потому что так правильно"
                                                                                                                                • переходит на личности в спорах, принимает свою изначальную позицию близко к сердцу
                                                                                                                                • даёт задачи в стиле "забабахай фигню, которая будет шпарить клиентов в шину" (с последующим "почему ты кидаешь только айдишник/все данные вместо айдишника, и к тому же не туда?")
                                                                                                                                • делает то, что попросил бизнес, а потом удивляется, когда оказывается, что бизнес устроило бы гораздо более простое и устойчивое решение

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

                                                                                                                                  0
                                                                                                                                  Перечисление всех CMS это ответ на HH, которые в вакансии пишут все известные им слова =)
                                                                                                                                    0
                                                                                                                                    В целом достаточно объективная оценка, но без указания вилки зарплат…
                                                                                                                                      0
                                                                                                                                      В целом реакция на статью ожидаемая, кроме того что положили карму за несогласие с чужой точкой зрения, но ладно)
                                                                                                                                      Для меня главное что есть те кому это помогло, и кто написал об этом.

                                                                                                                                      Only users with full accounts can post comments. Log in, please.