LINUX.ORG.RU
ФорумTalks

Фрустрация от собеседования в «Яндекс»

 , ,


0

6

Здравствуйте. Некоторое время назад я собеседовался в «Яндекс». Хочу поделиться здесь моими впечатлениями от собеседования и историей неуспеха.

Я расскажу про первое собеседование, поскольку на остальных (их после этого было 3 или 4) никакого треша не было, и отказали мне на основе именно первого собеседования.

Итак, был дан код класса на C++: это контейнер, как std::vector, который должен уметь возвращать случайный объект согласно весам, которые передаются как float.

Код был написан с использованием функции rand() и содержал одну очевидную ошибку, которую я нашёл, и ещё одну неочевидную, связанную с возможной проблемой при округлении с арифметикой над float, которую я тоже нашёл. Я сказал, что rand() непотокобезопасна; её реализация, как правило, низкого качества; RAND_MAX зависит от платформы; получить честный рандом при заранее неизвестном RAND_MAX сложно; и т.д. Сказал, что в C++11 есть std::random. Интервьювер сказал, что std::random слишком громоздко для собеседования, давайте уж использовать rand().

Что-то там написали, пришло время писать тесты. Написали какой-то тест, который 1000 раз генерирует случайные объекты №1 и №2 с весами 1 и 2 и проверяет, что объектов №2 получилось больше. Далее по ролям: я (Я), интервьювер (И).

И: — Да, только тест недетерминированный, как его сделать детерминированным?

Я: — Можно зафиксировать seed. Если бы мы использовали std::random, там у engine есть метод seed(), а тут…

И: — Есть специальная функция srand()!

Я: — Да, только она зависит от платформы, как и rand().

И: — Ну хорошо, а можно передавать указатель на функцию, которая будет генерировать случайные числа…

<примечание>

То есть речь идёт о том, чтобы превратить метод

    T getRandomElement() const { … }
в
    T getRandomElement(int (*custom_rand)()) const { … }
И передавать туда либо настоящий rand, либо свою детерминированнуюю реализацию. Даже без void *userdata, насколько я понял — то есть то ли состояние должно храниться в глобальной переменной, либо оно должно возвращать константу. Да, это C++, не в Си. Указатель на функцию, не лямбду.

</примечание>

Я: — Ну можно, но это какой-то мегакостыль, да и зачем уродовать интерфейс для этого…

И: — Ну хорошо, у нас осталось не так много времени, давайте не будем это писать.

---

И вот потом мне говорят, что это была фатальная ошибка, что я предложил зафиксировать seed, а не лепить указатель на функцию. Сначала снизили грейд до «мидл-минус», потом вообще сказали, что не возьмём никуда.

Я, конечно, знал, что крупные компании очень привиредливые, но это вообще что такое? Какой извращенец пройдёт это интервью?

Эту тему я создаю в том числе для того, чтобы давать на неё ссылку HR из яндекса, если таковые ко мне ещё когда-либо постучатся.



Последнее исправление: shdown (всего исправлений: 4)
Ответ на: комментарий от i-rinat

Это больше к мелким компаниям относится. В крупных у собеседующих подобной свободы меньше, т.к. процесс собеседования стандартизирован, за них заранее решено, какие темы они должны провентилировать.

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 1)

Не оправдавыая собесы Яндекса, всё же, собеседования очень часто - это попытка угадать тараканы собеседника. С обеих сторон.

Совпали тараканы - хорошо, не совпали, значит, не повезло.

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

Chiffchaff
()
Ответ на: комментарий от Chiffchaff

А ещё главное понтов не кидать. Просто быть собой. Вот и в случае с ТСом надо было ИМХО не гнуть своё, унижая собеседника, а просто спросить «А почему вы хотите именно так?».

Zhbert ★★★★★
()
Ответ на: комментарий от Chiffchaff

Что за жесть в спешке написал вместо слова «оправдывая»… Но уже не исправить, нет мне оправдания.

Chiffchaff
()
Ответ на: комментарий от dmaj

У меня сложилась следующая модель найма в Яндекс и другие отечественные «БигТехи» - они рассчитаны на прием студентов. Они дешевы, покладисты и готовы внимать корпоративному бреду. Из массы студентов выживет десяток-другой, которые станут начальниками. Все остальные возраста и карьерные пути - для затычки дыр, перспектив карьерного роста у них нет.

