Why I Stopped Interviewing with Companies That Require a Coding Test

2025-05-24

为什么我不再参加那些要求编码测试的公司的面试

您可能熟悉阿尔伯特·爱因斯坦的一句名言:

"Everyone is a genius. But if you judge a fish by its ability to climb a tree, it will live its whole life believing that it is stupid."

现在存在一些争论,爱因斯坦是否真的说过或写过这句话,但尽管如此,这句话的智慧听起来却是真实的:

如果您用相同的标准来评判每个人,那么您可能无法获得准确的成功衡量标准。

一幅漫画描绘了一只猴子、一只企鹅、一头大象、一条鱼、一只海豹和一只狗,他们被要求爬树进行一项公平的选拔测试。下方引用了阿尔伯特·爱因斯坦的名言:“人人都是天才”。

遗憾的是,在我作为技术行业专业开发人员工作 7 年多的时间里,我发现衡量开发人员和程序员成功的标准在大多数情况下与成功所需的实际技能不符。

如果您曾经尝试申请工作或面试某个职位,那么很有可能您遇到过这个指标:编码测试

编码测试有多种形式,但其核心目标是测试你对计算机科学原理、算法和通用计算机科学知识的熟练程度。编码测试可以在白板上进行,也可以在编码沙盒环境中进行,或者在实时虚拟环境中进行,面试官会要求你共享屏幕并观察你的工作。

从根本上来说,编码测试本身并没有什么问题。它们只是衡量开发人员或程序员能力的工具,可以相当一致地适用于大多数求职者。

但与任何工具一样,如果使用不当或没有正确理解其用途,则弊大于利。

那么让我简单总结一下为什么我不再去那些需要编码测试的公司面试。

注意:我特意使用了“要求”这个词,因为我并不反对公司将编码测试作为评估候选人的众多指标之一。我特别指的是那些通过编码测试来评估所有技术开发人员/程序员候选人,并且没有其他编码测试选项的公司。

1. 缺乏关心或关注

所以,从宏观角度来看,我能理解为什么编程测试如此有用。它能让招聘团队快速筛选大量候选人,并提供了一个相当简单的衡量标准来评判候选人。大多数大型科技公司在面试的初始阶段都会使用编程测试来剔除“能力低下”的候选人,这绝非偶然。

但正是因为这个原因,将编码测试作为面试流程的一项要求,显示出面试官对候选人缺乏关心或重视。这表明,面试流程的目标是淘汰候选人,而不管他们的整体实力如何。

无论候选人是自学成才的程序员,还是在行业中耕耘数十年的高绩效开发者,亦或是初次寻求机会的大学生,编程测试都只会基于单一指标来评估你。如果你曾与多家大型公司的招聘人员或人力资源专业人士交流过,就会发现它才是你获得机会的最终门槛。

女人漠不关心地耸耸肩

作为一名曾担任过面试者、面试官,有时甚至只是观察过技术面试的技术专业人士,我发现编码测试可用于在某种情况下检验开发人员的经验和技能。

我曾亲眼目睹过,一个极其优秀的程序员在面对一道令他们难以解答的编程题时崩溃,而我后来发现,面试官根本不知道该如何解答。面试官只是在网上找到了一些常见的编程题,然后把它们展示给候选人。幸运的是,我能够参与到面试中并“介入”。这个故事最终有一个圆满的结局,但并非每一次面试都会有一位“旁观者”参与其中。

我个人曾经参加过一些面试,在这些面试中,我在所有与实际角色相关的技术问题上都表现得非常出色(正如面试官在过程中明确指出的那样),但却不再被视为可行的候选人,因为我在尝试解决一个永远不会在工作中使用到的深奥算法编码问题时遇到了困难。

就我个人而言,面试过程中的编码测试要求表明,雇主和招聘团队并不真正了解什么是优秀的开发人员,以及如何衡量真正的成功。他们只想找一些简单的方法来筛选候选人,并尽量减少与候选人的互动,直到他们进入面试的后期阶段。

2. 一些候选人处于极大的劣势

这一点对我个人来说很有启发,但有些情况下,编码测试对于在公司寻找机会的候选人来说极其不公平。

想象一下,如果我们把我在第一点中提到的一切都抛诸脑后,想象一下,所有编码测试都由真正关心潜在候选人的招聘专业人员和团队进行。即使每个面试官和招聘过程中的其他人都心地纯洁,编码测试仍然会给原本能力出众、有价值的候选人带来过重的负担。

为何如此?

归根结底,有些人在代码“测试”环境中总是表现不佳。他们可能是学习障碍者,可能是焦虑症患者,影响了测试表现,也可能是因为背景原因导致测试材料极其困难。请注意,这并不是一份详尽的清单,而只是一份限制编码测试表现的代表性因素清单。

