Как пройти собеседование в Яндекс
От: MTD https://github.com/mtrempoltsev
Дата: 04.05.12 13:49
Оценка: 26 (9) +8 :))) :)))
Моя очередь немного поныть

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

Начало. С ходу предложили отсортировать массив целых положительных чисел. Сказал, что не буду изобретать ничего, а возьму std::sort, если сортировать надо часто подумаю о более подходящем алгоритме и структурах данных. Если сортировать надо много и набор данных специфический изучу вопрос и подберу подходящий метод сортировки. Посмотрели разочарованно. Поинтересовались что внутри std::sort, ответил, что скорее всего quick sort. Спросили про его сложность, сказал, что O(n * log n) и O(n * n) на уже упорядояенном массиве. Попросили рассказать как он работатет. Рассказал в общих чертах, что делится массив на 2 части, затем рекурсивно повторяется алгоритм к двум частям и т.д. до конца. Снова посмотрели разочарованно.

Спросили. что лучше std::set или hash_set. Сказал, что если памяти достаточно, то скорее всего hash_set будет более предпочтителен. Далее рассказал про сложность std::set, что внутри скорее всего красно-черное дерево, что колизии в хеш-таблицах разрешаются методом цепочек и еще одним методом, но я про него забыл. Снова посмотрели разочарованно. Я сказал: ребята, сказали бы, что гонять будете по алгоритмам я бы повторил, а так институт я 11 лет назад закончил.

Спросили про порядок конструирования/уничтожения:

class A {
    std::string s;
};

class B : A {
    std::vector<int> v;
};
B b;


Ну это у меня от зубов отскакивает.

Спросили, что это такое:

std::vector<int> * p = new std::vector<int>(1 << 20);


Сказал, что 1 сдвинули на 20 разрядов влево и с этим размером создали вектор. Немного поговорили про конструкторы вектора, про то как работает new. Рассказал, что выделяется память, потом зовется конструктор, если есть исключение, то память освобождается. Рассказал про то, какие умные указатели бывают.

Поехали дальше. Что это такое, говорят:

printf("%d", (int *)2 + 3);



Отвечаю, что фигня. Что кастится двойка к указателю, что вообще бессмысленно и указатель сдвигается на sizeof(int) * 3. Спросили про приоритет операций, сказал, что смутно помню — использую скобки и всех заставляю. Посмотрели разочарованно.

После этого попрощались и исчезли оставив меня в недоумении — WTF почему меня вообще не спросили о том, чем я занимался, какие проекты завершил, какие библиотеки написал? Ну я особо не переживал — ходил ради интереса.

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