我曾面试过数百名软件工程岗位候选人
软件工程师招聘实践正受到质疑,许多人认为白板题和类似 LeetCode 的挑战既有压力、信号又低,而且往往无法预测真实工作表现。评论者讨论了多种替代方案,如对话式面试、简单编码任务、带回家作业、作品集审查以及结构化行为问题,同时也指出该领域缺乏基础能力标准,而依赖“文化契合”或对科技新闻的热情又存在偏见风险。几位发言者强调,面试官的能力、对评估内容的清晰说明,以及对候选人时间与尊严的尊重,至少与具体采用哪种形式同样重要。
编码挑战和白板题的局限
- 许多人表示,带回家测试、现场编码和谜题对双方都很不愉快,而且很少能揭示出在对话中不会显现的问题。
- 也有人强烈认为,如果没有现场编码,许多录用者连基本的循环或简单算法都写不出来,尽管简历和沟通能力都很强。
- 标准的“LeetCode”/算法题常被批评为筛选刷题准备和抗压能力,而不是与工作相关的技能。
需要验证基础技能
- 一些面试官坚持做非常简单的编码检查(例如循环、列表操作、基本数据转换),以抓出那些“说得头头是道”却不会写代码的申请者。
- 对压力应当有多大,大家意见不一:有人希望是低压力、简单到不值一提的任务;也有人认为适度压力不可避免。
面试目标:解决问题、沟通、匹配度
- 许多人更喜欢对话式面试:回顾过去的项目、系统设计、代码样本,或候选人提供的代码,并深入追问理解程度。
- 受欢迎的信号包括:系统化的方法、解释权衡取舍的能力、愿意说“我不知道”,以及建设性的协作。
- 有人期望资深候选人在编码前先说清思路和设计;也有人指出,真正的设计通常需要数小时,而不是在白板前的五分钟。
文化、性格与偏见
- “文化契合”被视为既必要又有风险:它可以确保协作顺畅,但也可能固化偏见并降低多样性。
- 关于“科技新闻”、“新技术”或社交活动(如派对、喝酒)的问题,可能会无意中过滤掉某个社交圈层、生活方式或性格类型的人。
- 有几位提到,许多优秀开发者不喜欢高压测试或被迫社交,而把他们筛掉可能适得其反。
缺乏标准与基础胜任力
- 一个反复出现的抱怨是:候选人的技能水平差异极大,而简历并不能很好预测。
- 有人建议设立一个轻量、全行业通用的“程序员资格考试”,以保证最低水平的能力(循环、条件判断、基本推理);也有人担心这会重新制造昂贵的资格门槛。
流程设计与研究证据
- 建议的改进包括:减少轮次、明确要评估什么,以及采用结构化行为面试(“请讲一个你曾经……”)并使用一致的评分标准。
- 一位评论者引用了工业与组织心理学:工作样本测试和结构化面试是最具预测力的方法之一;非结构化聊天更容易产生偏见,信号也更弱。
- 也有人担心,很多面试官本身并不擅长评估技能或准确设定预期。