面对现实吧,我们行业的技术面试流程存在缺陷

2025-06-04

面对现实吧,我们行业的技术面试流程存在缺陷

资源

最初发表于deepu.tech

这个话题已经讨论和争论了很长时间,有无数的文章网站专门讨论它。但问题仍然存在。

我一直想写写这些,但一直拖延着。今天看到下面这条推文后,我终于决定动笔了。

流程中断

所以我想你应该明白我在说什么了。没错,IT行业的技术面试流程确实有问题。它充满偏见,建立在对软件开发人员应有的旧观念和不切实际的期望之上。我想我们都难辞其咎,因为我们没有对此进行足够的反击。以下是目前技术面试中最常见的做法。

白板

在白板上解决问题,包括在白板上编写伪代码或实际代码,或者绘制流程图/技术图。
大多数IT公司,包括大多数知名公司,在评估某人的技术可信度时,都遵循这种过时的流程。

实时编码

在有人监督的情况下现场编码,或者通过远程会话进行编码,由他人监督你的工作。大多数情况下,这些作业会被要求在你不熟悉的IDE或环境中完成。

编码挑战

在HackerRankCodility等平台上解决编程难题。这通常要求你在规定时间内完成一些简短的编程题,大多数这类平台可以追踪你的分步输入,并且大多会提供你可能看不到的自动化测试。这些挑战通常需要你在不熟悉的环境中工作。编程难题并不好,因为它也容易引起焦虑,而且没有太多机会提问或理解手头的问题。但至少它们不像白板和现场编程那么糟糕,因为你仍然可以在方便的时候进行这些操作,并使用外部资源进行查找。

带回家的作业

面试官会给你一个小程序或一个问题,让你根据自己的时间安排自行解决,通常也有最长的时间限制。你可能需要与公司反复沟通,甚至可能需要在面试中解释你的解决方案。虽然家庭作业比这份清单上的其他选择更好,但它仍然很耗时,如果你同时申请多个需要家庭作业的工作,那么你将花费大量时间来完成作业。

为什么白板和实时编码不好

虽然编程挑战和家庭作业并非特别好,但它们不像白板编程和现场编程那样糟糕和带有偏见。这些要求你在陌生的环境中工作,没有IDE或代码编辑器之类的资源。最重要的是,你没有开发者工具箱里最好的工具——Google和Stack Overflow :)

我们当中有多少人可以坦诚地说,即使没有自己喜欢的 IDE、工具和 Google,我们也能发挥出最佳水平?不管你喜不喜欢,这都是事实,那么技术面试又有什么不同呢?

为未来的员工提供与现有员工相同的面试舒适度和工具。效果可能会非常惊人。

焦虑和压力

这些方法旨在制造焦虑和压力。大多数人都不太适应在陌生人面前执行复杂的任务,因为陌生人会评估你的一举一动。当然,能完美完成这些任务的人不多,但剩下的人呢?能够在压力下表现良好并非优秀程序员的特质。你又不是在为情报机构当黑客(还记得电影《剑鱼行动》中那个流行的NSFW场景吗?)。

你不是《剑鱼行动》里的休·杰克曼,也不是情报机构的黑客

我们大多数人在现实生活中从未在如此大的压力和表现焦虑下工作过(我只是在谈论有人在你身后监视和评判你的情况),你可能会承受不相关的焦虑和压力,而这些时候我们将无法正常工作,我们可能会请病假等等,所以期望某人在工作压力下完成这些任务有什么意义呢?

我通常在面试中表现不错,解决编码难题和其他问题都没有问题。有一次,在一家知名公司的开发倡导者职位的技术面试中,面试官突然要求我在 Zoom 通话中当场修复一个阶乘代码片段,事先没有任何暗示这是面试过程的一部分。我已经解过一千次阶乘了,见鬼;我一直用它们作为递归的例子。尽管如此,我还是完全僵住了,我的大脑停止了运转,我甚至无法阅读那四行代码并理解它,因为我的大脑已经僵住了,我感到非常焦虑,我开始表现得像个一年级学生,接下来的几分钟一直在胡言乱语。焦虑是如此难以忍受,我要求他们结束面试。如果我知道这是面试的一部分,我绝不会接受这次面试,因为我认为给自己施加如此大的压力不值得。

冒名顶替综合症

冒名顶替综合症在软件行业非常普遍,深受其害的人是这些过时招聘方式的重灾区。被迫进行白板测试或现场编程只会让情况变得更糟,如果你碰巧在这些方面失败了,那就更糟了。你会失去信心,开始相信自己不够好。这通常与上面提到的焦虑症状相伴而生。

偏见

北卡罗来纳州立大学( NCSU) 和微软最近的一项研究表明,白板面试在心理上更倾向于男性而非女性,是一种“反女性心理压力测试”。这些面试流程测试的是怯场而非编码能力。显然,这些流程类似于“特里尔社交压力测试”,这是心理学家用来诱导压力的黄金标准程序。因此,该流程不仅偏向女性,也偏向易受社交焦虑或表现焦虑、冒名顶替综合症等影响的人群。

结论

一开始我就说我们也要承担部分责任。为什么?因为在大多数仍在沿用这些面试技巧的公司里,这并不是公司管理层强制要求或制定的某些标准,而是由负责招聘的人(招聘经理、开发人员、团队负责人)来决定流程。所以,如果你有能力影响招聘实践,却没有尝试改变这种现状,那么你也是问题的一部分。那么,我们该如何改变这种现状呢?

  • 与公司招聘经理和负责招聘的人员沟通,向他们解释白板面试和现场编程面试的问题,并敦促他们改变流程。如果你是团队负责人,请确保你的招聘流程中不存在这些问题。
  • 拒绝那些包含白板或现场编程的面试,并向他们解释你拒绝的原因。我以前就这么做过很多次。当然,如果你急需一份工作,这可能不太现实。在这种情况下,问问他们是否愿意做一些编程挑战或家庭作业之类的事情,并解释你为什么这么做。如果他们仍然坚持,请在最终做出录用决定后,诚实地反馈你的感受。
  • 如果您在公司中拥有权力或影响力,请公开反对这些做法

善待面试者的公司也会更好地对待其员工。

资源


如果你喜欢这篇文章,请点赞。我很乐意在评论区听到你的想法和感受。

您可以在TwitterLinkedIn上关注我。

封面图片来源:Scott GrahamUnsplash上拍摄的照片

文章来源:https://dev.to/deepu105/let-s-face-it-we-have-a-broken-technical-interview-process-in-our-industry-56j2
PREV
我对 Rust 的第二印象以及为什么我认为它是一种很棒的通用语言!
NEXT
如何清理你的 Docker 环境 清理你的 Docker 设置 清理一切