Компанія, з якою я співпрацюю, попросила мене зробити скринінг телефону кандидата, щоб переконатися, що вони не збентежилися, коли надсилали когось потенційному клієнту.
Виявляється, на роль розробника C ++ помістили неабияку кількість людей. Я не витрачаю багато часу на C ++, але я зробив декілька тривіальних та нетривіальних проектів з мови. Я подумав, що "Поясніть ідіому RAII" буде приємним питанням софтболу, на яке більшість серйозних розробників C ++ можуть відповісти, поки не спить, і дозволить мені перейти до більш цікавих питань щодо досвіду. Але виявляється, що люди, які мають досвід 10+ років C ++, не визнають цього терміну, навіть якщо я розширюю абревіатуру до "Придбання ресурсів - це ініціалізація". Один із кандидатів пішов так далеко, що він вважав, що застосовувати методику в розробці Windows не завжди практично, що я вважав дивним, але я міг побачити пару прикладів, які, напевно, підтримують цю думку.).
Навіть кілька розробників C ++, яких я досить добре знаю, щоб оцінити їхню компетенцію, сказали, що термін не визнають, але, прочитавши резюме методики, сказав: «О так, я не знав, що це ім’я. Я просто думав про ці речі як про щось, що ти просто повинен робити ». Я пам’ятаю термін із другого видання книги Струструпа, навіть якщо повний вплив на той час не занурився.
Отже, "Чи можете ви пояснити мені ідіому RAII?" чесне скринінг-питання? Чи розумно очікувати, що всі компетентні розробники C ++ зрозуміють це? Чи є термін більш езотеричним, ніж я б думав? Якщо припустити, що кандидат не знає цього терміна, чи є додаткові запитання, які допоможуть мені розібратися, чи вони принаймні інтерналізували практику, яка змушує працювати RAII? Чи є кращі альтернативні питання "бур'яну", які дають кандидату певну широту у відповідях та допомагають кандидату продемонструвати своє розуміння розвитку С ++?
Редагування, щоб додати : Щоб уточнити, я не той тип інтерв'юера, який дискваліфікує людей, оскільки вони не знають модних слів та абревіатур. Однак я вважаю, що доцільно очікувати, що досвідчений програміст на C ++ втілив передовий досвід управління ресурсами. Я також вважаю, що важливо перевірити, чи кандидат розуміє деякі "основи" щодо технології, на яку вони вимагають експертизи, перш ніж перейти до більш цікавих питань щодо дизайну, вирішення проблем тощо. задати відкрите запитання, придатне для використання в короткому екрані телефонного зв’язку, яке я можу використовувати, щоб оцінити основне розуміння кандидатом належних практик управління ресурсами в C ++, перш ніж задати "важкі" питання.