Хочу работать в яндекс но не умею. Задачи на собеседованиях

На блогах в ЖЖ идет активное обсуждение задач яндекса, предлагаемых на собеседовании при приеме на работу аналитиком. Что, хотите попробовать свои силы? Ну сами напросились…

  • Интернетом не пользоваться.
  • Время на нахождения решение – около 15 минут.

Первая задача

Дано: Кащей Бессмертный, который украл принцессу у Ивана Царевича. И собственно, Иван Царевич, который невесту хочет вернуть.
Кащея убить можно. Есть 10 колодцев с ядом, сила яда от колодцу к колодцу постепенно нарастает. Более сильный яд является противоядием для более слабого (если выпить сначала из 2 колодца, а потом из 3 – отравления не будет). Если смешать два яда, то смесь приобретет свойства сильнейшего.

Сама битва: соперники приходят на ристалище с одним кубком в руках. Отдают кубок противнику, который выпивает содержимое. Но подлец Кащей построил вокруг последнего 10 колодца крепость, которая неприступна для Ивана. Таким образом, у Кащея есть доступ к сильнейшему яду, а у Ивана нет.

Цель: победить Кащея и выжить самому.

Вторая задача

Дано: ящик, в котором гипотетически установлены три лампочки. Почему гипотетически? Потому что ящик закрыт, и, пока вы его не откроете, наличие лампочек не доказуемо. Открыть ящик можно только один раз… Но об этом чуть позже.

Итак, закрытый ящик, в котором по условию есть три лампочки.

На противоположной от крышки стороне ящика расположены три выключателя, ведущие к лампочкам. Цель – узнать, к какой лампочке ведет каждый из выключателей (какую лампочку какой выключатель включает и выключает).

Ящик открыть можно ТОЛЬКО ОДИН РАЗ. После открытия ящик закрывать нельзя. Все эксперименты после открытия ящика приостанавливаются. Фактически, открытие ящика – это знак, что решение найдено и его нужно озвучить.

Логическая задачка на закуску

Трое мудрецов решили выяснить кто из них умнее и пришли к еще одному умному перцу чтобы тот их рассудил. Тот достал из сундука 5 колпаков – 3 белых и 2 черных , потом завязал троим мудрецам глаза и надел на них по колпаку. Следом – снял повязки и предложил им угадать какой колпак на них одет (при этом каждый из мудрецов не видит своего колпака, но видит что одето на оппонентов).

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

Вопрос – как он догадался?

Народная молва какие только легенды не слагает о собеседованиях в Яндексе: дескать, тестовые задачи там только для великих умов, вопросы часто задают не по теме, споры не приветствуются, а за упоминание Google и вовсе внесут в «чёрный список». Мы собрали самые распространенные стереотипы о собеседованиях на работу в минском Яндексе, которые часто встречаются на профессиональных форумах и в сообществах, включая сайт. В этой статье мы расскажем о причинах их возникновения, о том, что происходит на самом деле и как правильно реагировать на необычные вопросы или задания наших рекрутеров и тимлидов.

Почему возникают стереотипы и как правильно на них реагировать

Стереотип № 1:

«Меня завалили из-за того, что я не смог сходу красиво ответить на технический вопрос. Но ведь это не значит, что я не смогу написать работающий код. Программистов нужно оценивать “в бою”!».

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

Что на самом деле: в Яндексе руководствуются принципом «слова к делу не пришьёшь». Даром красноречия обладать вовсе не обязательно, тем более что «прослушивать» соискателя будут не гуманитарии. А вот код на собеседовании пишут все кандидаты на вакансии разработчиков, и этот этап является одним из важнейших для получения работы в компании.

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

Стереотип № 2:

«Я пришел на собеседование на вакансию разработчика C++, а меня вдруг стали спрашивать о принципах работы Python. Как я могу ответить, если я с ним ни разу не сталкивался? И разве это вообще как-то характеризует меня как программиста на C++?».

Почему он возникает: мы действительно иногда задаём на собеседовании вопросы «со стороны». Например, соискателя на C++ вполне можем спросить про основы Python, а мобильного разработчика — про фреймворки на десктопах.

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

