Хотя в IT и разработана шкала оценки программистов (Trainee, Junior, Middle, Senior, Tech Lead), с которой более или менее все согласны, единого определения каждого уровня среди работодателей пока нет. В итоге каждая компания устанавливает собственные требования к навыкам на каждом уровне.

Этот тест поможет вам прикинуть, какой бы у вас был грейд, если бы вы собеседовались в МКБ.

Хотя в IT и разработана шкала оценки программистов (Trainee, Junior, Middle, Senior, Tech Lead), с которой более или менее все согласны, единого определения каждого уровня среди работодателей пока нет. В итоге каждая компания устанавливает собственные требования к навыкам на каждом уровне.

Этот тест поможет вам прикинуть, какой бы у вас был грейд, если бы вы собеседовались в МКБ.

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


  1. Alexandroppolus
    00.00.0000 00:00
    +2

    Ответ на 4 вопрос не совсем верный, если map прилетит из ифрейма. В этом случае более надежен вариант Object.prototype.toString.call(value) === "[object Map]"


    1. maeris
      00.00.0000 00:00

      const value = {[Symbol.toStringTag]: "Map"};
      Object.prototype.toString.call(value) === "[object Map]" // true
      


  1. h4x0rlol
    00.00.0000 00:00
    +4

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

    А на деле даже до собеса на джуна не дойти..


    1. shsv382
      00.00.0000 00:00
      +1

      вот примерно то же самое: Вы уже неплохо разбираетесь в React. Возможно, в МКБ ваш грейд был бы Middle.

      а на деле даже резюме не просматривают )))


      1. RomasBitinas
        00.00.0000 00:00

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


  1. AntonyDev
    00.00.0000 00:00
    +3

    Доброго времени суток! Я не согласен с ответом на 12 вопрос, там по моим ожиданиям будет ошибка на уровне несоответствия типов в инкременте, при попытке прибавить единицу к a, которое может быть null.
    P.S. Надеюсь код нацарапал правильно, т.к. проходил тест с телефона, а код писал по памяти))


    1. LuggerFormas
      00.00.0000 00:00
      -1

      Там имплиситно вызовется тунамбер и нулл станет 0

      У Вас тайпскрипт воет


      1. AntonyDev
        00.00.0000 00:00
        +2

        Если писать на JS, то да, но здесь TS и он не даст это запустить без отключения проверки типов


        1. pokatomnik
          00.00.0000 00:00
          +1

          Смотря как настроить: может вполне дать собрать, особенно если strict: false.


    1. bogdanq
      00.00.0000 00:00

      ну достаточно обернуть ее в Number и все


    1. Miraage
      00.00.0000 00:00
      +1

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


      1. maeris
        00.00.0000 00:00

        Я вот вроде бы на реакте давно пишу, а всё равно не понял, как между микротиками может пролезть клик. Точно так может быть?


        1. Alexandroppolus
          00.00.0000 00:00
          +1

          useEffect не микротаск, он отрабатывает после отрисовки на экране (и, например, тот же requestAnimationFrame пролезает перед ним). Хотя насчет события мыши сказать затрудняюсь. Можно ли кликнуть по ещё невидимой кнопке с вызовом обработчика клика?..


    1. yakimchuk-ry
      00.00.0000 00:00

      <Удалено>


  1. maeris
    00.00.0000 00:00
    +8

    Как-то я посмотрел на эти задачи, и... если у вас в проде null + 1 и мутация объектов в useEffect это норма, я бы не хотел у вас работать.

    (Конкретно на этот вопрос правильный ответ: на initState забыт readonly, FC почему-то берётся из неймспейса руками, useCallback потерян, export default запрещён линтом, код не проходит ревью.)


    1. AVCarp
      00.00.0000 00:00
      -2

      Задача программиста (а тем более Team Lead) - не только писать красивый код, но и уметь разбираться в чужом. А там зачастую и не такое бывает. Именно поэтому задачи вполне корректные. И уверен, что очень даже реальные.


      1. Kreastr
        00.00.0000 00:00
        +1

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

        Но если уж хочется "разобраться", то ответы на вопросы из теста выше можно получить запустив код на исполнение. И тут есть только 2 варианта: код либо соответствует ТЗ, либо нет.


      1. maeris
        00.00.0000 00:00
        +5

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


  1. dark_ruby
    00.00.0000 00:00
    +2

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


  1. getmancar
    00.00.0000 00:00

    Наотвечал на мидла исключительно интуитивным способом, даже немного страшно стало, может лучше бы на рулетке так удачу потратил :)

    Вижу any в typescript - отпадают варианты.

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

    В вопросе про вывод в консоли jsx, вижу useEffect - сразу выбираю вариант, где он последний.


  1. sovaz1997
    00.00.0000 00:00
    +2

    Этот тест поможет вам прикинуть, какой бы у вас был грейд, если бы вы собеседовались в МКБ.

    Вы бы гарантированно получили несоответствие вида реальный сеньор = джун в МКБ; реальный джун = сеньор в МКБ. Удачи с таким подходом)


  1. kirill-pavlovskii15
    00.00.0000 00:00

    хороший тест, спасибо


  1. SashaZel
    00.00.0000 00:00

    Решил тест на «12 Middle». Отправил резюме.


  1. Gleb_Fox
    00.00.0000 00:00

    chatGPT набрал 10 из 13 и стал Middle.


  1. borisovtema
    00.00.0000 00:00

    Прошел на тех лида, а я думал я джун+


  1. andres_kovalev
    00.00.0000 00:00

    В последнем вопросе ответ неправильный - чтобы что-то вывелось, надо App срендерить, а там он просто экспортируется)


  1. Mox
    00.00.0000 00:00
    +2

    Тест на знание тонкостей, но неужели кому-то в голову придет закладываться на последовательность срабатывания useEffect при рендере? Модифицировать initState так как в тесте?

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


  1. Hanma_Daiki
    00.00.0000 00:00

    Middle, в реальности джун. Тест ничего не показывает.