Подтвердить что ты не робот

Проблема с тестированием кода Python для интервью

Я пытаюсь найти хорошую проблему с кодированием, чтобы попросить кандидатов на интервью с Python.

У них будет час для работы над проблемой, с IDE и доступом к документации (нам все равно, что люди запомнили).

Я не ищу жесткую алгоритмическую проблему. - есть другие разделы интервью, где мы делаем такие вещи. Цель этого раздела - сидеть и смотреть, как они на самом деле пишут код. Таким образом, это должно быть то, что заставляет их использовать только структуры данных, которые являются повседневными инструментами разработчика приложений - списками, хэш-таблицами (словари на Python) и т.д., Для решения квазиреалистичной задачи. Они не должны быть полностью заблокированы, если они не могут думать о чем-то действительно умном.

У нас есть проблема, которую мы используем для тестов кодирования Java, которая включает в себя чтение файла и небольшую обработку содержимого. Он хорошо работает с кандидатами, знакомыми с Java (или даже С++). Но мы сталкиваемся с несколькими кандидатами, которые просто не знают Java или С++ или С# или что-то в этом роде, но знают Python или Ruby. Который не должен их исключать, но оставляет нам дилемму: с одной стороны, мы не многому научимся, наблюдая, как кто-то борется с основами совершенно незнакомого языка. С другой стороны, проблема, которую мы используем для Java, оказывается довольно тривиальной в Python (или Ruby и т.д.). Любой полузащитник может сделать это через 15 минут. Итак, я пытаюсь придумать что-то лучшее.

Удивительно, но Google не показывает мне, что кто-то делает что-то подобное, если я не слишком глуп, чтобы войти в очевидный термин поиска. Лучшая идея, которую я придумал, заключается в том, чтобы планировать рабочих на временные интервалы, но, возможно, это слишком откровенно. Вы столкнулись с хорошим примером? Или плохой? Или у вас есть идея?

4b9b3361

Ответ 1

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

Многие проблемы в http://www.streamtech.nl/site/problem+set, которые взяты из соревнований ACM, также подходят для вашего использования. Я использовал их для ознакомления с синтаксисом и языковыми функциями python. Большая часть простого применения стандартных структур данных; некоторые из них более сфокусированы на алгоритмических проблемах. Если вы их отсортируете, я уверен, что вы найдете несколько, которые соответствуют вашим потребностям.

Ответ 2

Я могу порекомендовать вам Checkio.org

Ответ 3

Вы всегда можете просто дать им еще несколько вопросов на вершине Java, например попросить их выполнить задачу Java, а затем попросить их определить класс, а затем попросить их сделать FizzBuzz. Это должно быть столь же строгим, как ваша задача Java.

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

Ответ 4

Вот вопрос на который я ответил недавно в SO, который может стать началом чего-то подходящего:

С учетом строки "O João foi almoçar :) ." разделите ее на список слов. Вы должны удалить все знаки препинания, кроме для смайликов. Результат, например: ['O','João', 'foi', 'almoçar', ':)']

Я немного подобрал этот вопрос. См. Оригинал, связанный выше, и мой ответ. Он проверяет ряд вещей, и есть разные способы решения проблемы. Они также могут получить половину решения, которое сначала игнорирует смайлики и знаки препинания. Просто найти смайликов - еще одна подзадача, которая может быть решена отдельно. И так далее...

Вы можете распространить его на вопрос о смайликах, смежных с другими пунктуациями, смежными смайликами, перекрывающимися смайликами, определяющими смайлики в форме :), но также и поисками формы :-). Вы могли бы также превратить его в проблему с частотным счетчиком вместо того, чтобы просто раскалываться, чтобы немного выстроить свой вопрос на Java.

Я также предлагаю искать в python + вопросы интервью, размещенные на SO. Есть несколько хороших, и вы даже можете расширить свой поиск, чтобы просмотреть все interview-questions сообщения, если у вас есть время.

Ответ 5

Я не знаю о Python конкретно, но я обнаружил, что вопросы интервью, которые включают рекурсию, являются очень эффективным фильтром. Я попросил кандидатов произвести все перестановки строки (и подумать о том, как ее протестировать), и меня попросили псевдокод самой длинной общей подпоследовательности.