Pull to refresh

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

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

Пройти тест
Total votes 20: ↑16 and ↓4+36
Comments28

Comments 28

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

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

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

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

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

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

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

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

UFO just landed and posted this here

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Sign up to leave a comment.