По этой реакции в Яндексе судят, как человек склонен действовать в ситуации, когда сталкивается с неизвестной ему задачей или явлением. Кроме того, реакция многое говорит об умении кандидата действовать в коллективе, участвовать в «мозговом штурме» и о том, будет ли команде Яндекса комфортно работать с новым коллегой. Ведь программирование — это командная игра, в которой результат зависит от каждого участника и от общей атмосферы в коллективе.

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

Стереотип № 3:

«На собеседовании меня попросили решить очень сложную тестовую задачу, которую не встретишь даже на чемпионате по программированию. Похоже, в Яндексе работают одни “яйцеголовые”».

Почему он возникает: в зависимости от вакансии мы даем претендентам различные задачи — от типовых до нестандартных. В большинстве случаев задания, которые соискателям кажутся сложными, имеют простые решения, с которыми те могли попросту не сталкиваться. Отсюда и ложное восприятие уровня сложности у некоторых кандидатов.

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

Как правильно реагировать: проявить сообразительность, постараться выйти из зоны комфорта, сконцентрироваться на результате в целом, а не только «шлифовать» код до бесконечности. На собеседовании оценивают не только стройность кода, но и незаурядный подход кандидата к решению задания.

Стереотип № 4:

«Мой знакомый с огромным опытом разработки и отличным знанием нескольких сложных инструментариев не прошел собеседование в Яндексе. Мне-то уж тем более ничего не светит:(».

Почему он возникает: человеку по природе свойственно сравнивать себя с тем, кто является для него авторитетом в какой-то области. И когда кумир терпит неудачу, тень сомнения ложится на всех, кто им восхищается.

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

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

Как правильно реагировать: рисковать и ничего не бояться. А если есть возможность — расспросить авторитетного коллегу о собеседовании, выяснить, чем интересовались и что спрашивали, чтобы лучше подготовиться. И после этого смело идти в бой.

Стереотип № 5:

«Раз в Яндексе так серьезно собеседуют, то страшно представить, каково там работать. Видимо, там одни гении и медалисты-олимпиадники. Даже если платить будут больше, не хотелось бы “выгорать” на работе».

Почему он возникает: по тому, насколько сложным было собеседование, формируется первое впечатление об условиях работы. Может показаться, что чем тяжелее на встрече с рекрутером или будущим руководителем, тем сложнее задачи, которые предстоит решать. А ещё многие претенденты считают, что на каждый каверзный вопрос есть единственно верный ответ. Это не всегда так: многие вопросы — это попытка втянуть кандидата в конструктивную дискуссию, из которой будет понятен образ мышления человека, его ценности и критерии оценки проблем.

Что происходит на самом деле: когда человек, пройдя все этапы собеседований, выходит на работу, у него иногда возникает синдром неоправданных ожиданий. Выясняется, что в Яндексе работают программисты, которые, как и все, могут написать не слишком гениальный код, иногда долго ищут решение простой проблемы, с которой бы справился и третьекурсник. В Яндексе работают обычные люди, которые иногда ошибаются. Главное, что сотрудники компании умеют и любят находить решение проблемы сообща, для этого созданы все условия, и именно исходя из этого навыка мы рассматриваем кандидатов. В компании даже есть внутреннее выражение «Дай-ка я об тебя подумаю» — так говорят, когда просят коллегу выслушать мысли о решении проблемы, найти слабые места и по-дружески оппонировать. А может, и подсказать новую идею.

Как правильно реагировать: не переживать и не рассчитывать, что прямо с порога тебя завалят такой работой, с которой справятся только маститые кодеры. В первые месяцы от нового человека в Яндексе никто не ждет рекордных трудозатрат и решений по изменению мира. Достаточно соответствовать тому образу, который ты создал во время собеседования. Причем если для кандидата зажёгся зелёный свет, то это значит, что Яндекс считает его большой находкой, а с находками просто так не расстаются. Человеку создадут все условия, чтобы ему было комфортно и интересно, рассчитывая получить от него соответствующий фидбек в работе.

Стереотип № 6:

«Во время собеседования в Яндексе я несколько раз упомянул Google. Видимо, теперь меня внесут в “чёрный список” и больше никогда не будут рассматривать мою кандидатуру».

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

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

Бывают и совсем смешные случаи, когда соискатели извиняются за то, что «гуглят». Яндекс с большим уважением относится к Google, и по многим направлениям мы партнеры, а не только конкуренты. Чтобы попасть к нам на работу, вовсе не обязательно быть hardcore-пользователем сервисов Яндекса (хотя хоть что-то знать о них всё же полезно). Мы очень приветствуем коллег с разносторонними знаниями о нашем рынке и конкурирующих сервисах.

Как правильно реагировать: вести себя свободно и не бояться упоминать любые имена и названия, если это к месту и в тему.

Стереотип № 7:

«Правдоискатели Яндексу не нужны. Во время собеседования лучше послушно кивать, а не спорить, даже если не согласен с тем, что слышишь».

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

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

Как правильно реагировать: cпорить и настаивать на своей версии можно и нужно, при этом позиция должна подкрепляться аргументами, а не одними лишь эмоциями. Это бесценный навык и хороший сигнал для работодателя о том, как человек будет отстаивать свои идеи в коллективе. Вполне возможно, что у старинной задачи существует альтернативное решение, которое никто никогда не замечал, а ты заметил. Если это так, то твои шансы попасть в Яндекс возрастут в несколько раз.

Стереотип № 8:

«Так получилось, что я за три года сменил семь работодателей. Вряд ли Яндекс рискнет взять к себе такого специалиста».

Почему он возникает: многие ИТ-компании действительно предпочитают не иметь дело с людьми, которым не сидится на одном месте больше полугода. За 5-6 месяцев человек, как правило, не успевает даже адаптироваться в компании, не говоря уже о получении какого-то опыта. Скорее всего, у него больше всего времени уходит на поиск работы и поездки на собеседования.

Что происходит на самом деле: Яндекс пытается выяснить мотивацию претендента и причины, по которым он часто меняет место работы. Понятно, что если человеку нигде ничего не нравится, то есть риск, что его не устроит и работа в Яндексе, какие бы условия для него ни были созданы. Мы должны быть уверены, что новый человек сможет влиться в команду и усилить её. Если кандидат успешно проходит собеседование, то на его привычку часто менять работодателей могут закрыть глаза.

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

Как правильно реагировать: показать себя профессионалом и откровенно, честно рассказать о причинах трудовых «перебежек». Тогда рекрутеры Яндекса смогут понять, что движет соискателем и насколько его ожидания соответствуют тем, что может предложить ему компания. В любом случае частая смена работодателей для нас не повод отказываться от хорошего сотрудника.

Работали мы как-то с компанией «Яндекс» в соседних бизнес-центрах. Заходили к ним в гости и удивлялись, что в то время, как сотрудники нашей редакции отливают свинцовые литеры для печатных прессов, стоя по пояс в радиоактивных отходах в непроветриваемых помещениях, сотрудники Яндекса сидят в креслах за 800 евро и наслаждаются теплом от обогреваемых стен-перегородок. Хочешь работать так же? Легко! По вопросам трудоустройства в нашу редакцию пиши Степану на [email protected] , а по поводу Яндекса… впрочем, дадим им слово.

Больше половины сотрудников Яндекса вовсе не менеджеры по руководству общими вопросами и не операторы кофейных машин, а самые что ни на есть разработчики. Яндексу как воздух нужны front-end и back-end разработчики на С++, Python, Perl, Java, JavaScript. В основном в компании используются UNIX-плафтормы, но есть и разработка под Windows. Во многих сервисах формируются команды мобильной разработки, которые пишут под iOS, Android и Windows Phone.

Самая острая потребность в разработчиках C++. При этом все чаще появляются вакансии, связанные с машинным обучением, big data, распознаванием изображений и голоса, распределенными вычислениями. Далеко не всегда опыт работы с этими технологиями требуется обязательно. Есть команды разработчиков, которые занимаются исследовательскими задачами.

Вакансии открыты в Поиске, Браузере, Картах, Диске, Маркете. И в каждой из команд - своя специфика. Так, в Поиске и Картах больше востребовано знание алгоритмов, причем в Поиске уклон в сторону теории вероятностей и математической статистики, а в Картах - на графы. В Браузере больше сложных инженерных задач, поэтому требуются в первую очередь технические знания и в меньшей степени - алгоритмы.

Разработчики Яндекса подготовили читателям ][ задачи, которые могут встретиться на собеседовании в компании.

Кого в Яндексе ждут больше всего?

  • Разработчик поиска С++
  • Разработчик Яндекс.Диска (С++ для Windows)
  • Разработчик качества поиска Яндекс.Картинок (С++)
  • Разработчик C ++ систем распознавания речи (мобильные платформы)
  • Разработчик С++ (компьютерное зрение)
  • Разработчик распределенной системы хранения и обработки данных С++

Как проходит собеседование

Ольга Пономарёва, старший рекрутер группы подбора разработчиков, Яндекс

Если вы успешно справилсьи с тестовыми задачами на company.yandex.ru, мы предложим созвониться по скайпу. По сути, это будет первое знакомство, где мы немного поговорим про выбранный язык программирования и предложим пару математических или алгоритмических задачек. Для первого разговора иногда достаточно 10–15 минут, и уж точно не больше часа.

Мы друг другу понравились? Отлично, тогда приглашаем в гости: у Яндекса есть десять офисов разработки в разных городах, вместе выберем подходящий. Обычно на собеседование приходят несколько разработчиков из разных команд: кому-то вы можете понравиться больше, и тогда он будет за вас биться. Правда, не сразу. Перед этим нужно написать код для решения предложенных задач. Чем быстрее напишешь - тем быстрее можно пойти домой:). Еще на встрече бывают задачки на сообразительность. В первую очередь нам интересен ход ваших мыслей, не обязательно решить всё. Если кандидат претендует на позицию senior-разработчика, поговорим об архитектуре систем.

Иногда для того, чтобы понять, «наш» человек или нет, требуется несколько встреч. Однако если вам нужно срочно определиться с местом работы - скажите нам об этом, что-нибудь придумаем.

Спрашивает Андрей Плахов, руководитель службы функциональности поиска в Яндексе:

Задача 1

Дана функция на языке Python. Завершится ли когда-нибудь вызов dio()? Почему?

Def dio(): x = 1L while 1: for y in xrange(1, x): for z in xrange(1, y): if x*x == y*y + 12752041*z*z: return "Found it" x = x + 1

Задача 2

Что делает эта программа на языке С++?

#include struct EmptyList { }; template struct IntList { static const int Head = N; typedef T Tail; }; #define LIST1(N1) IntList #define LIST2(N1,N2) IntList #define LIST3(N1,N2,N3) IntList #define LIST4(N1,N2,N3,N4) IntList #define LIST5(N1,N2,N3,N4,N5) IntList #define NUM2(x,y) 10*(x) + (y) #define NUM3(x,y,z) 100*(x) + 10*(y) + (z) #define NUM4(w,x,y,z) 1000*(w) + 100*(x) + 10*(y) + (z) #define NUM5(v,w,x,y,z) 10000*(v) + 1000*(w) + 100*(x) + 10*(y) + (z) #define DIFFER3(x,y,z) ((x) != (y) && (x) != (z) && (y) != (z)) #define DIFFER4(x,y,z,w) ((x) != (y) && (x) != (z) && (x) != (w) && DIFFER3(y,z,w)) #define DIFFER5(x,y,z,w,v) ((x) != (y) && (x) != (z) && (x) != (w) && (x) != (v) && DIFFER4(y,z,w,v)) template struct LSolve { static const int Answer0 = LSolve >::Answer; static const int Answer1 = LSolve >::Answer; static const int Answer2 = LSolve >::Answer; static const int Answer3 = LSolve >::Answer; static const int Answer4 = LSolve >::Answer; static const int Answer5 = LSolve >::Answer; static const int Answer6 = LSolve >::Answer; static const int Answer7 = LSolve >::Answer; static const int Answer8 = LSolve >::Answer; static const int Answer9 = LSolve >::Answer; static const int Answer = Answer0 + Answer1 + Answer2 + Answer3 + Answer4 + Answer5 + Answer6 + Answer7 + Answer8 + Answer9; }; template struct LSolve { static const int Answer = NUM4(U,D,A,R) + NUM4(U,D,A,R) == NUM5(D,R,A,K,A) && (U != 0) && (D != 0) && DIFFER5(U,D,A,R,K) ? NUM5(D,U,R,A,K) : 0; }; typedef LSolve Solve; int main(int argc, const char* argv) { printf("ДУРАК=%d\n", Solve::Answer); }

