РЕДАКТИРОВАТЬ
После долгих размышлений и размышлений над этой темой я понял, что большинство вопросов, поднятых мной в этом вопросе, исходят исключительно из личной, а не профессиональной точки зрения. Поэтому модераторы отложили этот вопрос из-за очень личной, субъективной природы проблемы, о которой я пытался говорить. Я думал о перефразировке вопроса, но я не мог найти возможный способ изобразить вопрос более объективным образом, поэтому он может стать предметом обсуждения, где ответы могут быть подтверждены какими-то доказательствами или ссылками.
Ради тех, кто все еще заинтересован, я пытаюсь дать краткое изложение дискуссии, возникшей из этого вопроса:
- предварительное собеседование за 4 часа, тестирование за пределами школы не является обычным
- многие отметили, что в некоторых компаниях вы будете брать интервью гораздо дольше, чем все вместе
- это наше личное решение, пройти тест или нет, и мы можем оценить его, исходя из наших обстоятельств и предполагаемых преимуществ приема на работу в компанию.
- все компании разные, как и люди, и для компании может быть вполне разумным использовать более длительное предварительное собеседование перед собеседованием, если это соответствует их потребностям или обстоятельствам
Я хотел, чтобы мой первоначальный вопрос был о том, насколько разумно ожидать от меня 4 часа, и насколько этично выдавать проблему, чтобы решение (не код, а дизайн) могло быть использовано для компании. Как я теперь вижу, оба этих вопроса можно (в лучшем случае) изучить только в обсуждении на форуме, а не с помощью инструмента сообщества типа вопрос-ответ, такого как stackexchange.
Тем не менее, я нашел все ваши ответы ценными и спасибо за обмен.
ОРИГИНАЛЬНАЯ ПОЧТА
Я беру интервью на нескольких должностях, и большинство из них включают этап предварительной проверки, на котором я должен сдать тест на кодирование до телефонного интервью или собеседования на месте. Я в значительной степени привык к этой идее и считаю вполне разумным, что компании ожидают, что я это сделаю, чтобы они могли проверить, какую работу я могу выполнить самостоятельно.
Как правило, мой опыт показывает, что этот тип упражнений по программированию в основном является небольшими задачами программирования. Сделайте логику, возможно, реализуйте небольшой алгоритм, откройте файл и прочитайте / запишите данные, и все в таком духе. Даже самая простая задача может быть реализована с хорошим разделением логики, тестируемых компонентов и т. Д., Чтобы увидеть, как кандидат кодирует, как правило, насколько хорошо он подготовлен к той работе, которую компания хочет выполнить.
Недавно я натолкнулся на компанию, которая прислала мне тест на кодирование с описанием своей работы на целой странице и попросил меня решить реальную проблему их бизнеса (я не хочу говорить о деталях, чтобы защитить компанию, но этот тест было довольно много о том, что они делают). Они описали довольно сложную систему для реализации, включили реальные данные и в конце пришли к выводу, что тестирование кода не должно занимать более 4 часов .
Разумно ли от компании ожидать, что я проведу 4 часа, работая над их фиктивным заданием в свободное время, даже до того, как они скажут мне привет? (рекрутер прислал мне тест на кодирование)
Не поймите меня неправильно, я мотивирован, чтобы найти новую работу и новые задачи, но большинство компаний ожидают, что я потрачу максимум 1-2 часа на такую задачу, и такие задачи всегда были гораздо менее сложными.
В этой компании я пришел к выводу, что либо:
1) Моя мотивация не очень хорошая и, вероятно, они ищут кого-то другого
2) Они не уважают своих будущих сотрудников, чтобы они ожидали, что такие длинные тесты кодирования пройдут, даже не сказав им привет
3) Они просто хотят рассказать об одной из проблем, над которой они работают, и посмотреть, найдется ли какой-нибудь молодой парень с энтузиазмом, который решит это за них бесплатно (опять же, не поймите меня неправильно, я не теоретик заговора, но у меня есть слышал такие истории ...)
Как вы думаете, сколько для компании разумно ожидать, что кандидаты будут тратить время на фиктивные тесты кодирования, не разговаривая с ними? Каков ваш опыт в целом?
Ответы:
Позвольте мне на минуту встать на сторону компании, поскольку других ответов пока нет. Было бы почти невозможно создать пригодную для использования кодовую базу из конгломерата 4-часовых тестовых представлений о кодировании от людей, чья квалификация полностью неизвестна. Создание достаточно подробной спецификации, проверка ответов и интеграция с остальной частью вашего кода займет больше 4 часов. Не говоря уже о наиболее полезных программных проектах уровня предприятия, требующих тысячи человеко-часов. Честно говоря, мысль о построении бизнеса, разделив его на 4-часовые приращения с неделями выполнения каждого из них, откровенно нелепа.
Предоставление реальной бизнес-проблемы - один из лучших способов определить, будет ли кто-то шокирующим решением реальных бизнес-задач. Я часто делаю это на собеседованиях (хотя я спрашиваю об общих принципах проектирования, а не о 4-часовом коде), и каждый раз это была проблема, которую я уже решил. Если бы я еще не решил, тест потерял бы почти всю доказательную силу.
Стоит ли 4-часовой тест для вас, это личное решение. Меня всегда учили относиться к поиску работы на полную ставку как к работе на полную ставку. Когда вы безработный или частично занятый и проводите 8 часов в день в поисках работы, 4-часовой тест кодирования - ничто. Я потратил гораздо больше времени на такие задачи, как освоение ржавых языков, написание программ для портфолио и настройка резюме для конкретных позиций.
С другой стороны, некоторые из лучших работников уже работают по найму и лишь случайно ищут лучшие возможности. Люди в такой ситуации вряд ли пройдут 4-часовой тест, если только эта возможность не является звездной. Однако это проблема компании, а не ваша.
Что касается понимания того, что это означает об отношении компании к своим сотрудникам, я не думаю, что вы действительно можете сказать что-либо в любом случае, за исключением того, что они, вероятно, устали иметь дело с неквалифицированными кандидатами, до такой степени, что они готовы бросить некоторые хорошие с плохими
источник
Нет, не типично , почему вы решаете их проблемы бесплатно? (4 часа)
1 час типичен для теста программирования. В прошлом наш тест по программированию состоял из 4 вопросов. Первые 3 вопроса заняли полчаса, последний - полчаса. Мы также дали тест существующим наемным работникам, чтобы убедиться, что мы были в ожидаемые сроки, и тест был справедливым и согласованным.
Первые несколько вопросов были типа "Fizz Buzz", чтобы отсеять людей, которые не могут программировать. Они становились все сложнее. Последний вопрос был упражнением по решению проблем. Обычно мы пытались ограничить объем написанного кода до нескольких сотен строк (всего) и не требовать каких-либо хитрых уловок. Мы также оценивали людей по обработке ошибок, стилю, синтаксису, организации и т. Д. Вопросы были связаны не с нашим бизнесом, а с навыками и технологиями, на которых написана текущая платформа.
Как правило, великие кандидаты заканчивали в более короткие сроки, чем было выделено. Иногда люди просили дополнительное время, которое мы позволяли из-за стресса, связанного с проведением теста, но мы ограничивали всех на определенном уровне. Тест проводился в текущей среде разработки, и люди имели доступ к Интернету для справочной информации. Мы также опередили ожидания от викторины для каждого кандидата.
Одно время мы обсуждали включение нашей базы кода (реального мира) в тест, но в конечном итоге мы отказались от этого из-за опасений, что код скопирован / украден / и т. Д. (Наш начальник был немного параноиком). В конце концов мы просто поехали с отдельной
quiz.sln
машиной для разработки.Наконец, мы обнаружили, что было трудно придумать тест, который был бы справедливым, но не слишком сложным и не слишком простым. Мы всегда спрашивали наших кандидатов о тесте после того, как они взяли его и собрали свои отзывы, чтобы уточнить его для будущих кандидатов.
источник
Я считаю, что тесты по кодированию во время собеседования - это куча мусора. Никто не кодирует ничего, кроме самой простой рутины под давлением, без обычной среды и инструментов, поэтому результаты, которые вы получаете, в лучшем случае сомнительны.
То, что я нашел действительно хорошими тестами способности программиста, это дать ему некоторый код проекта и попросить его просмотреть его, это работает очень хорошо, если в коде есть несколько очевидных ошибок, несколько очевидных проблем с кодом и несколько сомнительных практик. Хороший кодировщик расскажет вам все из них и обсудит, почему какой-то код не «неправильный», но его можно было бы сделать лучше, чтобы упростить обслуживание или около того. Плохой программист найдет ошибку и остановится.
Любая работа, которая требует от вас выполнения теста, который занимает более получаса, просто не тратит даже столько времени на разработку хорошего, целевого теста, который дает им более чем смутное представление о ваших навыках. (большинству компаний очень трудно тратить время на настройку перед собеседованием).
Если бы мне дали такой тест, как ты, я бы написал ответ в псевдокоде. Этого должно быть достаточно, чтобы продемонстрировать мое понимание кодирования и проектирования без прохождения всех этапов компиляции, сборки и тестирования, которые вы бы сделали для обычного рабочего проекта.
источник
У вас может не быть 4 часов, но кто-то, кто больше заинтересован в их компании, наверняка найдет. По сути, меня приняли на работу по аналогичной задаче, которую одна компания попросила меня выполнить заранее. Очевидно, что написание чистого и понятного кода, тщательных тестовых примеров и понятной и последовательной проектной документации - это ненормально. На самом деле, видя, как кто-то делает это, уносит людей. В любом случае, все, с кем я разговаривал на собеседовании, похвалили меня за то, что я сделал, и я чувствовал, что мне не нужно никого удивлять, потому что они уже решили. Я просто не давал им повода сказать «нет», делая глупости.
Поэтому, хотя я согласен с тем, что 4 часа - это достаточно большие затраты времени, это также означает, что задача имеет достаточный размер, чтобы у вас была возможность действительно показать, на что вы способны. Ваша работа очень хорошо говорит о многом больше, чем вы когда-либо могли бы в реальной ситуации интервью.
В качестве примечания: в последнее время я пробовал подобное, но использовал гораздо меньшую проблему, и я не был доволен результатами. Небольшие проблемы являются тривиальными, чтобы продемонстрировать достаточно знаний человека. Кроме того, тривиальные проблемы, как правило, требуют, чтобы человек распознал некоторые хитрости / детали, необходимые для решения проблемы. Таким образом, существует определенный баланс между тем, чтобы отнимать слишком много времени у человека, и не получать никаких реальных выгод, потому что задача состоит в тривиальности. Я думаю, что 4-часовое задание - это, вероятно, подходящее количество времени, чтобы быть достаточно сложным для кандидатов, чтобы продемонстрировать свои навыки, и не быть таким длинным, чтобы никто не беспокоился.
источник
Я взял 6-часовой тест кодирования в одной точке. Когда я проходил этот тест, у меня была достаточно высокая уверенность в том, что меня примут на работу - хотя это и сбылось, я не был полностью удовлетворен последующими действиями.
Очевидно, что иметь много работодателей, каждый из которых просит 4 часа, является чрезмерным. Человек, которого я искал в тесте, который я проходил, был моим стилем кодирования - меня наняли, потому что мой был «самым близким» к нему. В этом контексте посмотрите на проблему с этой точки зрения: во-первых, это интересная проблема, решение которой стоит в любом случае? В конце концов, вы могли бы узнать что-то ценное.
Во-вторых, если вы можете «пройти» тест, значит ли это, что вы наняты? Если это не совсем очевидно, то вам нужно решить, есть ли другие причины сделать это в любом случае.
В-третьих, они могут оценить, что это займет «4 часа», но вы можете узнать по-другому. Они действительно знают, сколько времени это займет? Скорее всего, ответ - нет. Поэтому они будут продолжать тестировать людей в срок до 4 часов, пока не поймут, что это не подходит для четырех часов. В этом случае вы тратите свое время. В таком случае лучше всего проявлять агрессивность по отношению к менеджеру по найму и выяснить, следует ли вам остановиться на четыре часа и дать им то, что у вас есть, или продолжить, пока это не будет сделано, и сказать им, сколько времени это заняло. Короче говоря, в этом может быть завершен тест персонажа, и простая попытка принять его на своих условиях может показать неопытность.
источник