– «А как насчет крылышек? – спросил я. – Или, скажем, сияния вокруг головы? Один на тысячу!» – «А нам всего-то один и нужен», – сказал горбоносый. «А если их всего девятьсот?» – «Согласны на девять десятых».  (с) ПНВС, АиБС Недавно мне пришлось искать себе коллег. Эта статья об удивительном, но печальном опыте поиска хорошего джуна+ (React). Увы, без тестового задания обойтись не получилось. Я сдался не сразу, пытаясь решить вопрос как-нибудь так, но...  Лирическое отступление. За 20 лет своей карьеры я побывал на сотнях собеседований. Большинство из них отличались откровенно глупыми вопросам. Конечно, были и "почему люк круглый?", и "что означает буква B в слове SOLID?", и "какая у вас модель оси?". Помню, однажды HR удивила вопросом про "весь автобус спит, толька водитель не спит - как зовут водителя?" Худшим собеседованием был опросник на ~200 (двести с лишним, принц Чарльз!) вопросов, явно плохо скопированный с какого-то американского. Среди вопросов мне особо запомнились "часто ли вас беспокоит звук осаживающегося здания?" и завуалированные намёки "бывает ли так, что ваши конечности заметно подёргиваются, когда для этого нет достаточных причин?" В конце статьи вас ждёт увлекательный топ вопросов оттуда! В общем, я - тот самый сильно обстрелянный воробей, за которого двух-трёх небитых дают. Фактически - среднего уровня разраб с замашками крутого сеньора и всеми его комплексами. Поэтому я очень не люблю формальности, глупые вопросы и плачу на тестовые задания. <мем про корги "хочу деняк".jpg /> Как оказалось, зарплату и место мы предложили неплохие, соискателей находилось много даже после фильтра HR-а. Первым этапом мы сделали видеосозвон и простые вопросы по резюме, что позволило в этом пёстром потоке выделить несколько групп, которые отваливались сразу: волшебники 80lvl - они же выпускники курсов "Java и PHP для чайников за 3 дня" и дипломированные специалисты по составлению резюме. Люди, которые сочетают в себе Back, Front, DevOps и умеют подключить примус к малинке встречаются, но явно не с общим стажем работы 6 месяцев! Ни один сказочник не смог внятно объяснить, что все эти ключевые слова делают у него в резюме. tabula rasa - "нет, примеров кода у меня нет. Нет, вообще никаких. ГитХаба нет. Всё, что я делал - под NDA. И я даже не могу вам рассказать, что был за проект и чем я там занимался, потому что гладиолус NDA. Но я очень крутой и совершенно точно вам подхожу. У нас есть такие приборы.. но мы вам о них не расскажем!" динозаурусы - "знаете, последний раз я писал что-то под FoxPro или на Clipper... React? да я его выучу за день, по факту это тот же Delphi...! примеры кода есть, готов прислать вам несколько лучших кусков в ,rar-архивах, покопайтесь там, может, сумеете оценить, как вам со мной повезло." Серьёзно, куски кода в .rar, никакого Github, только экстрим! злые корги - "я вас всех заранее не люблю, просто дайте деняк. Зачем вопросы? Я злюся!" Реально, таких было несколько, все очень молодые, дерзкие и крайне недовольные, что их о чём-то спрашивают. Как передать данные из компонента в другой компонент такого же уровня иерархии? Да как-нибудь уж передам, SO в помощь! Зато у них были хорошие стримерские микрофоны и правильная форма одежды... Проектом, который наша команда усердно пилила уже несколько месяцев, был внешне довольно стандартный каталог товаров, с поиском, фильтрами по свойствам, блекджеком и платёжными шлюзами.  Хитрую начинку я, естественно, не расскажу - потому что NDA! (да, я учусь у соискателей). Но в целом мне надо было просто оценить, вменяемый ли вообще человек (первый этап) и хотя бы приблизительно - его техническую грамотность.  Для этого у меня был короткий список простых типовых вопросов вроде того, что выше - про передачу данных из компонента в компонент или просто "а вы как-нибудь документируете ваш код?" / "а git использовали когда-нибудь?", и я думал, что этого хватит.  Наивный я! Некоторые кандидаты (группа "оракулы") умудрялись растянуть собеседование минут на 40 (не шучу!), только по истечении которых становилось ясно, что пытуемый не понимает сам смысла того, что говорит. Возможно,это были мастерские скиллы стековерфлоуинга, или им кто-то подсказывал, но времени нашего они тратили кучу, причём совершенно бездарно.  Кроме них была ещё группа, получившая гордое имя "последователи М.С. Горбачёва", по древнему анекдоту:  Журналист: Михаил Сергеивич, почему вы не носите шорты? Горбачёв: Ну, мы с Раисой Максимовной обычно ходим пешком.  Мозг интервьюера клинит напрочь, потому что ответ формально дан, но смысла в нём нет. Хороший панч. На ком-то сработает. Кстати, код они пишут соответствующий. К примеру вместо того, чтобы просто взять константу из Store, оборачивают этот нехитрый процесс в  useEffect, в нём в setTimeout, там анонимная функция..  так что вроде бы тёмная магия работает, но нафига и зачем - не разобрать. Где-то на второй сотне резюме и нескольких десятков созвонов я понял, что так наша подводная лодка не взлетит. Нужен фильтр посерьёзнее. Признаюсь, я отчаялся и приуныл. Я понял, что не хочу тратить время на ложные срабатывания, а сроки уже начинали подгорать приобретать дополнительную степень прожарки. Поэтому я запилил небольшое тестовое задание. Каюсь, оно могло занять не 15 минут, а дольше, но упрощать ещё сильнее мне не хотелось. Требовалось сделать интерфейс для отображения фигур восьми цветов взяв данные из предоставленного json, примерно так: Казалось бы, что может пойти не так? О, дважды наивный я! Для 90% кандидатов эта задача оказалась то ли слишком сложна, то ли слишком скучна, то ли всё сразу: кто-то путал цвета, приравнивая синий к зелёному, а тёмный к красному.  Кто-то использовал copy-paste там, где можно было пройтись циклом по массиву, кто-то не осилил прочитать данные из json, нагородив плетень из запрошенных технологий (увы, не работающий корректно). Отступы? Ну, как c SO скопировалось, такие и отступы! Многие, как выяснилось, не понимают, чем checkbox отличается от radio - если верить резюме, фронтендеры  опытом работы год-два. * facepalm * В общем, тестовое удалось на славу. Возможно, какойто Крутой Уокер и отвалился просто потому, что никогда не решает тестовые, а когда суёт пальцы в розетку - розетку бьёт током от пальцев. Но нам такой техасский рейнджер в команде и не нужен был, мы люди простые, и задачи у нас несложные, зато много. < падал прошлогодний снег__мужик-с-ёлкой.jpg />  Он всё-таки раздбыл ёлку. Но была уже весна, и он отнёс её обратно. Успешно решивший тестовое кандидат оказался молодцом: четко понял ТЗ, не поленился открыть json и увидеть в нём пару подвохов (вот такой я коварный, да!) и не постеснялся написать пару уточнений вместе с кодом. Кодстайл аккуратный, в копипастинге не замечен, комментариев оставил в меру. Подвохи, кстати, никто кроме него не упомянул вообще. Одна капелька дёгтя всё же случилась: я не смог запустить его проект! Он что-то намудрил с зависимостями, а я не стал разбираться. Но по коду и так было всё ясно, и мы его быстро взяли. Работаем уже на втором проекте с ним, отличный боевой товарищ. Как итог:  Интервьюерам - хорошее, релевантное тестовое задание экономит огромную кучу времени и позволяет быстро отсеять 90% неадекватных и неподходящих. Да, задание должно быть максимально простым. Я всё же слегка переборщил, наверное, 8 цветов это очень много.  Соискателям - не спешите обижаться на тех, кто просит заполнить небольшой опросник или сделать несложное тестовое. Скорее всего, так будет удобнее всем, вам в том числе.  Из стандартных советов: держите хотя бы пару пет-проектов на GitHub; даже под NDA можно в общих словах рассказать, в чём ваша сила; то, что делала ваша команда и что делали вы конкретно - две большие разницы; люди, которые вас собеседуют, впоследствии могут стать вашими коллегами. Не будьте с ними слишком суровы. Успешных вам собеседований! Оказывается, у меня сохранился список, аж с 2009 года! Нумерация сохранена. 79) Считаете ли Вы, что современная система "тюрем без решеток"обречена на неудачу? 84) Верно ли, что Вы выбрасываете вещи, а потом обнаруживаете,что они Вам нужны? 93) Иногда Вы задумываетесь, а есть ли кому-нибудь действительно до Вас дело? 99) Если бы Вы участвовали во вторжении в другую страну, стали бы Вы сочувствовать тем гражданам этой страны, которые отказываются нести военную службу из-за своих религиозных или нравственных убеждений? 123) Бывает ли когда-нибудь так, что Вас беспокоит шум ветра или звук "осаживающегося" здания? 110) Когда вы проходите мимо красивого ребенка, Вы не смотрите на него и не улыбаетесь, а скрываете свой интерес? 29) Когда вы охотитесь или ловите рыбу, беспокоит ли Вас мысль о той боли,которую вы причиняете дичи, наживке на крючке или рыбе? 44) Случается ли иногда так, что жизнь кажется Вам нереальной - как будто все происходит во сне? 62) Верно ли, что Вы часто сидите и размышляете о смерти, болезни, боли и горе? 19) Считаете ли Вы, что на социальное обеспечение расходуется слишком много денег? 13) Случается ли время от времени, что у Вас судорожно подергиваются мышцы,тогда как для этого нет никаких логических объяснений? 33) Верно ли, что когда происходит что-то неожиданное, некоторые из Ваших мышц подергиваются? 105) Медленно ли Вы едите? 113) Хорошо ли Вы спите? 120) Часто ли Вы улыбаетесь? 51) Попадаете ли Вы время от времени в неприятности? 52) Кажется ли Вам, что жизнь - штука стоящая?