Спрашивает Кирилл Сюзев, руководитель группы разработки Яндекс.Картинок

Задача 3

Есть исходный код программы:

#include #include #include int main() { std::cout << 1; fork(); exit(0); }

Что напечатается на экране и почему? Как изменится вывод, если заменить cout на cerr?

Задача 4

В программировании есть понятие LRU-кеша.

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

LRU-кеш таким образом выбирает: если места под элементы больше нет, он выбрасывает элемент, к которому дольше всего не обращались, и вместо него кладет новый.

Задача - написать такой кеш в виде С++ класса/классов.

Мы ждем ваших задачек!

IT-компании, шлите нам свои задачки! Интересные и оригинальные задачки мы совершенно безвозмездно поставим перед нашими читателями. То есть для того, чтобы опубликовать свои программерские и просто логические задания в этой рубрике, не нужно никакой бюрократии! Не нужны переписки с инстанциями и отделами, акты приема-передачи работ, подписи, счета и визы. Достаточно написать на [email protected] и установить близкий контакт третьей степени с редактором рубрики. Вы шлете задачки, мы их публикуем. Взаимовыгодно! Да, и про бонусы читателям-решателям не забывайте!

А еще мы ждем ваших решений!

Задачки сами собой не решатся! Шли нам свои ответы, а айтишные компании будут дарить тебе бесплатные айфоны.

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

