Вопросы из Яндекса

Olga Kozlova
Nov 17, 2017 · 5 min read
  1. Рекрутер связывается с тобой и назначает интервью по скайпу. Проводит его программист, длится около часа-полутора, выясняют, стоит ли звать тебя на очное интервью.
  2. Очное интервью включает как минимум 4 секции, каждая по часу. Если проходить все 4 в один день (как я), предусмотрен обед, оплачивает его компания, что очень приятно.

Первая секция

На первой секции со мной общался паренек, занимающийся в поиском по картинкам.

  1. Написать функцию, проверяющую правильно расставленные скобки;
check("{()}[]") // true
check("{[}]") // false
[
["нос", "сон"],
["днесь", "снедь"]
]

Вторая секция

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

  1. Верстка под мобильные устройства, понятие mobile first, как можно работать с картинками на мобильных устройствах, что делать с retina дисплеями.
  2. Специфика верстки под мобильные устройства, особенности events, особенности :hover().
  3. Тэг picture и атрибут srcSet.
  4. Специфичность селекторов с простенькой задачкой:
<div class="one two">div {background-color: 'red';}
.one.two {background-color: 'green';}
.one {background-color: 'blue';}
div.one{background-color: 'yellow';}
<body>
<div class="myDiv"></div>
</body>
.myClass {
background-color: red;
width: 100px;
height: 100px;
}
<div>
Очень-очень длинный текст
<button>Надпись</button>
</div>

Третья секция

Третья секция называлась “Алгоритмы”. Я ожидала алгоритмы-алгоритмы (сортировку слиянием, отличия O-нотации от тета-нотации и описание работы машины Тьюринга), но нет. То ли фронтендеров так не мучают, то ли вообще людей так не мучают, но задачи были не на алгоритмы как таковые, а на обычную логику.

var moneyTypes = [5000, 1000, 500, 100, 50];function getMoney(amount) {
// нужно вернуть набор денег в следующем формате
// {
// 5000: 1,
// 1000: 2,
// ....
// 50: 5
// }
// Или бросить исключение, если вернуть деньги невозможно
}
var limits = {
5000: 4,
1000: 5,
500: 2,
100: 5,
50: 100
};
function getMoney(amount, limits) {
// нужно вернуть набор денег и обновленные лимиты
// {
// res: {
// 5000: 1,
// 1000: 2,
// ....
// 50: 5
// } || "warn" (если вернуть деньги невозможно)
// limits: // объект лимитов той же структуры с обновленными данными
// }
}
var limits = {
5000: 4,
1000: 5,
500: 2,
100: 5,
50: 100,
30: 23
};

Четвертая секция

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

five(add(one())) // 6
seven(subtract(two())) // 5
function Person(name, age) {
this.name = name;
this.age = age;
}
var person = myNew(person, "Vasia", 34);
person instanceOf Person // true;
{
value: 4,
next: [
{
value: 3,
next: [...]
},
{
value: 3,
next: [...]
},
...
]
}

Что дальше

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

    Olga Kozlova

    Written by

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
    Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
    Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade