Как пройти собеседование в Яндекс
От: 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 почему меня вообще не спросили о том, чем я занимался, какие проекты завершил, какие библиотеки написал? Ну я особо не переживал — ходил ради интереса.

Вывод. Если ты недавно закончил вуз — полный вперед, тебя там ждут, что будут спрашивать ты уже знаешь
Re: Как пройти собеседование в Яндекс
От: Handie  
Дата: 04.05.12 13:59
Оценка: 11 (5) +9 -1 :)
MTD>Моя очередь немного поныть

Overqualified
Re: Как пройти собеседование в Яндекс
От: StandAlone  
Дата: 04.05.12 14:00
Оценка: 3 (1) +3 :)
Здравствуйте, MTD, Вы писали:

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


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

Хотя про квиксорт можно было и про переключение на insertion sort вспомнить, и про защиту от худшего случая, и насчет показателя оптимальности three-way-qsort в лучшем случае, и расход памяти в сравнении с merge sort, и еще дохрена всего, что я помню из только что прочитанной Algorithms, 4th Edition
Когда на одном недавнем собеседовании начал все это излагать, собеседующий с недовольным лицом меня прервал и перешел на следующие вопросы в надежде где-нибудь уличить и заорать с восторгом — Агаа, ты не знаешь, чем отличаются детали реализации словаря и хеш-таблицы,( сколько бит в слове байт, в каком ухе у меня звенит, you name it) !...
Re: Как пройти собеседование в Яндекс
От: alpha21264 СССР  
Дата: 04.05.12 14:06
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Моя очередь немного поныть


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


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

Течёт вода Кубань-реки куда велят большевики.
Re: Как пройти собеседование в Яндекс
От: Donz Россия http://donz-ru.livejournal.com
Дата: 04.05.12 14:09
Оценка: 1 (1) +2
Здравствуйте, MTD, Вы писали:

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


Откуда N^2 на уже упорядоченном массиве?
Re: Как пройти собеседование в Яндекс
От: Ахмед  
Дата: 04.05.12 14:10
Оценка: +2
Здравствуйте, MTD, Вы писали:

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


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


К чему этот мазохизм, я не понимаю, какой смысл ходить на такие собеседования? Ты ведь прекрасно знал — что там будет.
Re: Как пройти собеседование в Яндекс
От: StandAlone  
Дата: 04.05.12 14:15
Оценка:
Здравствуйте, MTD, Вы писали:

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


Rehashing. Забыть про это сложно, потому что у цепочек сложность выборки порядка O(n/m), а у рехашинга порядка 4\3(!) при филл-факторе 0.5.
Впечатляющая разница, как и в потреблении памяти. Правда, теоретическое обоснование результатов для рехашинга лично мне обосновать слабо, там нехилая математика и сплошной теорвер с формулой Бернулли.


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


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


Указатель на int — uint вроде бы, 2^32 при компиляции в x32, результат будет uint +int = uint(5), а вот что уже с uint сделает спецификатор d, сие мне неведомо.
Re[2]: Как пройти собеседование в Яндекс
От: MTD https://github.com/mtrempoltsev
Дата: 04.05.12 14:45
Оценка:
Здравствуйте, StandAlone, Вы писали:

SA>Rehashing. Забыть про это сложно


А я вот забыл, что есть еще один помню, а как работает

SA>Указатель на int — uint вроде бы, 2^32 при компиляции в x32, результат будет uint +int = uint(5), а вот что уже с uint сделает спецификатор d, сие мне неведомо.


Это не так.
Re[2]: Как пройти собеседование в Яндекс
От: MTD https://github.com/mtrempoltsev
Дата: 04.05.12 14:46
Оценка:
Здравствуйте, Ахмед, Вы писали:

А>К чему этот мазохизм, я не понимаю, какой смысл ходить на такие собеседования? Ты ведь прекрасно знал — что там будет.