Этап 1
Началось все 15 марта 2016 года. Мне позвонил представитель компании и представился специалистом подбора персонала. Общение проходило очень вежливо и по окончанию предложили пройти первый отборочный этап, который заключался в том, что необходимо перейти по ссылке ведущей на описание вакансии, развернуто ответить на имеющиеся там вопросы и прикрепить свое резюме.

Этап 2
Задачу я выполнил и через несколько дней из Яндекса перезвонили, предложили пройти собеседование по Skype. В назначенное время меня пригласили присоединиться к конференции в которой участвывали: HR и 2 руководителя разных групп по продукту Яндекс Маркет, каждый искал себе человека в команду. После короткого описания ролей на которую они ищут человека мне предложили ответить на ряд вопросов и просто рассказать о том чем я сейчас занимась. После договорились о том, что каждый из руководителей групп пришлет мне задания на почту через HRа.

Этап 3 - Первое задание от группы инфраструктуры
Первое задание я получил на следующий день от руководителя группы инфраструктуры Яндекс Маркета, оно было в связано с кластеризацией, классификацией, индексацией поступающей информации и его выполнение заняло у меня около 7 дней, притом не по 1 часу, а часов по 6. Требовалось провести большой анализ возможностей Маркета, понять, что такое кластеризация и как ее можно применить на поступающую информацию. Далее составить описание проекта, подготовить план с этапами и сроками, составить перечень метрик для оценки, посчитать и описать возможные риски и подготовить KPI по выполнению проекта. Результат задания - документ на 30 листов который надо уместить в презентации на 25-30 слайдов. По моим ощущениям я к диплому меньше готовился чем к этому заданию.

Этап 4 - Защита выполненной работы для группы инфраструктуры
После проверки результатов высланных ранее, меня пригласили в офис компании, где пришлось защищать проект перед главным разработчиком бекенда в Яндекс Маркете. Я хорошо подготовится свою защиту и оцениваю ее на 4.5 балла из 5, по сути я повторил описание их процессов реализованых на реальном проекте, но несколько не до конца развернул вопрос проверки результатов кластеризации. По результатам, я прошел защиту и меня пригласили на следующий этап собеседования - "на сообразительность".

Этап 5 - Собеседование на сообразительность для группы инфраструктуры
В офисе меня ждали 3 человека (HR, "Будущая коллега" и еще один ведущий разраблотчик), было всего 2 задания: Про прямоугольный торт который надо разрезать одним движением, и про 2 города (лжецов и правдолюбов). Первую задачу я решил, а на второй меня одолела паника, я больше переживал о том, что я не могу решить задачу, нежели решал саму задачу. В результате, после этого собеседования "на сообразительность" я не прошел дальше, но был еще вариант попасть в группу поиска яндекса.

