Компания, с которой я работаю, попросила меня проверить кандидатские телефонные звонки, чтобы убедиться, что они не смущаются при отправке кого-либо потенциальному клиенту.
Оказывается, довольно много людей были назначены на роль разработчика C ++. Я не трачу много времени на C ++, но я сделал несколько тривиальных и нетривиальных проектов на языке. Я подумал, что «Объяснить идиому RAII» было бы хорошим вопросом софтбола, на который большинство серьезных разработчиков C ++ могли бы ответить в полусне, и позволил бы мне перейти к более интересным вопросам об опыте. Но оказывается, что люди, которые имеют опыт C ++ более 10 лет, не распознают этот термин, даже если я расширю акроним до «Приобретение ресурсов - это инициализация». Один кандидат зашел так далеко, что сказал, что, по его мнению, не всегда практично применять эту технику при разработке Windows, что, на мой взгляд, было странным чувством, но я видел несколько примеров, которые, возможно, подтверждают эту точку зрения.).
Даже пара разработчиков C ++, которых я знаю достаточно хорошо, чтобы судить об их компетентности, сказали, что они не распознали этот термин, но, прочитав краткое изложение техники, сказали: «О, да, я не знал, что у него есть имя. Я просто думать о тех вещах, как о чем-то, что вам просто нужно сделать ". Я помню термин из второго издания книги Страуструпа, хотя в то время не было полного воздействия.
Итак, "Можете ли вы объяснить мне идиому RAII?" честный вопрос отбора? Разумно ли ожидать, что все компетентные разработчики C ++ поймут это? Является ли термин более эзотерическим, чем я мог бы подумать? Предполагая, что кандидат не знает этого термина, есть ли дополнительные вопросы, которые могли бы помочь мне выяснить, насколько они усвоили методы, которые заставляют RAII работать? Есть ли лучшие альтернативные вопросы, которые дают кандидату некоторую свободу ответов и помогают ему продемонстрировать свое понимание разработки на C ++?
Редактирование, чтобы добавить : чтобы уточнить, я не из тех интервьюеров, которые дисквалифицируют людей, потому что они не знают модных слов и сокращений. Тем не менее, я думаю, что разумно ожидать, что опытный программист на C ++ усвоил передовой опыт управления ресурсами. Я также думаю, что важно убедиться, что кандидат понимает некоторые «основы» технологии, в которой он претендует, прежде чем перейти к более интересным вопросам о дизайне, решении проблем и т. Д. Я думаю, что то, что я ищу, - это хороший способ задавать открытый вопрос, подходящий для использования при просмотре коротких телефонных звонков, который я могу использовать, чтобы оценить базовое понимание кандидатом хороших методов управления ресурсами в C ++, прежде чем задавать «сложные» вопросы.