Нет, не знал, теперь знаю
Re: Как пройти собеседование в Яндекс
От: volodya777  
Дата: 04.05.12 14:53
Оценка: 1 (1)
Здравствуйте, MTD, Вы писали:

MTD>Моя очередь немного поныть


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


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

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

такое ощущение что компания ориентирована на прием вчерашних студентов
Re: Как пройти собеседование в Яндекс
От: volodya777  
Дата: 04.05.12 15:00
Оценка:
MTD>Начало. С ходу предложили отсортировать массив целых положительных чисел. Сказал, что не буду изобретать ничего, а возьму std::sort, если

они ожидали услышать про radix sort

если ты не знаешь этот алгоритм, вряд ли сходу его изобретешь, но он дает линейную сложность O(N) для массива целых положительных чисел
Re: Как пройти собеседование в Яндекс
От: Miroff Россия  
Дата: 04.05.12 15:03
Оценка: 1 (1)
Здравствуйте, MTD, Вы писали:

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


В общем-то да. Насколько я могу судить из общения с инсайдерами, не-студенты обычно попадают в Яндекс по рекомендации кого-то из команды.
Re: Как пройти собеседование в Яндекс
От: minorlogic Украина  
Дата: 04.05.12 15:33
Оценка: 1 (1) +3
Ответы звучат разумными.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[2]: Как пройти собеседование в Яндекс
От: minorlogic Украина  
Дата: 04.05.12 15:37
Оценка:
Здравствуйте, volodya777, Вы писали:

V>они ожидали услышать про


Это предположение или вы собеседовали ?
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[2]: Как пройти собеседование в Яндекс
От: Mr.Cat  
Дата: 04.05.12 15:41
Оценка: +1
Здравствуйте, volodya777, Вы писали:
V>radix sort
Русская википедия — это ппц какой-то. Сравни с http://en.wikipedia.org/wiki/Radix_sort.
Re[2]: Как пройти собеседование в Яндекс
От: bastrakov Россия http://bastrakof.livejournal.com/
Дата: 04.05.12 17:11
Оценка:
Здравствуйте, volodya777, Вы писали:

V>такое ощущение что компания ориентирована на прием вчерашних студентов


тема уже лет несколько назад нарисовал такую пирамидку, где он ясно показал, кто такие "все остальные". и несмотря на то, что на пирамидке выделена вершина, сходится то она в точку. одну. и эта точка строит компанию под себя. во
Re: Как пройти собеседование в Яндекс
От: PlusMyTwitterFace  
Дата: 04.05.12 17:22
Оценка:
MTD>Отвечаю, что фигня. Что кастится двойка к указателю, что вообще бессмысленно и указатель сдвигается на sizeof(int) * 3

Я так и не понял, честно говоря, что именно они хотели услышать?
Re: яндекс же
От: bazis1 Канада  
Дата: 04.05.12 18:43
Оценка: +1 -1 :)
вполне ожидаемо. грубо говоря, есть 2 типа контор:
1. где программистам разрешается думать
2. где программисты стучат по клавишам, а думают за них менеджеры

отличить просто по соотношению программистов/менеджеров и количеству уровней менеджмента. яндекс — тупо контора второго типа. многим людям такие понравится, т.к. спросу с кодера тоже никакого, сиди себе да стучи по клавишам без риска увольнения.
Re[2]: Как пройти собеседование в Яндекс
От: dilmah США  
Дата: 04.05.12 21:46
Оценка:
MTD>>Отвечаю, что фигня. Что кастится двойка к указателю, что вообще бессмысленно и указатель сдвигается на sizeof(int) * 3

PMT>Я так и не понял, честно говоря, что именно они хотели услышать?


это не такой и плохой вопрос.
Есть люди, которые не задумывались, что в адресной арифметике происходит неявное умножение на sizeof.
Видимо, они хотят отсеять таких людей (если они при этом декларируют свой опыт в С/C++)
Re: Как пройти собеседование в Яндекс
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 04.05.12 21:59
Оценка: 7 (2) +4 -5
Здравствуйте, MTD, Вы писали:

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


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


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