Комментарии 113
Одно замечание - очень, нет - ОЧЕНЬ много текста - зачем? Вы ведь сами пропагандируете ценность времени... И это дублирование текста схемами..
Текста не так и много, тут есть куда более объёмные и менее содержательные статьи. По поводу схем: кому-то проще воспринимать информацию визуально в виде связей или при "беглом чтении".
Да, бывает удобно, когда это инфо-графика, а тут диаграмма ради диаграммы, к тому-же не читаема в странице без увеличения, и ведь можно-же было сделать нормально, отступы-то какие! Лебедева на вас нет, Артемия ;-)
Вторую половину статьи я начал читать по диагонали, а последнюю четверть (наверно) вообще не смог. Так что да, текст перегружен. Наверно какие то промпты есть для упрощения таких статей.
Не очень понял где у автора "пропаганда ценности времени" и не особо могу проследить связь, если честно
Относительно схем - мне действительно помогло при беглом чтении не потерять интерес, а потом вчитаться еще раз
Кодер на салфетке. Извините
«Когда я был junior’ом, делал тестовые направо и налево. Через полгода мне написал сотрудник компании, для которой я «проходил отбор». Спросил: «Как у тебя в задании реализован модуль Х? Мы внедрили твоё решение, но теперь всё падает».
Оказалось, они просто скопировали мой код... но даже не потрудились сообщить, что я «не подошёл»».
Невыдуманные истории, о которых невозможно молчать.
История не выдуманная, а именно, что реальная. Верить или нет - ваше дело.
И что-же ето был за модуль? ЧТо за джуновское решение, которое можно вставить не глядя, а потом не разобраться ;-)
История не моя, но я был её свидетелем. Это было в апреле 2024г. и относительно чего я уже не помню, что-то с FastAPI и реализацией админки.
Да уж, модуль fastapi без подключения к БД или с подключением но очевидно с простой схемой (иначе постановка задачи была бы отдельным усилием) и во всем этом они не разобрались … Некоторые истории могут быть сильно искажены рассказчиком (особенно обиженным кандидатом)
Не разобрались, но в комите так и написали: исходники у мастера Чуня в тетрадке у чувака который проходил собеседование в далёких 200х.
У меня например очень давно биглион так взял код и сказал что я не подошел
а я верю, проходил. правда очень давно... и тестовые делал не для себя - было. нормальная статья, на мой взгляд. а токсичные комментарии - как-будто из pi... :)))
Это был просто способ сказать, что "не подошёл" ;-)
Делитесь опытом как вирус Каждая публикация о недобросовестном тестовом спасает сотни часов других специалистов.
И где же соискатели делятся такими фактами?
ТГ-каналы, хабр, пикабу, спортлото) Вариантов много, почему нет?
Glassdoor?
На hh можно отзыв написать, ещё в тп обратиться с жалобой.
Я в последний раз так разозлилась, что затребовала фидбэк по своему тестовому на почту указанную в контактах с угрозой разместить отзывы в открытых источниках (отзовиках). Сработало.
А ещё как-то раз, после собеседования была недельная стажеровка, было несколько кандидатов и ежедневными заданиями отсеивали тех, кто хуже справился. Когда меня сняли без объяснения, дозвонилась до начальника с требованием выслать мне верное решение. 😁
Подумалось - будь это реальной проблемой, весь интернет пестрил был отзывами и историями о нехороших работодателях. Да и в самой стаье как-то не увидел реальных фактов, только мысли.
И да, помнится была статья с "другой стороны", если коротко - на кой черт использовать в реальном проекте нечто от незнакомого человека? Больше времени уйдет на проверку, тестирование и тп.
У меня был случай, когда на тестовое надо было сделать парсер товаров из переданного в него магазина на озон, сохранение всего этого в админке джанго и управлением/оповещением в Telegram. Использовать необходимо было bs4, без всяких селениумов и иныз браузеров. Я сделал, но код отдавать не стал, скриншоты и скринкаст их почему-то не устроили, интересно почему?
Ещё одна ситуация была у подписчика канала, тестовое задание было привести в порядок РАБОТАЮЩИЙ FastAPI-проект и прикрутить пару фич. Работы много, гарантий никаких.
Маленькие компании вполне могут пойти на такое, для крупных, ИМХО, такое делать себе во вред
Вы призываете в посте делиться опытом о таких ситуациях, но сами не называете компанию. Почему?
По моему опыту как собеседующего, тестовое задание даёт наиболее объективное представление о технических навыках кандидата. Из всех остальных известных мне этапах приема на работу. За исключением пет проектов
Лайв кодинг по всем параметрам ему уступает (в качестве оценки). Как минимум потому что уровень стресса зашкаливает у кандидатов и не все способны с ним справиться.
Но тестовые задания действительно отнимают много времени и не очень справедливо их просить, и мы в итоге заменили их на лайв кодинг.
Не могу себе представить компании, где тестовое задание хотя бы частично может использоваться для продакшена.
Тестовое задание ни в коем разе не отражает навыков соискателя, по моему мнению. Я могу его скопировать с GitHub, решить с помощью GPT, просто набросать "как попало", а в ответ не получить ни код-ревью ни обратной связи. Лайв-кодинг хоть и стрессовый, но он показывает как соискатель может думать над задачей САМОСТОЯТЕЛЬНО, и даже если он не справится, ход его мыслей, рассуждений, подходов к написанию поможет ему получить расположение работодателя.
Если вы копируете задание или решаете его как попало, то это не вопрос к заданию. Вы можете и на вопросы/лайв кодинг отвечать как попало, при желании.
На обсуждении того, как вы выполнили задание, очень часто и легко можно вычислить, что вы не сами делали.
На обсуждении того, как вы выполнили задание...
Автор статьи рассматривает использование тестового задания как способа "сузить воронку найма" на раннем этапе - то есть, уменьшить число кандидатов, допускаемых к собеседованию. При таком способе использования обсуждения просто не будет.
Ну, а фильтр по выполнению тестового задания быстро станет столь же бесполезным, как и по годам опыта: те, реально кто не способны его пройти честно, будут применять нечестные способы: GPT, "звонок другу", коммерческие услуги по написанию тестовых заданий (а такие обязательно появятся, если GPT не справится)...
Ценность тестового задания не в самом выполнении, а возможности поговорить о его выполнении на собеседовании, дописать на нём же пару-тройку строчек. Там реально сразу видно, кто сам писал, а кто - нет)
Тестовое задание для врача: прооперируйте пациента дома, у него все го лишь апендицит, потом обсудим вашу методику...
У врачей есть гос.органы, которые регулируют наличие лицензии, образования и навыков. В айти, к счастью или к сожалению, этого пока нет.
Угу. И это же ограничивает разумный размер этого тестового: в нём придётся разобраться для последующего обсуждения.
Проблема не в этом, а в том, что (раньше я был уверен, что во всех, но комментарии меня убедили) в подавляющем большинстве случаем ты не получаешь никакой обратной связи по выполненному тестовому. Ладно если допустят, можно обсудить, но обычно не допускают и не говорят почему, что не так, как закрывать свои пробелы, если тебе о них не говорят?
Пример ответа который получили я и приятель (мы сделали абсолютно по разному), откликнувшись на одну и ту же вакансию:
Иван, уточнил информацию.
Руководитель рассмотрел тестовое задание, но, к сожалению, на данном этапе оно не соответствует требованиям.
В связи с большим количеством заявок, руководитель не имеет возможности предоставить индивидуальный разбор каждой работы.
Мы искренне признательны за проявленный интерес и участие в отборе.
Спасибо!
Каким требованиям? Какая нужна была реализация? Так много вопросов и ноль ответов. Ссылку на репо прикладывать не буду, но если очень хочется, ищется "imei_test" с совпадением ника.
Вот кстати хороший вопрос. Мы не даём фидбека автоматически.
Но если нас просят, мы устраиваем 30 минутный созвон с кандидатом, в целом обозначаем проблемы и отвечаем на вопросы.
Если вам отказывают, попробуйте тоже попросить фидбек явно. Не знаю насколько это общепринятая практика, но почему бы нет.
Предлагать его каждому автоматически это накладно (тогда воронка не очень полезна).
Мне приходилось видеть тестовое с десятком уровней вложения if и несколькими вложеными for где переменные назывались I, ii, iii. Многое про кандидата стало понятно) Техническое прошел хорошо, и даже взяли. Переучивали. Не переучили...
Лайвкодинг? Нет, не слышали. Вместо 30-минутной сессии, где виден реальный уровень, — неделя стресса и сомнений.
Дочитал до сюда и бросил... дальше не интесно. "Рельный уровень" на лайвкодинге? Вы серьезно? Ради спорта можно провести такую "30-минутную сессию.. стресса и сомнений" , что потом согласишься на любое тестовое. Лайвкодинг - это когда работодатель видит твой худший код и принимает его за твой лучший.
Ну, может, работодателю и интересно видеть твой худший код? "Стадо бизонов бежит со скоростью самого медленного бизона".
Другое дело, что не факт, что он будет соответствовать твоему худшему коду. Ты можешь в стрессе написать фигню, до которой никогда в реальных условиях не опустишься, а можешь наоборот, собраться и "поставить рекорд". Так что лайвкодинг – это больше не про сам кодинг (ну разве что претендент совсем странные решения выдаёт), а про последующее обсуждение кода.
Ну, может, работодателю и интересно видеть твой худший код?
Может... всё что угодно может быть... лишь бы таком случае работодатель понимал, что он видит. Что тоже может быть, но очень сомнительно.
"Стадо бизонов бежит со скоростью самого медленного бизона"
Тогда бы волки вымерли. Жертвой как раз таки становиться отстающий.
Ты можешь в стрессе написать фигню, до которой никогда в реальных условиях не опустишься... ...про последующее обсуждение кода.
Во-во, тут согласен, будем все вместе обсуждать как же ты до этого опустился.
Всё ИМНО, без обид.
Почему вы вместо того, чтобы сделать тестовое задание оплачиваемым, заменили его на лайвкодинг?
Очень приятно видеть трезвую оценку реальности и очень досадно, что у вашего комментария низкая оценка. Промысел ли это несогласных и недобросовестных HR?)
Лайв кодинг по всем параметрам ему уступает (в качестве оценки). Как минимум потому что уровень стресса зашкаливает у кандидатов и не все способны с ним справиться.
Лайвкодинг можно и нужно организовывать так, чтобы кандидату было комфортно, и это возможно. Тогда он продуктивен.
Это не экзамен, а диалог двух профессионалов. Даже если кандидат не может решить задачи сходу, его можно вывести на рассуждения вслух, давать подсказки — это показывает уровень собеседуемого. С моей точки зрения, рассуждения и навык «защиты» решения показывает куда больше, чем сходу написанный верный вариант.
У меня был опыт с обеих сторон и лайвкодинг бывает полезным, если
Стороны друг друга уважают и относятся друг к другу как к равным специалистам
Задачи правильно подобраны по уровню
Задачи отражают что-то реальное из бизнеса, либо ненавязчиво позволяют показать знание нюансов технологий.
По ходу решения задач есть общение «в сторону» — обсудить выбранные или смежные технологии, обменяться опытом, попытаться копнуть глубже и выстроить дискуссию.
Лайвкодинг можно и нужно организовывать так, чтобы кандидату было комфортно, и это возможно. Тогда он продуктивен.
Задачи отражают что-то реальное из бизнеса, либо ненавязчиво позволяют показать знание нюансов технологий.
Тем временем Авито:
Решите несколько задач уровня easy и medium c hackerrank.com или leetcode.com и освежите знания по основным структурам данных, чтобы подготовиться к задачам по программированию.
Озон:
Основное техническое собеседование в CodeInterview или Ozon Code. Алгоритмы и структуры данных. Придумать и написать код решения.
Специально для того, чтобы вы могли примерно представить себе содержание задач, которые мы даём на алгоритмических секциях, мы собрали контест, который можно использовать при подготовке к собеседованиям. Попробуйте решить все задачи, ни разу не запустив дебаггер; написать решение в Notepad'е без подсветки синтаксиса; придумать как можно более короткое решение, которые пройдёт все тесты; продумать все возможные проблемы заранее и сдать решение с первого раза.
То есть по факту лайвкодинг организован так, что нужно предварительно посидеть пару месяцев на литкод, чтобы набить руку и без дебагера, подсветки синтаксиса на рваном листочке, на четвертинке стула без запинок всё написать и в уме оттдебажить. Адекватные лайвкодинги встречаются раз из 10 по моему опыту. Я бы даже сказал чаще встречаются собеседования вообще без лайвкодинга, чем с адекватным лайвкодингом.
Мне везло и я сталкивался в основном с адекватными, ну и сам проводил примерно как расписал в комменте.
Про задачки согласен, просто зубрежка, которая потом ничего не гарантирует. Был опыт работы с синьорами из AWS, Booking, Meta, которые приносили ужасный код, но отлично проходили собеседования, судя по карьерному треку
Любая работа должна оплачиваться! Тестовое это ты и код, при лайве есть собеседник
Уже нет. Я в своей компании попросил chatgpt порешать тестовые задачи, уже несколько человек отсеял за читерство.
Прохладная былина, но я ни разу не видел кода тестового задания, чтобы его можно было в проде использовать. Ну это бред жеж. Без контекста, без предметной области, без гита компании или монорепы, без взаимодействия с командой за день что-то написать... хах.
Уже довольно давно, две работы назад, с одного места куда я посылал резюме мне прислали тестовое задание с комментарием - "даже если сделаете, мы все равно не гарантируем что вас возьмем". Какая эта была компания, сейчас уже не помню. Я просто не стал продолжать. Поэтому я автору верю.
Для кого вы это написали? Соискателям порочность неоплачиваемых тестовых очевидна. Для работодателей эта практика удобна и выгодна — это бесплатный и безопасный способ найти самого старательного терпилу.
На мой взгляд, довольно часто компании используют тестовое задание просто для сужения воронки. Неважно, что многие опытные соискатели просто не станут подаваться на позицию, важно то что итоговая выборка сузится, а кандидаты попавашие в неё будут априори лояльны потенциальному работодателю. Это из той же серии, что и 7 этапов тех-собесов. Только очень мотивированные соискатели будут это всё проходить.
Никто в здравом уме неподдерживаемый код с тестового задания джуна, да и сеньора тоже, в прод не отправит. У этого кода нулевая ценность для работодателя.
Ну, костыли с прошитыми прямо в коде магическими чисами, подобранными методом тыка (например, задержкой для избежания гонок при параллельном доступе к переменной), тоже, вроде как, в здравом уме попадать в эксплуатацию не должны - однако ж, попадают время от времени. Так что здесь не всё так однозначно: иногда дыру лучше заделать хоть как-то.
Другое дело, что использование подобнных практик с немалой вероятностью приведет к тому, что такое предприятие рано или поздно не впишется в рынок - но это пока оно там не впишется.
Недавно мне прислали такое "тестовое" в ответ на отклик на вакансию с hh
Тестовое закрыл за 4 рабочих дня и отправил на проверку, вернулись с фидбеком мол очень восхищены результатом и теперь можно проводить тех собеседование. Его я тоже прошёл и в самом конце ждал меня подвох. Мне сказали что я должен буду проходить стажировку бесплатную и якобы обучаться за их счет, чтобы потом полноценно работать с ними. Вроде звучит круто но изучив подробнее условия стажировки появляются ощущения что меня пытаются наебать обмануть.
Стажировка длится 2 месяца, 5 полных рабочих дней в неделю, каждый рабочий день порядка 9 часов, а задачи на моей стажировке будут из настоящих проектов. Так же было дополнено что после прохождения стажировки никто не гарантирует что мне потом дадут оплачиваемую работу - и я могу просто попасть в резерв.
Это тоже достаточно распространённая практика на ххру, где набирают на бесплатную, а было пару раз и платную стажировку, только подвох в том, что платит СОИСКАТЕЛЬ. Аргументируют это в основном "нам тебя надо обучить, а для этого человека выделять и платить обоим без результата не хотим".
На "стажировке", тем более бесплатной (чего Трудовой Кодекс, кстати, не допускает), не может быть " рабочего дня". Просто потому, что вы - не работник. Она и час может быть. И вообще вы ничем никому не обязаны. Нет оплаты - нет обязательств и ответственности, смекаете? Если же иначе, то это уже не договорные отношения, а рабский труд, причём со стороны раба - добровольный. Не уважают себя люди на этой части суши...
В качестве собеседующего приходилось давать тестовое задание. Это была абстрактная задача где-то на час, которая никак не использовалась компанией, но показывала умение алгоритмически мыслить и структурировать код. Если кандидат говорил, что не будет её решать, потому что тестовые задания - это зло, то ему честно предлагалась опция сделать его на лайвкодинге. В итоге вместо комфортных условий, в которых скорее всего и придётся потом работать, люди оказывались в более нервной среде и показывали себя гораздо хуже. В этом смысле тестовое задание было способом помочь кандидату расслабиться и исключить влияние стресса на результат собеседования.
А по итогу предоставлялась обратная связь? Разбор решения? Или, если кандидат сделал не так как вы хотели, то "вы нам не подходите"? Вопрос не в наличии тестового, а в том, чтобы оно было не в пустоту. Оплачивалось или предоставлялся разбор по которому кандидат мог бы сделать выводы, понять свои слабые стороны и поработать над собой.
Что Вы имеете в виду под "оплачивалось или ...."? Я сразу уточнил, что задача не менее абстрактная, чем те, что обычно встречаются на собеседованиях. Не припомню, чтобы решение задач на собеседовании оплачивалось. Оплата и обратная связь - ортогональные вещи и вроде не должны заменять друг друга.
А обратная связь, конечно, предоставлялась. Все проблемы решения обсуждались на лайвкодинге, где соискатель сам мог объяснить, почему он так сделал. Если решение было радикально ошибочным, то соискатель получал письменный отзыв с разбором ошибки. Среди прочих сам не раз писал такие отзывы.
Почему не должны заменять друг друга? Оба инструменты мотивации, оба мотивируют делать на совесть, чтобы его взяли на работу. Оплата позволит не "потерять время впустую", а обратная связь позволит понять свои пробелы и подготовиться в будущем.
Вы написали, что давали обратную связь и это безусловно вызывает уважение, но таких компаний буквально единицы. Соискатель выполнивший 5-10-20 тестовых и не получив ни по одному обратную связь, на 21-е предложение тестового откажется и уйдёт в "тильт".
Озвучу непопулярное мнение )
Собеседование - возможность показать себя друг другу "как есть". Всех устраивает - работаем, иначе ищем дальше... А задачи разбирать, лучше становиться - это на курсы. Там этим занимаются.
Поддерживаю. Все вопросы и условия после собеседования. Буквально пример с этой недели, откликнулся на вакансию в компанию, занимающуюся продуктовыми парсерами, опыта мало, в основном у меня веб, но стек в целом подходил. На собеседовании пообщался с HR и оба пришли к выводу, что для их должности недостаточно навыков. Тестовое я мог и сделать, без проблем, подтянул бы, но для полноценной работы по-прежнему бы не хватало навыков.
В теории, конечно, это вин-вин подход и для соискателя, и для работодателя. На практике же на одного вас, который не готовится, не выучивает самые частые вопросы, пишет тестовое сам без подсказок и так далее, будет 10 тех, кто будет любой ценой закрывать тестовое и вопросы на собеседовании на отлично. И кого же выберет работодатель в результате? Вопрос риторический.
Прежде всего тезисы статьи оставляют впечатление несогласованности, она же - эклектичность.
Тестовое задание либо рассчитано на то, что пойдёт в эксплуатацию (без оплаты сделавшему, да) - п.3 из раздела "Что такое тестовое задание" - то чем пугает/заманивает автор в заголовке,- либо оно туда не предназначено - пп.1,2 из того же раздела.
Параграфы тут взаимоисключчающие, и эти случаи надо рассматривать по отдельности - но тогда не получится такой завлекательный заголовок, конечно.
А по отдельности эти случаи рассматривать надо, потому что причины непригодности тестовых заданий в них разные.
Насчет п.3 уже написал @BugM - отправлять в эксплуатацию код, написанный человеком, который, мягко говоря, вряд ли будет склонен к дальнейшему сотрудничеству - это серьёзный и мало чем оправдываемый риск (AKA "слабоумие и отвага"): код-таки недостаточно один раз написать, его же потом обязательно читать и править придется.
А если вдруг написанный код оказался настолько хорош, что подошел для эксплуатации и последующих изменений другими сотружниками сразу, даже без итерций с уточнением требований, то я не понимаю работодателя, который отказывается от самородка, способного писать такой код: у него что, таких хороших программистов уже избыток?
Ну, а насчет пп.1,2 сложно гарантировать, что этот фильтр не сломается, как сломался фильтр по опыту работы - потому что соискатели с немалой вероятность будут делать это задание не сами, и отсечь этот способ до собеседования невозможно. Собственно, судя по комментариям, автор это понимает - жаль только, что он в статье на это внимание не акцентировал.
Ну, а сваленные в одну кучу эти, разные, случаи оставляют о статье неприятное впечатление, как об очередной рекламе очередного, непонятно кому нужного, ТГ-канала.Ничего не имею против рекламы ТГ-канала, если она делается путем полноценной демонстрации полезных умений его автора, но тут - не тот случай.
Сожаления же автора, что результаты решения тестовых заданий не удостаиваются полноценного разбора, а потому плохо подходят для обучения, мне кажутся необоснованными: тестовые задания просто предназначены не для этого.
PS Ну и лишних слов и картинок в статье много IMHO, но про это уже написали.
Всегда делаю тестовые задания, вообще не проблема. Но только такие, которые не выглядят как реальная задача и которые нет смысла использовать в продакшене. Ну и отзывы о компании сначала стараюсь проверять.
погоди погоди погоди погоди погоди
ты сделал 10 (ДЕСЯТЬ!) (один десяточек...) тестовых заданий таких, что даже отвечать не было смысла - и решил что прошарил ситуацию и пора делать выводы с лозунгами о (не)-порочности кого-то там?
Типичная ситуация:
1. разместили джуниорскую вакансию
2. получили 200-1000 резюме от людей 90% которых:
- а) программистами не являются и на вакансию не подходят;
- б) о своём опыте программирования, изученных технологиях и т.д. банально наврали в резюме - чтобы пройти формальный фильтр.
Т.е. получили 200 - 1000 резюме, людей, которых формально надо бы отсобеседовать.
Это минимум человеко-месяц миддл-разработчика (если верить тому, что написано в резюме).
Кампании пошли простым путём - поставили фильтр, который чуть сложнее подделать "тестовое задание".
Если у вас есть лучшие предложения для кампаний : как не тратить 300_000 - 1_000_000 рублей на просмотр кандидатов - поделитесь пожалуйста, также учтите что решение должно быть устойчиво к обоим видам "ошибок":
- уверенно врущий вкатун без знаний;
- боле-менее знающий но честный самоучка;
Если вы ищете джуна, даете по результатам тестового обратную связь и не воруете втихую код тестового в продакшн, так это ж и нормальная практика, разве нет?
Я заинтересован в подтверждении своей квалификации и компетенций, в связи с чем готов к выполнению тестового задания
при подписании компанией обязательства, ключевые пункты которого:
развёрнутая обратная связь предоставляется не позднее, чем через семь календарных дней, начиная со следующего за днём, в который результат был предоставлен компании на проверку
при нарушении предыдущего пункта соискатель считается принятым на работу в соответствии с ТК РФ с <дата> на должность <должность> с ежемесячной заработной платой, установленной в размере <вписать цифрами и прописью> рублей; при этом любые возможные дополнительные отборочные испытания («этапы собеседования») пропускаются
Дарю. Никто, правда, такое не подпишет, но, раз уж тут пост о мечтах…
К примеру, мечта «а давайте все вместе забойкотируем плохих, и вообще тестовые, хотя бы не оплачиваемые». Ну да, а то мы вот уже больше десяти лет этот анал-карнавал не наблюдаем:
Многие: уууу, программисты теперь ещё и инфру должны деплоить и мониторинг за эксплуатацию настраивать? Не будем!
Хитрожопый и отчаянный: о, свободная касса! (Пишет в резюме AWS/GCP/MSA и/или кубердокер с датадогами)
(Прошло 12 месяцев) Да, ска! Теперь все вакухи до одной с этой шляпой! Что ещё, может, и бэкендеры за фронтов половину работы будут делать?
Хитрожопый: О, свободная касса! (Пишет в резюме сваггер)
Для рынка: Таланты находят частных заказчиков и пропадают с рынка труда.
Почему это минус? Минус для кого? Таланты должны постоянно искать работу?
Спорный вопрос. Я как человек не способный общатся на собеседовании, говорю сразу, что бы давали тестовое задание. Так устраивался дважды.
Очень интересная статья. Прикольно если был выбор лайвкодинг или тестовое. Лайвкодинг быстрее, но надо справится со стрессом и заранее знать тему задач: иной раз нужно будет вспомнить тему со структур данных, в условиях стресса это сложно.
Я из тех кого около трех лет пинали hr. Никаких собеседований вообще. Причина, нет коммерческого опыта. И плевать они хотели на фрилансы, пет проекты и. др.
Но на работу таки устроился и именно с тестового задания. Вообще впринципе на собеседования попадал только с тестовых заданий. А взяли работать со второго собеса.
В общем. Если вам нужна работа, то вы и тестовое сделаете.
Я сам пару раз в жизни делал тестовые задания, и потом ещё больше думал о них. И мне в голову пришла компромиссная концепция тестового задания.
Что если тестовое будет не просто в формате "с нас задание - с тебя полная реализация", а если компания своими силами сделает небольшое веб-приложение (или десктоп/мобайл), которое будет реализовывать энный минимальный функционал, близкий к их продакшену. И задание будет в духе "вот демо-модель нашего приложения, в нём допущены некоторые ошибки, и ещё нужно сделать, например, модуль регистрации и авторизации пользователей, а также оптимизировать выдачу результатов поиска товаров". Задания для разных кандидатов можно рандомизировать, чтобы минимизировать распространение готовых решений на ваше тестовое.
Тут сходу проверка и умения разобраться в чужом коде, и умения встраивать свои решения в существующее приложение, и умения соблюдать стиль написания кода, и даже элементарно способность развернуть у себя локально чужое приложение.
Такой вариант тестового мне кажется максимально честным. Как бы да, мы просим соискателей заморочиться и продемонстрировать свои навыки, но и мы свою очередь тоже заморочились, потратили время и сделали демо-версию того, с чем реально придётся работать в случае найма.
Много раз писал об этом на хабре, но раз уж есть целая статья о том, какие тестовые задания плохие, напишу еще раз. Тестовые задания работают. Я даю их уже много лет и нахожу с помощью них прекрасных специалистов, при этом не выгорая на разгребании сотен холодных откликов. Я не использую код в рамках тестовых в продакшене. Любому, кто сделал тестовое я оставляю обратную связь. С любым кто сделал тестовое хорошо, я разговариваю. Разговор я всегда начинаю с тестового задания, которое в дальнейшем выступает лейтмотивом разговора и предметом life-кодинга. За все эти годы ни разу поиск не занимал больше полутора месяцев. Я отдаю себе отчет, что тестовое может срезать специалистов высокого уровня, но с введением этой практики значительно выросло как минимальное, так и среднее время нахождения нанятых спеалистов в компаниях, т.е. люди, выполнившие тестовые, оказывались в среднем лояльнее. Это крайне важно, поскольку частые увольнения, особенно в небольших командах, сильно бьют по их устойчивости. Также на практике было проверено, что люди хорошо выполнившие тестовое и прошедшие собеседование, гораздо проактивнее в целом и быстрее разбираются в чём-то новом, т.е. дорасти до нужного уровня, если он ниже, чем хотелось бы, для них проще, а с учетом того, что они реже увольняются, время на это есть.
Компаниям, которые внедряют эту практику, могу посоветовать потратить время и сделать тестовое задание небанальным и интересным. От себя добавлю, что когда сам устраивался, то получал от интересных тестовых большое удовольствие, а неинтересные просто не делал, в этом смысле выбор всегда есть.
про тестовые задания. Временами и я их проходил - по моей специфике это обычно Экель.
Тут все очень весело:
- часть заданий просто простые-простые, на уровне "формулу написать". Попытки поразвлекаться, написать пользовательскую формулу вместо коробочной и продемонстрировать ее работу банально не понимались теми, кто проверял задание. Я это понял со второго раза, когда попросил комментарий, почему не прошел тестовое и - о чудо - получил. Больше не выпендривался, но все равно проблема угадать, что хотят увидеть, остается - сделал сводными таблицами - оказалось надо быол формулами, сдлал формулами, надо было сводку писать и т.д.
- часть заданий требуют странного и сложного - знать надстройки для задач, которые таких надстроек не требуют, в этом случае тоже пролетал. Практические ситуации, в которых реально требуется надстройка Солвера на складе - я до сих пор не могу ее даже мысленно представить, а вот начальнику склада зачем-то требуется в одной компании, которая торгует памперсами.
- а часть заданий составлялось халтурно и левой пяткой. На собеседовании, когда перешли к заданию, оказалось, что контрольные цифры для задания были взяты с потолка, и тот, кто задание составлял, его никогда лично не выполнял, и понятия не имеет, что должно получиться, и последнее, что меня добило - И ДОЛЖНО ЛИ. Я и так поковырялся с заданием 4 часа, потому что исходные данные выгружены были в очень неопрятном виде, и оказывается, что могло с контрольными цифрами ни хрена не сойтись не укладываясь в погрешность из-за некорректных допущений, как у меня получилось, а вообще и в принципе, и я все 2 дня, которые на тетовое были даны, его бы перепроверял и искал ошибку, которой нет...
В прод брали выполненное мной тестовое задание брали только один раз - когда нарисовал схему оборота упаковки по канбану и накидал ТЗ на доработку в 1С, это мне сказали практически открытым текстом, после чего исчезли с горизонта, чему я несказанно счастлив, так как нашел в ту же неделю вакансию получше.
Один раз сам сделал небольшой подарок не взявшему меня работодателю (мы не договорились об оплате на испытательный срок) - во время собеседования он упомянул, у него была проблема одна с честным знаком, они не знали, как ее обрабатывать, я уже обратно еду в метро, вспомнил решение, написал, как решать - после этого мне позвонил тот, кого на это место взяли, уточнить кое-что. Поговорил, посочувствовал (человек ради карьеры таки согласился на испытательном работать за 50 тыр при окладе после испытательного 200, из которых только 50 белыми) .
тот, кто задание составлял, его никогда лично не выполнял, и понятия не имеет, что должно получиться, и последнее, что меня добило - И ДОЛЖНО ЛИ.
Вот это вообще странно. Получается, выполнили его только вы (иначе бы ошибку давно исправили), то есть потока соискателей на вакансии нет? А раз так, зачем вообще фильтр в виде тестового, можно же просто сразу на собеседование звать?
не, не странно, просто раздолбайство того, кто составлял задание - выгружена рандомная таблица, написано с потолка что с ней сделать, и даны с потолка показатели - отобрать 50 номенклатур с такими-то параметрами по таким-то месяцам. У меня получилось 50, но могло 50 с такими параметрами по этим месяцам просто не найтись, буквально отработай рандом, по которогму выбирались строки, по-другому :)
Получается, выполнили его только вы
да, так и есть, до меня никто не сделал.
Мой личный опыт с тестовыми заданиями (ТЗ) отличается от того, который описан в статье и комментариях. Однако сделанный вывод тот же.
Почти всегда получал обратную связь о том, что ТЗ выполнено отлично. Но в ходе дальнейших переговоров выяснялось, что условия работы не устраивают либо компанию, либо меня.
Вывод: ТЗ - это зло, от которого надо держаться подальше.
Аргумент против - chatgpt успешно справляется с абстрактными тестовыми заданиями.
Аргумент за - мне приходится собеседовать людей довольно регулярно, каждое собеседование - выпадение из рабочего процесса и стресс. Мне бы не хотелось собеседовать людей чаще раза в неделю (а лучше реже). Нужна воронка. Я уже даже перепроверяю тестовые задания после коллег у собеседуемых, чтобы отбросить откровенную халтуру.
Такая ностальжи)) Когда-то и меня вела дорога собесов в ИТ, но потом мне предложили работу инженером.
Прощай, немытая ИТшка!
Давал на одном из мест работы тестовые задания кандидатам на джун+ позицию. Оно было несложное, на владение базовыми навыками буквально. Нашим ребятам часа на 2-3, но мы предупреждали, что лучше заложить один рабочий день - отправляли задание по запросу кандидата, просили дать ответ ровно через сутки. Была пара раз, когда кандидат просил доп.время из-за незнания технологии, там шли навстречу, в зависимости от того, что не получалось - смотрели часть функционала либо, действительно, добавляли пару дней на разобраться. По факту, это был типовой кусочек рабочего проекта, в котором все предельно упрощено, ну и предметная область была заменена на не связанную с основной. Если решено было более-менее нормально, может даже и не всё, кандидат приглашался на техническое собеседование
На технической секции было два парных раздела: live-ревью решения тестового задания кандидата и live-ревью "испорченного" кода по другой тематике
Многие даже непринятые кандидаты отдельно благодарили за эти секции, что они много вынесли из собеседования и будут лучше готовы к собеседованиям у других работодателей.
Чтобы статья не была просто рекламой канала начитающего python программиста, Вы могли бы хотя бы попытаться посмотреть на картину с другой стороны баррикад. Опыта "с той стороны" у Вас, видимо, нет, но рассуждения могли бы быть интересны. Сейчас же это просто 100500-я статья на тему, почему только дурак согласится на тестовое задание.
Хорошая статья. Лично у меня и моих знакомых наоборот без тестового не было тех собесов вообще. Писать лень согласен open source, свой стартап или фриланс заказ делать выгоднее и интереснее согласен.
У меня тестовое было один раз за всю карьеру, когда я менял направление(нет, я как был Embedded Engineer, так им и остался, но переходил из b2c IoT устройств аля вайфай выключатели, розетки и прочее в Automotive сферу). Оно состояло из двух частей, одна часть муторная и неинтересная, вторая на технологию, интересная лично мне, да и времени много не заняло решение. Первую часть-честно написал, что не хочу тратить много времент на банальщину, словами описал как делать, но не реализовывал в коде, вторую сделал, заодно изучил неизвестную ранее технологию. Получил оффер без торга, на всю ожидаемую мной сумму.
Единственное, сначала было устное собеседование, тестовое было после, хотя на собеседовании мне задали вопрос про тестовое и я сказал, что не ссчитаю возможным тратить на него черезчур много времени (более 2 часов). Оффер был в теч 3 дней после тестового
Мне кажется, хороший подход для тестового задания - когда код дают заранее для ознакомления, а задачу на собеседовании.
Например так. Делаем простой сервис, админка для какой-то сущности или API с одним действием.
Пишем весь код в одном методе контроллера. Меняем где-нибудь "+" на "-" или аргументы одного типа местами, пишем тест на правильный вариант. Даем код кандидату до собеседования. На собеседовании даем задачу отрефакторить код - разбить по классам и методам, использовать механизмы фреймворка для валидации, работы с базой и т.д. Если кандидат сам догадался запустить тест и нашел ошибку, это дополнительный плюс. Можно попросить добавить новый эндпойнт по аналогии с существующим, с миграцией для БД и всем остальным.
Казалось бы вроде интеллектуальная сфера деятельности, а отношения напоминают стаю обезьян - обмануть, стащить и тд. Видимо в целом человеческие взаимоотношения такие.
Тестовые задания: Ваш код ушел в прод. Ваша зарплата — нет