Hacker News 中文摘要

RSS订阅

实时编程面试衡量的是压力,而非编程技能 -- Live coding interviews measure stress, not coding skills

文章摘要

作者通过自身经历和科学研究指出,现场编程面试容易因压力导致表现不佳,即使问题本身并不复杂。作者曾在Toptal的现场编程测试中失败,但事后轻松解决了同样的问题,说明压力对大脑的影响是主要原因。

文章总结

标题:现场编程面试的弊端

主要内容:

作者对现场编程面试持批评态度,认为这种面试方式并不能准确评估候选人的编程能力,反而可能因为压力导致候选人表现失常。作者通过自身经历和科学研究,详细分析了现场编程面试的弊端。

详细内容:

  1. 个人经历:作者曾在一家知名公司(Toptal)的面试中通过了初步筛选和90分钟的在线编程测试,但在30分钟的现场编程测试中未能完成任务。然而,几小时后,作者在没有压力的情况下轻松解决了同样的问题。这一经历引发了作者的思考。

  2. 压力对大脑的影响:在高压力、时间紧迫的情况下,大脑会进入“战斗或逃跑”模式。杏仁核被激活,皮质醇水平飙升,负责复杂推理和工作记忆的前额叶皮层功能受损。这导致工作记忆能力下降,使得候选人在现场编程中难以清晰思考,甚至忘记刚刚输入的代码。

  3. 科学研究:作者引用了一项由微软研究人员进行的科学研究,该研究比较了候选人在私人和公开环境下的编程表现。结果显示,在公开环境下被观察的候选人得分仅为私人环境下的一半。此外,研究还发现,在公开环境下,没有一位女性候选人通过测试,而在私人环境下,所有女性候选人都通过了测试。这表明现场编程面试对女性候选人尤为不公平。

  4. 现场编程的误导性:许多公司将现场编程面试视为评估候选人编程技能的手段,但实际上,它更多是测量候选人在压力下的表现。作者指出,那些在LeetCode练习中表现不佳的候选人,可能在日常工作中是出色的工程师,能够编写高质量的代码和文档,并调试复杂的系统。

  5. 缓解压力的方法:尽管无法改变现场编程面试的普遍性,但作者建议通过模拟面试、使用平台(如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)

  1. 现场编程面试可能导致优秀候选人因压力而表现不佳。

    • "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)
  2. 现场编程面试可能对年长候选人不公平。

    • "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)

  1. 现场编程面试可以评估候选人的态度和信心。

    • "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)
  2. 现场编程面试在某些情况下是必要的,尤其是在需要快速响应的职位中。

    • "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)

  1. 现场编程面试的问题可能在于面试官的设计和执行。
    • "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)

总结:现场编程面试的有效性存在争议,支持者认为它能筛选出抗压能力强的候选人,而反对者则认为它更多测量的是压力承受能力而非实际技能,且可能对某些候选人不公平。