Студенты гибки и энергичны. Им интересно всё попробовать, всё освоить. Это безусловное преимущество, оно может служить оправданием для некоторой слабины в навыках программирования.

А у товарищей постарше интересы направлены уже не только на работу (семья, угорание по каким-то своим хобби, и просто жизнь человеческую жить хотят), а энергия уже не бьет бешеным ключом. Поэтому отношение при найме более разборчивое: если чел за 10 лет стажа не научился классно программировать, то и не научится уже, никаких скидок.

Что касается роста, то в корне с тобой не согласен. Если чел на рабочем месте качественно справляется с задачами, помогает с решением стоящих перед командой сложных проблем, реально тянет лямку... это заметно, и его сферу ответственности стараются расширить. Сложнее задачи, участие в принятии принципиальных решений, падаваны для делегирования менее сложных участков работы, etc. Ну и соответствующие титулы - старший, ведущий, whatever. Тут абсолютно пофиг уже на возраст, важны только результаты деятельности.

Насчет «стать начальником», то работа менеджера-управленца с программированием особо не связана уже. Это не рост, это смена профессии.

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 2)
Ответ на: комментарий от Enthusiast

Сомнительно. В больших конторах с потоком собесов есть пул задач для интервью разной сложности(условно джун-мидл-сеньор). Интервьюер даёт тебе из этого пула какие-то чуть меняя формулировку и таким образом проверяют твой уровень. Может конечно и что-нибудь связанное с работой дать, но этого стараются избегать чтобы не светить в паблик лишнюю инфу

cobold ★★★★★
()
Ответ на: комментарий от hateyoufeel

С их стороны это был намёк на dependency injection

Интересно, задачи в багтрекере они тоже намёками пишут?

Да не, сразу код готовый тебе в багтрекере дают. Надо только оформить его через pull request, и всё. ☺

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 2)

Всё просто, нелояльность начальству и неготовность делать говно которое сказали делать говном

Satou ★★★★★
()
Ответ на: комментарий от Manhunt

С их стороны это был намёк на dependency injection

Интересно, задачи в багтрекере они тоже намёками пишут?

Да не, сразу код готовый тебе в багтрекере дают. Надо только оформить его через pull request, и всё. ☺

В итоге там будет что-то типа: «Менеджеру сегодня грустно, и нужно, чтобы вы поправили вот этот сервис, чтобы менеджеру не было грустно».

hateyoufeel ★★★★★
()
Ответ на: комментарий от Manhunt

Студенты гибки и энергичны.

Главные плюсы студентов - дешевизна и покладистость. Обилие простых задач рождает спрос на подобных специалистов.

Что касается роста, то в корне с тобой не согласен.

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

Насчет «стать начальником», то работа менеджера-управленца с программированием особо не связана уже.

Начальник - это ступень иерархии, которая выше по зарплате. Мы все работаем за зарплату и я хочу иметь возможность выбирать кем мне быть. Топы Яндекса все там со студенчества, судя по их же роликам.

Вообще, за 10 лет мало кто становится специалистом. Как и за всю жизнь. Быть настоящим специалистом в своей области - это достижение для немногих. В этом можно убедиться в любом месте - от собственной работы до магазина и больницы.

dmaj
()
Ответ на: комментарий от Zhbert

просто спросить «А почему вы хотите именно так?».

Ему намекали что надо сделать DI. Так и этак – результат был бы одинаковый, т.к. ТС не знает про это ничего.

no-such-file ★★★★★
()
Ответ на: комментарий от no-such-file

Ну даже если он не знает, такой вопрос был бы ИМХО более предпочтителен, чем просто продолжение навязывать своё решение.

Zhbert ★★★★★
()
Ответ на: комментарий от Satou

не для того меня маменька растила и учителя учили, чтобы я по ихой указке говно делал (юмор)

irton ★★★★★
()
Ответ на: комментарий от Zhbert

такой вопрос был бы ИМХО более предпочтителен, чем просто продолжение навязывать своё решение

Ну так-то да, лучше конечно не спорить с товарищем преподавателем собеседующим.

no-such-file ★★★★★
()

можно передавать указатель на функцию, которая будет генерировать случайные числа…

Ты уверен, что речь была о передаче в метод, а не в конструктор?

ya-betmen ★★★★★
()

...привиредливые...

Им просто похрену. А этот ваш И сам толком ничего не знает, его и назначили как чела малознающего.

sparkie ★★★★★
()
Ответ на: комментарий от no-such-file

результат был бы одинаковый

Любой вопрос про конкурирующие фреймворки/технологии прежде всего на понимание что и в какой ситуации использовать. Конечная реализация ваще побоку. Если кандидат сразу начинает код наяривать, то даже идеально правильный ответ в вакууме ничего не стоит.

Lordwind ★★★★★
()

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

Потому надо понимать, что с точки зрения бизнеса - это просто повышение порога вхождения (хотя и неэффективного вида «бросили в воду - плыви»), а с точки зрения соискателя - процедура, требующая специальной подготовки для его прохождения.

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

pekmop1024 ★★★★★
()
Ответ на: комментарий от dmaj

Быть настоящим специалистом в своей области - это достижение для немногих.

Да, но это не гарантирует от выбрыков какого-нибудь малохольного идиота.

sparkie ★★★★★
()
Ответ на: комментарий от Zhbert

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

seiken ★★★★★
()
Ответ на: комментарий от Manhunt

Студенты не умеют говорить «нет». Им можно надавать задач столько, что они будут бесплатно ночевать на работе, будут жаловаться друзьям и семье на невыносимые условия, но начальнику только отвечать «готов работать».

Leupold_cat ★★★★★
()
Ответ на: комментарий от seiken

Может, он специально предлагает ошибочный вариант, чтобы собеседуемый аргументированно его отверг.

Может. Но когда это происходит по кругу пару раз об одном и том же стоит задуматься :)

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

Студенты плюс/минус всегда такие. Потому что разрыв между «что выучил в ВУЗе» и «что нужно на работе» обычно большой.

seiken ★★★★★
()

И вот потом мне говорят, что это была фатальная ошибка, что я предложил зафиксировать seed, а не лепить указатель на функцию. Сначала снизили грейд до «мидл-минус», потом вообще сказали, что не возьмём никуда.

Из-за такой мелочи никто не отказывает. Никто не может ответить на все вопросы на 100% идеально.

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

Вот реальные примеры из жизни что я видел сам изнутри компаний. Они хорошо демонстрируют, что далеко не все и всегда зависит от способностей кандидата.
1. Собеседовали девушку в нашу команду на роль бизнес-аналитика. Главный разраб не хотел её брать (он сам это за пивом рассказывал) по той лишь причине, что она была некрасивой (реально, ей сильно не повезло с лицом). Но манагер старше настоял и её взяли.
2. Во время найма резался бюджет и вакансия становилась неактуальной.

Понятно, что в обеих случаях кандидату никто не говорил правду, говорили стандартную чушь, про random(), как и тебе.

urxvt ★★★★★
()
Ответ на: комментарий от urxvt

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

Надо было сразу сказать HR, чтобы анкеты кандидаток без фото в бикини не рассматривали в принципе :D

PS Манагер ваш молодец, а главный разраб - самодур.

Manhunt ★★★★★
()

Всё это чухню - основа собеседования оценивают сработаешься ты с командой или нет, как ты разговариваешь, как аргументируешь, какой кодестайл, а только потом сколько ты знаешь. Вот и всё. Яндекс со своими ЗП имеет возможность выбирать и выбирает по совокупности. И то что говорят «вы нам не подошли по х» ни о чём не говорит, причина может быть совсем в другом - на пример на вакансию нашли чела, который лучше тебя или вообще вакансию закрыли, сейчас всё поджимается немного. В общем, не грей голову.

vtVitus ★★★★★
()
Ответ на: комментарий от Leupold_cat

Им можно надавать задач столько, что они будут бесплатно ночевать на работе

No pain no gain. Не получится быстрого роста без выхода из зоны комфорта. Херачить надо, дым коромыслом.

С другой стороны, любой вменяемый управленец следит за тем, чтобы сотрудники не выгорали.

Manhunt ★★★★★
()
Ответ на: комментарий от Zhbert

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

seiken ★★★★★
()
Ответ на: комментарий от Manhunt

PS главный разраб - самодур.

А я его прекрасно понимаю. Почему я должен на работе созерцать уродство, если я люблю красоту?

seiken ★★★★★
()
Ответ на: комментарий от seiken

Вообще нерелевантно твоей работе. Переквалифицируйся в фотографа и найди работу в модельном агентстве.