Этап 6 - Второе задание от группы поиска яндекса
Задание очень сильно отличалось от первого, и тут было больше продуктового анализа + анализа решения у конкурентов, хотя позиция связана с Менеджментом проектов. Задание заключалось в том, что в Я.Маркет надо внедрить функционал соц. сетей, описанить зачем, как лучше,куда лучше, аналоги решений, план проекта, этапы, метрики, риски, KPI. На выполнение этого задания у меня ушло уже меньше времени, так как в теории я уже значительно лучше разбирался, а с практикой я работал каждый день. Считаю это задание я сделал гораздо лучше чем первое и после отправки его на проверку, примерно через неделю я получил отказ. Дело оказалось в том, что тут требуется менеджер проектов с уклоном на менеджера продукта, некоторые детали я просто не описал, так как никогда и не подумал бы, что менеджер проекта должен за такое отвечать.

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

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

Этап 7 - Собеседование в группу интерфейсов Я. Маркета
Очередное посещение офиса Яндекса, очередное собеседование и доказывание, что не дурак, закончилось очень позитивно, были приятные собеседники, хорошее и внимательное общение, и я подумал, что вот оно место куда я точно пройду. После собеседования мне сообщили, что собеседование прошло успешно и давай ка дружок выполни очередное домашнее задание. Тут мне стало даже не смешно, но ничего не оставалось, кроме как его начать делать.

Этап 8 - Домашнее задание для группы интерфейсов Я. Маркета
Задание прислали спустя почти 10 дней после собеседования, шел 4 день который я вкладывал в выполнение задания к вечеру я получил звонок от знакомого мне HR из Яндекса. Звонок имел содержание примерно такое, что спасибо, что я начал делать задание, и что к сожалению вакансию закрыли внутренними ресурсами яндекса, и что если будут вакансии, то мне обязательно их предложит. Финиш.

Финиш
Собственно от первого до последнего контакта с Яндексом весь процесс занял более 2 месяцев.
Для тех кто рассчитывает быстро устроится к ним, то огорчу вас, они очень медлительные.
Хотел бы большое спасибо сказать ребятам Жене и Але - HR которые боролись за меня, и были настоящими профессионалами.

В конце я пригладываю результаты моей работы по первым двум заданиям от "инфраструктуры" и "поиска" которые я выполнил.


Прочитав на RSDN объявление этой компании решил попробовать сходить к ним на собеседование. Заполнил анкету с вопросами на сайте, сделал это тщательно и обдуманно, подключил свое резюме и отправил. Ответили примерно через неделю, сказали что понравились ответы на вопросы и резюме, пригласили на собеседование. Все что написано дальше является только моим субъективным мнением и ничем больше, поэтому не надо меня опровергать и поправлять, я не претендую на объективность

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

Сел в корпоративную маршрутку, сижу, народ входит, не здоровается, т.е. атмосфера явно не стартап где все знают друг друга. Приехал чуть раньше, прогулялся по окрестностям – обычная промзона, рядом Кристалл, это район Серп и Молот, на мой взгляд довольно социально неблагополучный, куча промышленных предприятий, серые унылые дома. Здание Яндекс выглядит неплохо, хотя, конечно, не дотягивает по уровню до бизнес центра хорошего уровня. Стойка рисепшна Yandex очень помпезная, но неудобная – присеть то и некуда особо.

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

Интервьюер сразу перешел на «ты», несмотря на то что я называл его на «Вы». Я конечно понимаю, что «неформальная команда где все равны», только я пока не член команды, это скорее отношения – экзаменатор/стедент, причем обычно экзаменаторы на «ты» не переходят. Я не против «ты», но считаю что это не плохо было бы предложить и не уверен, что это хорошая идея на собеседовании.

