文章摘要
作者通过自身经历和科学研究指出,现场编程面试容易因压力导致表现不佳,即使问题本身并不复杂。作者曾在Toptal的现场编程测试中失败,但事后轻松解决了同样的问题,说明压力对大脑的影响是主要原因。
文章总结
标题:现场编程面试的弊端
主要内容:
作者对现场编程面试持批评态度,认为这种面试方式并不能准确评估候选人的编程能力,反而可能因为压力导致候选人表现失常。作者通过自身经历和科学研究,详细分析了现场编程面试的弊端。
详细内容:
个人经历:作者曾在一家知名公司(Toptal)的面试中通过了初步筛选和90分钟的在线编程测试,但在30分钟的现场编程测试中未能完成任务。然而,几小时后,作者在没有压力的情况下轻松解决了同样的问题。这一经历引发了作者的思考。
压力对大脑的影响:在高压力、时间紧迫的情况下,大脑会进入“战斗或逃跑”模式。杏仁核被激活,皮质醇水平飙升,负责复杂推理和工作记忆的前额叶皮层功能受损。这导致工作记忆能力下降,使得候选人在现场编程中难以清晰思考,甚至忘记刚刚输入的代码。
科学研究:作者引用了一项由微软研究人员进行的科学研究,该研究比较了候选人在私人和公开环境下的编程表现。结果显示,在公开环境下被观察的候选人得分仅为私人环境下的一半。此外,研究还发现,在公开环境下,没有一位女性候选人通过测试,而在私人环境下,所有女性候选人都通过了测试。这表明现场编程面试对女性候选人尤为不公平。
现场编程的误导性:许多公司将现场编程面试视为评估候选人编程技能的手段,但实际上,它更多是测量候选人在压力下的表现。作者指出,那些在LeetCode练习中表现不佳的候选人,可能在日常工作中是出色的工程师,能够编写高质量的代码和文档,并调试复杂的系统。
缓解压力的方法:尽管无法改变现场编程面试的普遍性,但作者建议通过模拟面试、使用平台(如Pramp、Interviewing.io、LeetCode的模拟评估)等方式来减轻压力。此外,作者还提到了一些可能有助于缓解压力的补充剂(如L-酪氨酸和L-茶氨酸),但强调这些方法应在实践中测试,因为每个人的反应不同。
结论:作者认为,不擅长现场编程并不意味着你是一个糟糕的工程师,这只是人类在压力下的正常反应。现场编程面试并不能准确衡量一个人的编程能力,反而可能因为压力导致不公平的评估。
删减内容:文章中的一些具体补充剂的研究链接和详细描述被删减,以保持文章主题的集中性。
评论总结
评论主要围绕“现场编程面试是否有效”展开,观点分为支持和反对两派。
反对现场编程面试的观点: 1. 现场编程面试主要测量压力承受能力,而非实际技能。 - "Live interviews measure stress, not skills." (评论1) - "Live coding does suck - worst off, even if you ignore that it biases to stress tolerance, it tests 'leet code' skills for things like reversing a list." (评论6)
现场编程面试可能导致优秀候选人因压力而表现不佳。
- "Some of my favorite coworkers would never pass a modern, top company interview which I can pass, and not because they are worse in general, but due to stress management." (评论14)
- "I’ve seen people give weak in person coding interviews then done perfectly fine on a take home and went on to be fine on the job." (评论3)
现场编程面试可能对年长候选人不公平。
- "We lost so many senior people that I really wished I could work with because they weren’t used to jumping through the hoops and loops of leet code questions." (评论15)
支持现场编程面试的观点: 1. 现场编程面试可以筛选出在压力下表现良好的候选人。 - "Measuring stress tolerance is an important when hiring." (评论16) - "In my own career, managing stress has been a much greater challenge than the technical skills, so if anything this vindicates live coding interviews." (评论20)
现场编程面试可以评估候选人的态度和信心。
- "Coding interviews can also measure attitude and confidence." (评论11)
- "Live interviews are generally excellent at revealing how individuals perform when placed outside their comfort zone." (评论16)
现场编程面试在某些情况下是必要的,尤其是在需要快速响应的职位中。
- "In the startups I worked in, with incidents and critical bugs and being pressured permanently by product managers, even shouted at by the CEO, being stress resistant was part of the job." (评论17)
其他观点: 1. 现场编程面试并非唯一选择,可以考虑其他评估方式。 - "What if companies, idk, looked at the previous work of a potential employee? their github, their portfolio, anything." (评论25) - "The perfect solution, in my view, would be an assessment where the candidate feels relaxed and able to perform at their best." (评论22)
- 现场编程面试的问题可能在于面试官的设计和执行。
- "What makes them stressful is the lack of interviewer training and the abstract, puzzle-like nature of the problems." (评论22)
- "The interviewer(s) interrupted me the moment I started writing any code, constantly interrupting my train of thought." (评论24)
总结:现场编程面试的有效性存在争议,支持者认为它能筛选出抗压能力强的候选人,而反对者则认为它更多测量的是压力承受能力而非实际技能,且可能对某些候选人不公平。