pekmop1024 ★★★★★
()
Ответ на: комментарий от seiken

Почему я должен на работе созерцать уродство, если я люблю красоту?

Так пиши красивый код. Его и созерцай 😊

frunobulax ★★★★
()
Ответ на: комментарий от seiken

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

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

Тебе ж не сосаться с ней, а бумажки перекладывать.

Manhunt ★★★★★
()
Последнее исправление: Manhunt (всего исправлений: 1)
Ответ на: комментарий от Manhunt

Тебе ж не сосаться с ней, а бумажки перекладывать.

Даже не перекладывать. Кроме того, что у природы свои компенсаторные механизмы и там поди были сиськи размером с дыню :)

pekmop1024 ★★★★★
()
Ответ на: комментарий от Leupold_cat

Только пишут его в основном те, кто там не работал. Из разряда — о Боже! там есть дежурства. Дежурства есть почти у всех контор. Только эти дежурства далеко не у всех сотрудников, это сильно зависит от проекта.

Мой опыт, наверное, устарел, но все же. Работал я там больше 10 лет назад, в доИмператорскую эпоху (if you know what I mean). Это, однозначно, была лучшая работа, что я видел за почти двадцатилетнюю карьеру. И я сужу не только по своему проекту, но и по всему отделу.
Процесс найма тоже был вменяемый, хоть долгим и многоэтапным. Я даже не все задачи «программирование на бумажке» решил. [1]

[1] Помню, что не решил задачу из разряда «найдите последовательность чисел сумма которых максимальна».

urxvt ★★★★★
()
Ответ на: комментарий от Lordwind

При чём тут фреймворки и технологии? ТСа попросили не хардкодить функцию, чтобы её можно было замокать. Это как-бы базовая база. Но ТС ничего не слышал ни про DI, ни про фабрики, ни даже про pimpl – у него в голове не родилось никаких мыслей вообще (что не мешает ему однако рассуждать про идиоматичный код). Поэтому он буквально понял предложение про указатель на функцию. Причём ТС не знает даже как сделать такую функцию со стейтом и думает, что нужно передавать userData для стейта. Это просто лицо-рука. Даннинг с Крюгером плачут обнявшись.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 3)
Ответ на: комментарий от dmaj

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

Топы Яндекса все там со студенчества, судя по их же роликам.

У меня сложилось впечатление, что у Яндекса политика устроена так, что основная масса сотрудников получает среднее по рынку [1] и лишь меньшинство получает достойно. Меньшинство, на котором всё держится и которых не хотелось бы потерять, а остальные не важно, завтра нового найдем на замену. Вот кто из большинства в меньшинство пророс, тот и работает там много лет.

[1] На самом деле меньше рынка. Так как мы средний уровень квалификации специалистов в Яндексе и на рынке очень сильно отличаются.

urxvt ★★★★★
()

Не понял про «Я», почему нет, дочь устроилась на 300тысч в Альфу. На собеседовании сказала, что 200 мало. Должность: Ведущий аналитик. До этого работала в дочерней компании за 200тыр. Ну а я-то, понятно военный пенс 60тыр.

dmitry237 ★★★★★
()
Ответ на: комментарий от vtVitus

А что тогда уволился? Реально интересно :-)

Я в украинском офисе работал, случился 14-й год и...

urxvt ★★★★★
()

А в чем состояла задача на собеседовании? По этому тексту не очень понятно

Reset ★★★★★
()
Ответ на: комментарий от pekmop1024

Нет, это не мой подход к жизни. В жизни настоящих личностей эстетика играет очень важную роль, всегда и везде. И не важно, дома ли ты в ванной лежишь, пьёшь ли эспрессо в дорогом ресторане или докладываешь на совещании…

seiken ★★★★★
()
Ответ на: комментарий от seiken

В жизни настоящих личностей эстетика играет очень важную роль, всегда и везд

Тут цитата из Гашека про эстетов просится.

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 1)
Ответ на: комментарий от m0rph

Чтобы во время дежурства не спамили проблемами проблем быть не должно, то есть надо деплоить код без ошибок и в нужных местах соломку подстреливать

Reset ★★★★★
()
Ответ на: комментарий от Manhunt

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

так это их проблемы, а не мои. Почему я должен «входить в положение»? Милостыню не подаю.

seiken ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)