Интервьюер задал вопрос почему я хочу уходить с текущей работы, получив стандартный ответ про «оппортунитисы» сообщил, что будет задавать вопросы. Никакого «введения» про компанию, группы, проекты я не услышал, вопросы задавать мне никто не позволил. Начался жесткий экзамен по C++. Вспомнились студенческие годы и злобный преподаватель по высшей математике у которого высшим счастьем было получить тройку. Никаких компьютеров и интернетов, как они иногда говорят, только бумажка и ручка. Сначала надо написать класс, унаследовать от него другой класс – это разминка. Потом начинается написание копирующих конструкторов, копирующих операторов присваивания, для классов с кучей указателей на другие объекты (deep copy). Дальше больше – напишите по памяти алгоритм скажем radix-sort, никаких кнутов и интернетов – должны знать. Вошел второй человек, не представился, сел рядом, начал задавать вопросы. Потом начинаются «лампочки» - головоломки из олимпиад по информатике – задачки про паровозики, белые и черные шары, лампочки и т.д. Задают головоломку и молчат – сидят за своими ноутбуками, делают свои дела. Атмосфера крайне неприятная, психологическое давление и требование решить в течении нескольких минут. Интервьюеры не подозревают, что не все люди способны решать задачки быстро, многие наиболее сложные задачи хорошо решаются именно "тугодумами", неспешно и в спкойной обстановке. Диалога не было, был экзамен в институте.

Апофеозом собеседования стала фраза, извините, Вы нам не подходите, Вы можете быть свободны (далее были прокомментированы мои познания в C++ и умственные возможности вообще). Экзамен закончен, двойка получена. Очень недоброжелательное отношение – человеку не только не дают сохранить лицо, напротив – сразу сообщают что он «дурак» и просят покинуть помещение. Обратно на их маршрутке я не поехал, поймал машину. Итак – Yandex сделал так, что я сделаю все возможное чтобы я более никогда там не появлялся. Собеседователей не волновало, что я подумаю о компании, их интересовало только подхожу я или нет. Корпоративная культура в Yandex еще не сформировалась, Yandex уже не стартап, но еще не корпорация, соответственно человеческие отношения уже отходят на второй план а на их место еще ничего не пришло. Они очень пытаются создать имидж «бренда», но чувства меры и корректности корпораций нет. Наиболее близкая ассоциация - это новый русский который разбогател и решил стать аристократом, при отсутствии аристократического воспитания и «совковых» замашках.

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

От себя: для более детальной информации постетите источник, там много "разговора" автора и комментаторов:)
например, ответ возможно одного из его экзаменаторов:

Значит судя по описанию собеседования одним из действующих лиц мог быть я. Того кого собеседовал тоже вроде опознал, но с вероятностью 90%. Мог бы назвать для чистоты эксперимента как тебя звали (можно только имя и дату собеседования).

Что я могу сказать:
1) Действительно собеседование в Яндексе начинается с технических вопросов которые идут достаточно долго. Да, наверное, это не правильно и собеседование нужно начинать с какого-нибудь полайтеса и вопросов о том чем занимался. Тем не менее если вероятность того, что человек просто не подойдет 90% то хочется все это подробно расказывать уже после того, как становится понятно, что человек банально умеет программировать. Возможно, вы правы что отсутствие интереса к собственной персоне выглядит враждебно, тем не менее он обычно появляется после нескольких хороших ответов.

Тем не менее мы сейчас подумаем и возможно решим с какого-нибудь 5-минутного вступления. Вдруг кому это важно.

2) Самопроизвольно перескакивать на "ты" это моя привычка. Так получилось, что во всех компаниях, где я работал принято обращаться на "ты" ко всем включая ген. директора. То что, нужно явно предлагать людям перейти на "ты" учту - буду так делать.

3) Вообще под "radix sort" подразумевается примерно следующее. Есть алгоритм radix_sort, который выполняет сортировку чисел за линейное время. Нужно написать этот алгоритм самому, и с его помощью обогнать стандартный std::sort. На твоей стороне, что std::sort он O(n*ln(n)). Против тебя, что константа у него хуже и на ноуте всего 1Gb памяти (т.е. бесконечно увелчивать размер массива в надежде, что перегонит не получится).

Если кандидат алгоритма не знает, то он ему рассказывается. При решении задач можно пользоваться интернетом и wikipedia.org, где алгоритм описан. Задачка нужна потому, что есть люди, у которых хорошие теоретические знания, но руками они все делают очень-очень плохо. Задачку, кстати, придется поменять. Кстати в таком контексте ты мягко говоря наврал, что у тебя не было возможности пользоваться инетом, и требовалось знать алгоритм.

