Проходил интервью на юниора в
http://verdiem.com. Собеседовали долго. Длинная сессия (4 часа) в понедельник и коротенькая в пятницу (сегодня).
Было пять человек и пять вопросов от каждого:
Понедельник
1. Обьяснить как мультипоточность поможет в создании интернет-краулера. Есть грубо говоря три функции
StorePage
ParsePage
DownloadPage
первые две срабатывают за 0 секунд, вторая за неопределенное время.
Нужно построить дерево и сохранить страницы. Я правильно подметил что иногда страницы пересекаются и поэтому второй раз грузить страницу не надо.
Но реально
протупил в очень простом приложении многопоточности на однопроцессорной машине.
2. Найти проблему в
class A {};
class B : public A {};
class C : public A {};
class D
{
private:
A *ptr;
public:
};
и решить её.
Тупил первые 10 минут потом мне интервьювер дал пинок и я после повторного осмотра быстренько написал правильный ответ с использованием виртуального clone.
3. Написать алгоритм нахождения самого большого числа меньше чем некий X в правильном бинарном дереве. Легко
Пятница
4. а) написать класс матрицы с учетом того что матрица будет дико юзать память.
б) написать функцию умножения матриц
Легко но нудно ибо на доске и фломастером блин.
5. Развернуть linked list. АА!!! я с испугу принял linked list за doubly linked list и написал...
template<typename Data>
class element
{
public:
element<Data> *prev;
element<Data> *next;
Data _data;
};
... чем эффектно выпендрился юзая шаблоны :\ Однако написать prev в llist это позор
После назидательного "но-но" со стороны дяденьки я удалил к чертовым бабушкам prev и вспех написал на доске фломастером что-то типо такого:
void reverse(element *head)
{
element *curcopy;
element *temp;
element *headcopy = head;
curcopy = head; head->next = NULL;
while(curcopy)
{
//забыл
}
//забыл и не буду вспоминать ибо это решение ужасное и рекурсия рулит
}
и вроде все правильно.
Очень сложно было то что заставляли писать маркером на доске. У меня почерк ужасный и поэтому тяжело было "дебаггить".
А в целом понравилось. Первое интервью такого масштаба

... << RSDN@Home 1.2.0 alpha rev. 784>>