Ходил как-то я, году в 2011 кажется, в одну славную украинскую аутсорс контору. Контора хороша тем что работает в основном со стартапами из Долины. На “Cog” начинается на “niance” заканчивается.

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

А потом говорят, у нас тут работают лучшие инженеры поэтому мы даем логические задачи! И дают мне задачу, суть такова: вагоны сцеплены в кольцо и нужно придумать алгоритм как определить количество вагонов в кольце (гуглить по запросу “Задача про бесконечный поезд”). В каждом вагоне можно включать или выключать свет, в остальном они выглядят одинаково и типа никак не отличить. Между вагонами понятное дело можно ходить.

После непродолжительного тупняка и нескольких подсказок мне эту задачу удалось решить.

Но ребятам было мало.

Следующая была задача про гномиков в шапках выстроенных в ряд (гуглить по запросу “Задача про гномов и разноцветные шапки”, на хабре она есть), а я как раз незадолго до этого обсуждал на работе с коллегами эту же задачу, но точного решения не помнил, помнил только что там надо было XORить что-то с чем-то 🙂 Не помню уже что я ответил, то ли что я не смогу решить, то ли что-то про XOR, но решения я не дал.

Ребята решили дать мне последний шанс.

И дали задачу про два паровозика (гуглить по запросу “Задача паровозики”). Суть такова — есть два паровозика на одной колее но неизвестном расстоянии и один семафор, у них есть ассемблерные команды типа “вперед” “назад” “проверить семафор” “ждать”. Нужно написать программу на этом паровозном ассемблере, которая будет одинакова для обеих паровозиков и сделать так чтобы при выполнении они друг с другом встретились (а не просто уехали куда попало). Эту задачу я тоже решал где-то за год до этого случая (у меня был коллега который любил решать и обсуждать такое), и в спокойной обстановке вроде даже решил, но знания тоже потерял. Я начал писать программу, обсуждая действия с интервьюерами, но рабочее решение за короткий промежуток времени мне не удалось сделать. Застрял на чем-то или просто мысль не в ту сторону пошла, точно не помню.

В итоге у ребят закончилось время (а просидели мы часа 3 или около того), и мы попрощались.

Это было самое насыщенное такими задачами собеседование за всю мою карьеру.

Оффер мне не сделали. Видимо, все-таки плохо задачи решал ))) Хорошо, что сейчас уже таких задач не дают…