вторник, 25 января 2011 г.

Собеседование в Нексоне

Вчера было очередное собеседование, на этот раз в Нексоне (не слишком знаменитая (не в Корее) корейская фирма разработчик-палбишер игр). Это был второй тур отбора, первый тур состоял в решении 4 задачек дома за 3 дня. Как оказалось, правильно решил три, на отладку последней задачи времени не хватило.

Назначили собеседование мне на 11 часов, так что пришлось рано утром выезжать из Теджона в Сеул. Порадовало, что оплатили проезд.

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

После того, как меня попросили заполнить бланк для выдачи проездных денег, меня провели в комнату, где меня ожидал интервьювер. Был он всего один, что довольно странно, по опыту собеседований интервьюверов обычно двое (bad cop & good cop).

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

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

Попросил рассказать решение к одной задаче из "домашнего задания".
Решение сводилось к простому обходу графа.
Спросил, как делать depth-first search и breadth-first search. (Сказал что в одном стэк, а в другом очередь, но сначала напутал что где.)

Затем пошли обычные вопросы:
- Что такое виртуальный метод?
- Как реализован механизм виртуальных методов в С++? (Ответил ему сходу, так как на прошлом интервью, о котором я не писал, разбирали это минут 10 :)
- Рассказать time complexity для insert, delete, search для различных stl контейнеров (vector, list, map).
- Зачем нужна балансировка бинарного дерева?
- UDP vs TCP
- Что такое SYN flooding? (хорошо, что я про него читал когда-то:)
- Deadlock? (спросил бы он еще про deadlock prevention techniques :)
- Starvation?
- Описать calling convenction on x86. (точно не знал, но сказал что через стек передаются параметры и возвратное значение, но не сказал про адрес возврата в вызывающую функцию)
- Что такое buffer overrun? (тут порассуждал что на стеке должен быть адрес функции, который можно переписать. Когда я сказал code injection, он сказал, что нужные слова я знаю и поехали дальше :)
- Почему rand() имеет uniform distribution, а rand() % 100 nonuniform? (тут завис, ответ пришел только в метро на обратной дороге)
- Есть колода карт, как ее рандомно помешать? (придумал O^2 алгоритм с использованием массива флагов)
- Есть несколько методов размешивать карты, как сравнить какой из них лучше? (ответил, но не слишком хорошо, сравнивать соседние карты и смотреть их разницу. Лучше наверное был бы метод использовать какую-нить игры, и идентичных ботов, и смотреть чтобы боты "играли наравне".)

Дальше некоторые отвлеченные вопросы:
- Что по разработке игр читал\пробовал?
- Собираюсь ли я учить дальше корейский язык?
- Сложно ли мне будет работать в команде, где никто не знает английский? (oh yeah!)
- Может девушка у меня южно-кореянка (типа корейский будет мне улучшать)? (Сказал что женат на украинской кореянке).

В конце стандартное, через недельку свяжемся и сообщим результаты (может быть). На все собеседование ушло чуть больше часа.

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

Интересно, что до конца собеседования он думал, что я - американец :).
Но я укыраина-сарамия :)

References:

1 комментарий:

  1. Интересно.

    Про колоду карт меня спрашивали в МС, но там было условие, что все карты должны быть на новых местах.

    ОтветитьУдалить