对我来说不幸的是,我总是在高压测试环境中挣扎(问问我的大学 GPA 就知道了😅)并且我也在编码测试中挣扎,因为作为一名自学成才的程序员,算法和 CS 概念之类的东西是我直到后来才真正遇到的。

由于这些因素,编码测试变得极其困难。即使在我表现“还行”的编码测试中,感觉仍然不太好。尽管我在任何工作岗位上都表现得非常出色,但在大多数情况下,编码测试指标都会显示我完全不称职。

女人额头靠在笔记本电脑键盘上,一脸沮丧

有一次,我参加面试,几乎每个环节都表现得非常出色。面试快结束时,招聘人员给了我很棒的反馈,并准备结束当天的面试。(注:这是一次长达数小时的现场面试。)临走时,招聘人员问我是否愿意接受公司一位“高层”的“额外”面试,我欣然接受了。但我当时并不知道,他们要对我进行一次“测试”。不到15分钟,我就丢掉了这份工作。我的焦虑彻底摧毁了我。尽管面试过程中其他人认为我能力出众、合格,但这次“测试”的失败却让我彻底失去了机会。

那是一次非常个人的经历,但我感觉我可能不是唯一一个因为考试成绩不佳(有些考试甚至不涵盖实际工作中需要用到的技能)而被立即取消职位资格的人。

3.不值得!

在面试方面,我有一个个人信念,如下:

“你已经知道你知道的事情了,不需要准备!”

再次强调,这只是我的个人信念(我不指望其他人也这么认为),所以我面试时的心态一直是除了复习一下已有的知识(比如梳理一下头发,打扮得体😅)之外不做任何额外的准备。我希望面试官能够最真实地反映我的技能。我希望他们看到的是我在日常工作中的样子。

过去我曾多次被告知需要“为这次面试做准备”。然后他们会给我发一系列链接或PDF文件,教我如何准备这次面试,以及“通过”面试需要学习的必要技能。

当我在这个行业寻找第一份工作时,我几乎没有任何经验或知识可以证明,但我还是挺理解的。公司需要知道我能够学习,并且愿意接受挑战,所以公平起见。但有趣的是,我在这个行业找到第一份工作时,并没有学习或参加任何明确的测试;他们确实测试了我的知识,但测试内容与工作职责本身相关。

男士调整手腕上的智能手表

现在,作为一名经验丰富的专业人士,我个人拒绝为了面试而学习那些工作中用不到的技能。这不值得

由于生活忙碌,加上全职工作又很难抽出时间学习,大多数情况下,我被要求学习一些我几乎从未接触过、也永远不会在日常生活中用到的概念和材料。很有可能,考试通过后,我找到工作后,可能永远都无法有效地运用所学的知识。

我时不时会考虑是否应该学习编程考试,但后来我意识到我更愿意花时间学习那些未来很可能会用到的技能。在很多方面,我觉得要求应聘者学习面试技能不应该成为标准。你应该根据应聘者现有的技能来评估他们,而不是根据他们目前不具备的技能。


说到底,这完全是我的个人观点,源于我在这个行业的经历,但我很想听听其他人的想法。我并非完全反对“编码测试”,但我确实觉得它在科技行业被过度使用和/或滥用了。至少,我认为应该有编码测试的替代方案,或者它不应该被用作面试过程中的“把关”机制。与其说是那样,不如说它应该像某些求职面试过程中的行为测试一样,作为参考,而不是决定性因素。

那么,你们觉得编码测试值得吗?你们不同意我的观点/看法吗?我是不是理解错了什么,或者说我的观点不太合理?

请在下面的评论区留言告诉我。我很想听听你的想法!

谢谢阅读,我的朋友们,

布拉德斯顿·亨利


如果你有兴趣了解我认为更好的面试方法,请查看我关于技术面试方法的博客:

===鸣谢===

  • 封面照片:来自 Pexels 的 Monstera
  • 教育系统照片:未知
  • 耸肩的女人 照片:Polina Zimmerman 来自 Pexels
  • 失望的女人 照片:Andrea Piacquadio 来自 Pexels
  • 男士智能手表图片:cottonbro from Pexels

==== 在社交媒体上关注我 ====

https://linktr.ee/bradstondev

文章来源:https://dev.to/bradstondev/why-i-stopped-interviewing-with-companies-that-require-a-coding-test-2j6n
PREV
想要获得招聘人员的关注?只需⌚ 5​​ 分钟即可构建这个🔥项目🚀,打造你的作品集!入门指南🚀 依赖项⚠️ 文件夹设置🎪 服务器设置🌀!创建路由器⚡!创建控制器⚡!数据模型❄️!前端👀!总结🙏
NEXT
不使用 Docker Desktop 在 Windows(WSL)上安装 Docker