与我合作的一家公司要求我进行候选电话筛选,以确保在将某人转移给潜在客户时不会完全让他们感到尴尬。
事实证明,有相当多的人被安排担任C ++开发人员角色。我并没有花太多时间在C ++上,但是我已经用该语言完成了一些琐碎和琐碎的项目。我认为“解释RAII习惯用语”将是一个不错的垒球问题,大多数严肃的C ++开发人员都可以在半睡着时回答,并且可以让我继续讨论有关经验的更有趣的问题。但是事实证明,即使我将首字母缩写词扩展为“资源获取就是初始化”,具有10年以上C ++经验的人也不认识该术语。一位候选人甚至说,他认为在Windows开发中应用该技术并不总是可行的,我认为这是一个奇怪的想法,但我可以看到几个可以支持该思路的示例。)。
甚至我认识的几个C ++开发人员都知道他们的能力,他们说他们不认识该术语,但是在阅读了该技术的摘要后说:“哦,是的,我不知道这个名字。我只是将这些事情视为您要做的事情。” 我记得Stroustrup的第二版中的术语,尽管当时并没有完全发挥作用。
因此,是“您能向我解释RAII的习惯用法吗?” 一个公平的筛选问题?期望所有有能力的C ++开发人员理解它是否合理?这个词比我想象的更神秘吗?假设候选人不知道该术语,是否有后续问题可以帮助我弄清楚他们是否至少已使RAII发挥作用的内在化?是否有更好的替代“杂草”问题使应试者有一定的自由度,并帮助应聘者证明他们对C ++开发的理解?
编辑要补充:澄清一下,我并不是那种使人们失去资格的面试官,因为他们不知道流行语和首字母缩写词。但是,我确实希望有经验的C ++程序员能够内部化资源管理的良好实践,这是合理的。我还认为,在继续进行有关设计,解决问题等更有趣的问题之前,验证候选人是否了解他们声称拥有专业技能的技术的“基础知识”非常重要。提出一个适用于简短电话筛选的开放式问题,在我提出“困难”问题之前,我可以用它来判断候选人对C ++中良好资源管理实践的基本理解。