Comments 37
У них там как будто какого-то чайника попросили «составь план проведения собеседования», а он такой
# PERFECT ALGORITHM
def sobesedovanie(chelovek, number_sobesedovaniya):
if number_sobesedovanya < 7:
reshai_zadachy(chelovek, number_sobesedovaniya)
sobesedovanie(chelovek, number_sobesedovaniya+1)
sobesedovanie("Иван", 1)
Посмотрел ваш блог, интересно получилось. Некоторые вещи и подходы (особенно с моментом очных встреч и с тестированием на небольших практических задачах) для себя подчеркнул.
В ML по сути хак состоит в использовании Kaggle in-class в качестве отправной точки для решения toy задачи, но настоящий интерес конечно в понимании человеком, того что он сделал и чтении его логики.
"Красивая" платформа и минимальный бойлерплейт больше мотивируют людей делать что-то.
Как это перенести на другие области — скорее вопрос к людям. С одной стороны не хочется ограничивать, а с другой — как оценивать хотя бы факт наличия решения?
Я устал от культа "тестовых заданий на основе реальных производственных задач". Кого не спросишь, в ответ лишь невнятное "у нас в компании сейчас используется для найма, поэтому подробности не могу разглашать".
Ну в нашем случае мы взяли игрушечную версию похожей на реальную задачу и сделали ее максимально публичной, так что я не до конца понимаю, к чему тут негатив.
Ну, так расскажите, что за toy-задача, какая была реальная бизнесовая задача и как вы её адаптировали под собеседование?
Toy-задача вот https://www.kaggle.com/c/silero-audio-classifier (вроде ссылка была в статье же)
Реальный проект вот https://github.com/snakers4/silero-vad
Я далековат от ML, но вангую, что для специалиста это не очень сложно. Не хватает двух ингредиентов: во-первых, вам не кажется, что каггл — тот же литкод, но для датасатанистов? Во-вторых, алгоритм преобразования специфичных бизнес задач отдельно взятой компании в хорошие задачи для собеседования пока что по прежнему не раскрыт.
В каггл соревнование можно вложить даже 3 месяца фулл тайм работы (это отдельная специальная олимпиада) и ничего не получить взамен если организаторы идиоты.
Можно поспорить что типовые говно решения стакеров-"индусов" не отличаются от заучивания задачек, но по коду это прекрасно видно. И когда задаешь человеку вопрос "почему" — он на него не может ответить.
В этом случае — задача ультра-простая и кто-то даже решил ее в 20 или 30 строк кода не считая импортов. Основная мысль тут — увидеть движение и размышление кандидата на своем уровне к решению задачи.
Второе — это скорее искусство.
Применительно конкретно к этому посту я не хотел фокусироваться именно на задаче, а хотел на человеческом подходе.
В задаче же — взяли реальную задачу, VAD, сузили реальный брутальный мир до красивого сбалансированного и выверенного датасета в вакууме и упростили задачу в 10 раз.
Простите, но собеседования работают в обе стороны и немаловажная часть собеседования — кандидату понять, как вы работаете и на каком стеке?
Если кандидат привык к edge-bleeding технологиям и пушить реквесты, которые под себя и пилит, а ему хлопают в ладоши и после устройства подсовывают legacy на каком-нибудь spark 1.6+python 2.6 — грош цена такому собеседованию.
Туда ж кеглю с литкодом — какая разница, сколько красно-чёрных деревьев поместится в небоскрёб и как точно твоя модель считает вероятность осадков в Бразилии, если на проде ни тем, ни другим не придётся заниматься?
Возьми датасет, отчисти его, нормализуй и построй витрину, которая сегодня очень нужна, а завтра про неё забудут и переходи к другой, ать-два.
Ps я к вам не собеседовался и наверняка не прав, но не люблю строить абстрактные модели идеальных коней в вакууме, а прикинуть реальные задачи, которые мне предстоит решать, если устроюсь и обсудить драфт таких задач на собеседовании — наоборот.
Пожалуй, именно потому, что второе — искусство, а не точная наука, большинство по прежнему применяет понятный литкодовский стиль собеседования. Сложно это, готовых рецептов нет.
судя по КДПВ — после 150 индивидуальных собеседований всего 4 найма. Сколько времени это заняло — год? Что вы будете делать, если будет больше вакансий?
и беседы
Разумно, но оно предполагает, что в команде уже профи и они себе ищут ровню или кого-то попроще.
А как искать человека на позицию, в которой ни у кого в компании нет компетенции?
Допустим, вот я махровый админ с небольшими заскоками в программирование. Про нейронные сети я знаю что они там друг друга нежно теребят и возбуждаются.
И вот нам надо открыть отдел ML/AI. И как их собеседовать-то?
В такой ситуации как мне кажется искать надо не просто человека, а партнера в бизнес. И при этом желательно его знать продолжительное время и пересекаться на каких-то проектах. Так сказать боевого товарища. Такой человек и не обманет и лишний раз розовые очки снимет.
Суть — очень много людей на хайпе ставит своей целью не решение реальных задач, а создание видимости решения таких целей, чтобы потом продаться еще дороже.
К сожалению, если человек вам не товарищ, правды он может в принципе не говорить. Простого ответа тут нет. Я вот точно также смотрю на команду фронтенд разработки — чет я понимаю, сам чет писал на php + ajaх, заниматься сам не хочу, обучать сам тоже не могу, а супер интересные спецы все стоят слишком дорого и у них уже свои отделы.
Тут в голову приходит ещё простая аналогия. Допустим на примере администва. Для решения какой-то задачи достаточно крона и баш скрипта на 3 строки. Для какой-то надо уже написать юнит файл для systemd (поправьте если не так называется). Для какой-то надо уже притащить докер и возможно что-то типа ansible (когда такое надо было… мне везло в проекте / сделке появлялся админ который забирал мои наработки и встраивал куда надо). Для какой-то уже нужен compose, nginx или трафик, прометей и ещё что-то.
Такой ответ я ожидаю получить от адекватного админа, так как сам вынужден быть админом в команде иногда.
Плохой ответ — срочно нужен кубернетис. Во многих сферах люди к сожалению дают именно такой плохой ответ, а я не могу оппонировать.
… чего уж таить греха, я чувствовал такие же "нотки", когда ходил в Яндекс на собеседование на роль… менеджера несколько лет назад. Еще мне предложили купить их акций на свои деньги вместо опционов… хм. В принципе довольно очевидно, какие "качества" они проверяют таким образом.
В несколько большей версии вашей статьи есть вот такое место
А еще некоторые кандидаты ожидают, что в стартапе нужно работать с 9 до 5 ровно
А какие качества вы проверяете таким образом? Не является ли это вариацией "работать в нашей компании — большая честь"? И, кстати, что там у вас с соблюдением ТК?
Яндекс так явно проверяет терпильство в стиле "да господин". Мы наоборот своим процессом привлекаем талантливых людей, кому не насрать и у кого есть свое мнение. Время будет судьей нам, но вероятно поэтому что МЯСО что FAANG имеют нелегальные соглашения о непереманивании сотрудников друг друга, но допустим в спиче по слухам там происходят миграции команд как перелетных птиц, косяками)
На практике это близко не означает, что мы все работаем по 14 часов в день за еду (на что вы явно пытаетесь намекнуть).
У нас вообще нет графика и все люди работают по ssh. И вообще зачастую получается, что в некоторые недели выходит даже сильно меньше времени. У нас нет менеджеров, ежедневных созвонов и прочего культа карго. Все строится на персональной ответственности и четких целях и задачах, которые каждый понимает.
Это взрослый подход, который культивирует отношение человека к своей работе как к своему детищу / храму, который человек строит. Тяжело бывает отделить экстерналии и непредсказуемость исследований от "недостаточно постарался", но на длине все видно. Самая близкая похожая историческая модель — это пиратский корабль или это https://www.ted.com/talks/ricardo_semler_how_to_run_a_company_with_almost_no_rules/up-next?language=en
У этого есть обратная сторона. Если человек отвечает за свой процесс ему должно быть не похуй, и если он сломал что-то в 16:59, он не имеет права сказать в 17:01 "ой я пошел отдыхать". Это зачастую ломает что-то а голове у многих людей и они начинают передёргивать, чтобы уйти от ответственности.
Основа в таком случае — это разумный подход. И самое сложное — тут найти правильных и настоящих людей с горящими глазами, а не формалистов, которые говорят одно а делают другое.
он не имеет права сказать в 17:01 "ой я пошел отдыхать"
Согласно ТК, имеет полное право, если его рабочий день завершён. И если вы берёте на работу людей, которые могут что-то сломать за минуту до завершения рабочего дня, то вся ваша статья ничего не стоит.
Что значит "с горящими глазами"? Гореть глаза могут у студента, но ничего хорошего это не обещает. У опытного специалиста ничего гореть не будет, т.к. он именно что опытный.
Правильных и настоящих людей с горящими глазами, а не формалистов, которые говорят одно а делают другое.
Ну собственно как раз и пошли комменты по формальному признаку.
Мне кажется весьма странным, когда ты топишь за разумный подход, люди начинают цепляться к форме, а не к сути, но это одна из фишек Хабра.
Я не спорю, что советский суд самый гуманный суд в мире и что у нас права человека и ТК и все такое, но вы когда-либо читали трудовой договор в Яндекс или Тиньк?
Про Тиньк могу сказать точно (есть в окружении люди кто его читал) — к ТК он имеет весьма опосредованное отношение, там например был закреплены бесплатные переработки и много подобного в духе "сотрудник" всегда виноват. Не вспомните 3 публичных фиаско 2018-2020 годов?
Еще как-то разочаровывает, что термин с "горящими глазами" сразу является синонимом неквалифицированного человека / студента / лоха. Опять же — отношение по форме, а не по сути. Жизнь за масками.
А каким образом работает тест на мизогинистов и душнил? Или реально бывают люди у которых от женского присутствия начинается приступ damsel in ML, not on my watch?
Ну банально — в "интересных" случаях просишь пообщаться девушку коллегу, но не говоришь явно кто она — HR / исследователь / погромист.
Девушка немного прикидывается валенком, задаёт вопросы. Дальше можно или получить адекватный диалог или словить лулзы.
Если распространенная в IT сфере мизогиния не имеет отношения к "работать работу", то я кот.
Мне кажется тут довольно четко прослеживается разница между мягким гуманизмом (без заскоков) и его корпоративной противоположностью.
Не назвал бы симуляцию ежедневной предстоящей работы "ловушкой".
Еще я обращал внимание, что зачастую даже у высококвалифицированных IT-специалистов отсутствует так называемая theory of mind — ну простыми словами понимание, что если я что-то знаю, не факт что ты знаешь.
Ну что-то в таком духе.
На практике получается, чтобы такой человек перформил в сфере, где супер важна коммуникация и координация — ему нужно выделить личного секретаря и писателя, что наверное где-то оправданно, но точно не в нашем случае.
На практике зачастую это еще неплохо коррелирует с мизогинией и душностью.
Не назвал бы симуляцию ежедневной предстоящей работы "ловушкой".
Тут не уловил. Вы пишете выше: "Девушка немного прикидывается валенком". Если это происходит ежедневно, то отчего же не распространяться мизогинии?
Видел еще комментарии под другой статьей в духе "не масштабируется".
Тут есть несколько ремарок:
Это все делалось в большей степени силами одного человека — меня. Конечно под конец, когда уже хотелось вскрыться, мне немного помогали коллеги;
Если правильно выбирать боевых товарищей — то нет проблемы масштабировать процесс просто доверяя им другие вакансии;
И самое главное — не всегда нужно все масштабировать в 1000 раз с начала. Premature optimization is the root of all evil. Не всем нужен hadoop и кубернетис. Любая позиция и расширение и эволюция команды это уникальное событие и попытка сделать все стандартным обычно приводит к стандартному bozo explosion;
Рискую быть капитаном, но естественно таким способом нельзя нанимать партнеров в бизнес. Но к партнеру совсем другие вопросы и спрос с него гораздо более жесткий и приземленный. Рискую привлечь хейтеров, но скажем так, не внутри корпораций надо реально работать (не синоним ебошить по 14 часов в сутки, work smart not hard) и просто стричь купоны не неся никакой ответственности пройдя заученные "тестики" не получится;
Видел еще комментарии под другой статьей в духе «не масштабируется».
если вы имеете в виду статью про бессмысленные и беспощадные собеседования в Яндекс, на которую ссылаетесь в начале, то да, там был ровно один комментарий про немасштабируемость, и это мой комментарий:
habr.com/ru/post/550088/#comment_22885492
Вы там мне не ответили, но дзен подбросил мне вашу статью в ленте, и вот я вас тут догнал :)
Я продолжаю настаивать, что это не найм, а, скажем так, развлечение. Если бы у меня кто-то подобные вещи делал, я бы решил, что у человека очень много свободного времени, и он его таким образом решил потратить в свое удовольствие. Никаких проблем, на здоровье, имеет право, но ни в каком виде это не может быть образцом для подражания.
не всегда нужно все масштабировать в 1000 раз с начала
Безусловно. Но всегда нужно иметь некий план. Я хочу нанять человека, я готов потратить на это вот столько времени. В процессе будут созданы вот такие артефакты, они будут переиспользованы в будущем.
Вот скажите честно: сейчас, зная, что было так
под конец, когда уже хотелось вскрыться
вы бы провели этот процесс точно так же? Или что-то поменяли?
ML собеседование не в Яндекс: делаем нормально