Один разработчик использует на технических собеседованиях задачу, которая кажется элементарной, но раскрывает несколько слоёв — написать функцию, принимающую массив чисел и возвращающую медиану. Это не puzzle-вопрос, а рабочий инструмент: кандидат показывает, что умеет программировать, а интервьюер получает кучу тем для обсуждения.
Для начала числа нужно отсортировать. Должна ли функция делать это сама? А если массив передан по ссылке — можно ли его мутировать? От ответа зависит производительность и дизайн API. Дальше — классический off-by-one при вычислении индекса, хоть автор и не считает эту ошибку фатальной, но интересно посмотреть, как человек отлаживает мелочь. Обязательная ветвь: чётное количество элементов против нечётного. Потом можно зайти в статистику — почему медиана часто полезнее среднего, и обсудить, когда что выбирать. Ещё плюс: функцию легко покрыть тестами, а знающий кандидат вспомнит про модуль statistics из стандартной библиотеки.
В статье приведена реализация на Python с пояснениями в комментариях. Если список пуст, бросается ValueError. Сортировка делается через sorted(numbers) — это не меняет исходный массив, что сразу намекает на осознанный дизайн. Дальше проверяется длина, находится середина, и для чётной длины возвращается среднее двух центральных чисел, для нечётной — центральное. Всё.
Задача про медиану — хороший пример того, как простой вопрос может проверить и базовые навыки, и понимание нюансов, и умение рассуждать о компромиссах в коде.