工程面试实践中的缺陷 | AI生成和翻译
问题:关于工程职位面试,有哪些不受欢迎的观点?
回答:
以下是一些关于工程面试流程中真正不受欢迎(但在经验丰富的工程师和招聘经理中越来越普遍)的观点:
-
LeetCode风格的算法面试多半是走过场,与实际的工程能力关联性很差。
几个月来刷中等/难题是为了筛选出考试耐力和近期准备情况,而不是筛选出能交付可靠系统的人。大多数公司从不需要你在白板上翻转二叉树。 -
居家项目通常比LeetCode更糟糕。
它们会占用10-40小时的无偿时间,偏向有空闲时间的候选人(没有孩子,没有第二份工作),并且经常被疲惫的评审员肤浅地评判。一个4小时的居家项目与1小时的结对编程会话相比,几乎什么也说明不了。 -
“文化契合”造成的同质化比公然的歧视更多。
人们招聘自己的克隆人,并称之为文化契合。结果是:团队里都是20-30多岁的外向男性,他们来自少数几所大学,听着相同的播客。 -
过早询问过往薪资或薪资期望应该立即让该公司失去资格。
这是一种权力游戏,旨在压低薪资。优秀的公司会为该职位支付市场价,而不是“你愿意接受的”。 -
在大多数非FAANG公司,系统设计面试是盲目模仿的无稽之谈。
当公司只有20万月活跃用户,并且所有东西都运行在一个RDS实例上时,要求一个中级工程师设计“Twitter规模”的系统是没有意义的。真正的系统设计95%是理解你实际技术栈中的权衡,而不是背诵CDN → 负载均衡 → 缓存 → 分片MySQL。 -
在2025年,要求学位(或计算机科学学位)是站不住脚的。
拥有计算机科学学位与成为一名优秀工程师之间的相关性,在拥有大约3年经验后趋近于零。 -
使用STAR格式的行为面试既痛苦又低效。
大多数候选人都会排练相同的三个故事。在十分钟的随意交谈中,你学到的东西比在“告诉我一次你遇到冲突的经历……”中一个小时学到的更多。 -
现场编码可以,但白板编码是残酷而不寻常的惩罚。
强迫某人写出没有自动补全、没有文档、无法运行的无bug代码是人为的。在真实的IDE(甚至是CoderPad/Replit)上进行结对编程要优越得多。 -
因五次面试中一次表现不佳而拒绝候选人是懒惰的。
人们都会有状态不好的时候。聪明的公司会利用最好的信号,而不是最差的。 -
大多数“高级”面试流程实际上是在测试主管/首席工程师的技能。
公司希望招聘一个人,他已经能胜任比他们招聘职位高两个级别的工作,然后以高级工程师的薪水支付,并抱怨他们“缺乏影响力”。
这些观点之所以不受欢迎,是因为当前的面试行业(训练营、LeetCode Premium、辅导等)是一个价值数十亿美元的生态系统,它受益于现状。改变其中任何一点都会威胁到许多商业模式和自尊心。
参考文献:
- The Software Engineering Interview Process Is Broken – Gergely Orosz
- Why LeetCode-Style Interviews Fail – Charity Majors
- Take-Home Assignments Suck – Thomas Ptacek