Я уже сказал, что меня есть 10% шанс, что я не правильно тебя опознал. Но если правильно, то насколько я понял, ты был тем человеком, который не смог сделать deep-copy на бумажке, получил диагноз о том, что наверное можно попробовать на junior-а, и потом за несколько часов не только обогнать std::sort, но и вообще сделать так, чтобы код действительно просортировал массив чисел, а не падал на старте. Среднее время которое хороший программист тратит на эту задачу примерно 1 час.

5) Про маршрутку: не знаю будет ли для тебя сюрпризом, что половину людей которые ездят в нашей маршрутке не являются сотрудниками Яндекса. Причина очень простая - здесь много офисов и все окружные офисы ездят на нашей маршрутке. Надо же им как-то от метро добираться. Можно конечно туда пускать только по пропускам и купонам, которые высылать по email-у, но это сплошной геморрой. Проще больше маршруток пустить и пусть все ездят.

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

Для кандидатов, которые хотят начать собеседование c HR-ом а не программистом, давайте договоримся, что вы напишите об этом явно ответом на приглашение. Для того, чтобы человек которому вы такое заявили не офигел, сошлитесь на меня или дайте ссылку на это сообщение ("вас сразу собеседовать, или вы с HR сначала поговорите?").

5) Мы действительно в России конкурируем с гуглем. Может быть действительно так же, как жигули конкурируют с фордом. Единственно, что жигули стоит меньше, а мы с гуглем оба оказываем услуги по нулевой цене.

6) Почему собеседования именно такие, а не другие? Потому, что у них цель не "нравится всем", а понять подходим мы с человеком друг другу или нет. Что мы не подходим человеку я легко готов услышать, бывает и такое. Что мы хотим от человека, я уже несколько раз говорил:
а) Знания языка программирования, который он считает основным. В том числе возможно некоторых неочевидных его особенностей, например, что в C++ есть исключения, и sizeof(long) может возвращать разное значение на разных платформах. Может быть, я что-то излишнее конечно спрашиваю, но вот такая у нас секта. Кстати кроме самого начала собеседования на тесте можно пользоваться документацией и поиском в инете (спрашиваете интервьюера - вам отвечают).
б) Что человек знает базовые алгоритмы. А именно: правильно может выбрать контейнер под задачу, и в общих чертах знает как он устроен или может это выдумать.
в) Что получив любую задачу, которая не является стандартной (не важно про поезда, лампочки, или проектирование поиска) он не впадет в полный ступор, а хотя бы с подсказками ее решит.
г) Что он способен написать код размером в 50 строк так чтобы он не упал, и потом провести над ним простейшую оптимизацию.
Мы что слишком много хотим?

7) Женя Завалишина которая директор Я.Д. действительно бывшая жена Димы Завалишина, который 5 лет не работает в Яндексе, у него сейчас свой стартап dz.ru. К тому моменту, как она вернулась в Яндекс, Дима здесь уже не работал, и позвали ее т.к. она очень умная и внятная, а вовсе не "по блату", как можно предположить.

8) Задачка про "способе поиска неподвижной точки сжимающего отображения" это просто Ден постебался в своем блоге, так назвав часть алгоритма, известного с 60 годов. Тот самый, который Larry Page первый догадался применять к Web, и переназвал своим именем (PageRank). Мы обсуждаем эту тему при наборе в группу робота. При этом опять же, все необходимые определения были даны. Никакое ТФКП у нас конечно же не спрашивают.

Комментарий от Дена, откуда все это взялось: У нас в группе робота есть разные задачи. Методом последовательного поиска компетенций выяснилось, что человек программировать не умеет, и было сделано предположение, что человек, который только что закончил ФизТех (выч. мат.), с близкими к отличным оценками, нам пригодится как математик(и он может показать свою компетентность, обсуждая задачи связанные с "методом сжимающих отображений", который близко связаны с рассчетом тИЦ). К сожалению данное предположение не подтвердилось.

9) Когда в Яндексе было 78 человек я тоже их всех знал по именам. Потом я стал знать по именам только девелоперов, и сломался где то на цифре 150 человек. Извините, плохая память.

10) в 21 в офисе действительно полно народу, которые пришли на работу в 12 или 13 часов. Мне вот так удобней, например.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев