Archive

Posts Tagged ‘Интервью’

Разбор задачи про пакеты.

February 9th, 2011 8 comments

В комментариях к задаче про пакеты было задано много вопросов. Отвечу здесь.

Во-первых, задача действительно простая, иначе никак не уложиться в формат собеседования. На написание кода и сопутствующее общение есть всего около получаса. Плюс писать код на доске сложнее, чем в любимом редакторе. Тем не менее, в задаче любовно набросано граблей, на которые по возможности кандидат должен суметь не наступить. Условие задачи не полное (естественно!), не смотря на кажущееся обилие деталей. Кандидат всегда может прояснить у собеседующего недостающие детали и получить +1 к карме. Либо он может её решить, предположив разумные умолчания. В этом случае собеседующий всегда может добавить недостающее условие к задаче и попросить поправить код соответственно.

Read more…

Задачка на интервью. Пакеты.

February 8th, 2011 60 comments

А хотите задачку, которую я даю претендентам на контрактную позицию в нашей команде? Вот она, родимая. Есть библиотечная функция:

char get_byte();

Функция читает байт из некоего соединения. При необходимости, функция ждет, пока не придет очередной байт. По соединению пересылаются пакеты следующего формата: два байта длины, за которыми следует данные. Длина пакета включает в себя заголовок пакета, т.е. те самые два байта.

Формат пакета.

Формат пакета.

Нужно написать функцию recv, получающую очередной пакет:

size_t recv(char* buf, size_t size);

В buf передается указатель на буфер, куда должен быть записан пакет (полностью, включая заголовок). size указывает размер этого буфера. Функция возвращает полную длину пакета (включая заголовок) если пакет получен успешно. В случае ошибки возвращается 0.

Соединение, по которому пересылаются байты, не имеет помех. Посылающая сторона ведет себя хорошо и не подсовывает мусор. Функция recv вызывается на границе пакетов. Других потоков нет. Исключений нет.

Написать на доске работающий код для этой задачки удается не более, чем одному из пяти претендентов. По крайней мере за последние пару месяцев.

О разнице взглядов на привычные вещи.

June 2nd, 2010 22 comments

За последнее время мне пришлось побеседовать со многими соискателями на место разработчика в нашей команде. Нужно сказать, это было очень познавательно. Иногда – даже слишком.

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

Read more…