问题

为什么有面试官喜欢让面试者用纸笔写代码?

回答
说实话,面试官让候选人用纸笔写代码,这背后确实有一套挺实在的考量,并不是纯粹的“刁难”或者“复古”。虽然现在 IDE 功能强大,自动补全、语法高亮一大堆,写起来飞快,但纸笔测试依然有它不可替代的价值。咱们就掰开了揉碎了聊聊,为啥有些面试官就爱这一套。

首先,最直接也是最容易想到的,就是“考察基础功底”。

摆脱 IDE 的“拐杖”: IDE 是个好东西,但它太“聪明”了。自动补全帮你补代码,语法检查随时纠错,甚至调试器还能帮你一步步看程序怎么跑。这些都会在潜意识里帮我们绕过一些细节。用纸笔写,没有这些“外挂”,你得自己记住函数名、参数,自己判断逻辑有没有错。这就好比开车,IDE 是有导航、自动泊车的豪华汽车,而纸笔写代码,更像是让你在没有辅助的情况下,自己打方向盘、踩油门刹车,更能体现你对机械原理的掌握程度。
对语法和结构的熟悉度: 很多时候,面试官想看的是你对某个语言的基本语法、常用API的掌握程度。比如,你知道一个列表(List)怎么遍历吗?知道怎么初始化一个字典(Dictionary)吗?用纸笔写,你需要把这些东西从脑子里“调出来”,写到纸上。这个过程会暴露你对这些基本元素的熟练程度。如果连最基本的循环、条件语句写得磕磕巴巴,那说明你在语言本身的理解上还有待加强,光靠IDE“救场”是没用的。
逻辑思维的纯粹展现: 代码最终是服务于解决问题的。纸笔写代码,强制你把思路清晰地梳理一遍,然后转化为代码。在这个过程中,你没办法依赖IDE去“试验”和“纠正”,必须在动笔之前就把逻辑想清楚。这就像数学家做证明题,不能靠计算器一步步试,而是要通过逻辑推导得出结论。面试官通过看你在纸上如何组织代码,如何处理边界条件,如何一步步构建解决方案,来评估你的逻辑分析和抽象能力。

其次,还有一些更深层次的原因,关于“面试过程的公正性和评估的有效性”:

消除环境差异,保证公平性: 想象一下,一个人用的是最新配置的MacBook Pro,IDE丝滑流畅;另一个人用的是配置较低的笔记本,IDE经常卡顿。或者一个人网络连接极好,可以无缝地搜索资料;另一个人网络不好,搜索效率低下。这些外部因素都会影响到面试表现。纸笔测试,在一定程度上“剥离”了这些外部条件,让大家站在一个更公平的起点上。
避免“背代码”的嫌疑: 有些候选人可能把一些常见算法或者面试题目的“标准答案”背得滚瓜烂熟,然后直接在IDE里敲出来。这确实能展示他们写出“正确”代码的能力,但很难看出他们是否真的理解背后的原理。纸笔测试,尤其是在没有提示和搜索的情况下,更难做到“原封不动”地复制粘贴,更容易暴露他们是否真的理解并能“重现”这些代码。
观察思考过程,而不仅仅是结果: 在IDE里,你写一行代码,IDE可能立刻给你反馈。但在纸上,你得把整个函数或者整个逻辑写完,再回头检查。面试官通过看你写代码时的停顿、涂改、草稿(如果有的话),能更直观地了解你的思考过程。他们能看到你是怎么一步步推进的,遇到问题是怎么思考解决的,而不是简单地看到你最终提交了一段运行正确的代码。这种“过程”的信息,在评估一个人的长期发展潜力时尤为重要。
对“健壮性”和“可读性”的直观评估: 用纸笔写代码,尤其是当你有一定篇幅的时候,你会更在意代码的结构、变量命名、注释是否清晰,因为你没有IDE帮你管理这些。面试官可以通过这些来判断你写出来的代码是否“整洁”、“易于维护”,这对于团队协作和项目长远发展是至关重要的。

当然,我们也不能否认,这种方式也有它的局限性。

效率问题: 确实,在纸上写代码比在IDE里慢很多,尤其是对于复杂的算法或模块。
调试难度: 纸上没有直观的调试工具,很多逻辑错误可能不易察觉。
测试能力受限: 纸笔测试很难模拟真实的运行环境和全面的测试用例。

所以,总的来说,面试官让用纸笔写代码,更多的是一种“回归本源”的考察方式,目的是在抛开技术辅助工具的情况下,更纯粹地评估候选人的基础功底、逻辑思维能力、以及对编程原理的理解深度。它不是万能的,但作为一种补充的考察手段,有其独特的价值,能够帮助面试官更全面、更深入地了解一个人。

网友意见

user avatar

此前Max Howell面试时因没有通过白板测试而被Google拒绝,引发了一阵关于白板测试的争议。事情是酱婶儿的:


Homebrew是苹果OSX下面的软件包管理工具,Max Howell是Homebrew的作者(由于国外大量程序员使用苹果电脑进行软件开发,Homebrew在程序员里是人人皆知的著名软件)。这样一位颇有名气的程序员,在参加Google面试时,却因为无法在白板上写出翻转二叉树的代码,惨遭淘汰。随后Max Howell发推文怼Google,表达了自已对白板测试的不满。


Max Howell推特截图


不过,Max Howell被Google拒绝之后,Apple向他抛出了橄榄枝,如今Max Howell已经成为Apple的一员大将,不知道他现在能不能在白板上写出翻转二叉树的代码?


上个月这个问题又被知乎送上热榜,所以,呼声又起:“白板测试究竟是不是面试程序员最好的方法?”“为什么有人喜欢用白板测试面试程序员?”


实际上,面试官喜欢采用白板测试,主要有两个目的:一方面考察应聘者的个人能力与简历是否相符;另一方面,了解应聘者的职业素养,以及与岗位的契合程度。


一、考察应聘者简历的真实性


任何一家公司都希望能够聘请到最优秀的人才,简历关通过后,企业首先要确认的是应聘者的个人能力是否与简历相符。通常来说,纸笔编程的题目都是较为简单的基础算法题或者常见小规模设计题,一般来说不会专门考察某些框架API(至少正常情况下不会让拿个Spring框架套着写功能),并且通常是针对招聘要求而设计。我们举几个简单的例子:



如果个人材料里写着自己熟悉C++11,有两三年工作经验,那么,自己封装一个RAII的、使用智能指针的简单FIFO Queue不会特别困难,并且能一并考察如下知识点:

  • 什么是FIFO Queue(基础数据结构知识)
  • 会不会用模板设计(C++基础)
  • 会不会RAII设计(C++经验)
  • 会不会用智能指针(C++11功能)
  • 会不会顺带考虑到线程安全等相关问题(其它与岗位相关的知识)


如果个人材料里写着自己本科毕业,成绩优秀,那么,简单的冒泡排序或者插入排序,甚至写个快排不会太难,一个简单的面试能够确认:

  • 基础数据结构和算法知识
  • 课程基础是否扎实
  • 是否有基本的算法思想(如快排包含的分治、递归思想)


如果个人材料说自己曾获ACM竞赛区域赛银牌,由于ACM竞赛三人一组,而Regional银牌在自己能力一般,但队友比较给力的情况下也能取得,那么,需要区分此人的实际能力。而对比ACM Regional,Leetcode上的简单题,仅仅相当于现场赛签到题,不会太难,同时能够确认:

  • 基础算法知识是否达到了自己所述的水平
  • 思维是否灵活足以驾驭一般的基础算法问题
  • 对问题分析的细致程度


因此,这类题目,能够在尽量简单的前提下,基本评估应聘者实际水平是否与其简历有较大出入。白板测试过程中,小失误并不会太过降低评价,但如果号称自己熟悉C++11却不会用、号称自己本科毕业成绩优秀却写不出最基本的冒泡排序/插入排序,这种情况下简历的可信度就需要打折扣了。


你看,魔笛手的工程师们即使在酒店里也是备着白板的,而且还不止一块。图片截自视频。


二、验证应聘者与岗位的契合程度


很多人会提出,如果要考察简历的真实性,完全可以在机器上考,没必要进行白板测试,实际上,笔写能够了解到更多细节,包括:


  • 在有限的空间、时间,且氛围相对紧张的情况下,考察应聘者冷静处理问题的能力;
  • 能否快速分解、明确思路,考察应聘者思考问题的方式及工作效率;
  • 是否能在没有参考或辅助的情况下减少修改,考察应聘者的功底及严谨程度;
  • 在拿到代码后即刻询问其思路和思考过程,了解其表述能力;
  • 笔写程序一般来说不容易做到完全正确,出现小的错误恰恰给后续面试过程做铺垫,面试官可以就错误部分进行针对性交流。


所以,总的来说,通过纸笔写代码,可以在短时间内对应聘者简历的真实性、个人基础水平、思维方式以及沟通能力进行考察和评估。



尽管白板测试能够检测出应聘者的部分技能,大多数情况下,应聘者对于这种形式还是会感到不爽:


正常工作环境中,可以访问API,也可以通过搜索找到自已想要的答案,但是白纸与白板杜绝了这些可能;而且白板测试并不能说明应聘者的所有技能,要求一位有多年编程经验的程序员突然在纸上或白板上写代码,可能会让他直接懵掉。这也是为什么有时应届生可以做出白板测试,而身为技术大牛的Max Howell却栽了的原因。


还有一些面试官滥用白板测试,根据测试结果片面的定位应聘者的水平,加重了应聘者的抵触情绪。因此,在效仿Google白板测试刷掉大牛之前,面试官至少要先考虑一下你的应聘者队伍是否像Google那么长,同时,也需要考虑面试官能否驾驭这一面试形式。



当然,如果你的目标公司目前还采用白板测试的方式,而你也乐于接受这项挑战,那不妨提前做些准备,以便在面试时游刃有余的发挥。这里提供几个练习建议:


1、虽然很难猜出面试官究竟要出什么问题,但是你可以根据现有的面试资料列出一份练习提纲;

2、给自己限定一个时间,随机选取一个问题,开始模拟测试;

3、一边做一边把自己的思路讲出来;

4、查漏补缺,搜索相关资料,看别人怎么做,进行思路完善;

5、让朋友做面试官,随机出题,自己在白板上演示出来,并解释给朋友听。


综上,如果你不喜欢白板测试,或许可以找一家不进行白板面试的公司,Github上列出了众多不需要白板测试的公司。不过话说回来,一张小小的白纸(白板)怎么可能阻挡得了我们无坚不摧的程序员跨进理想公司的脚步呢?对吧?



推荐阅读:

有哪些好笑的关于程序员的笑话?

一道淘汰85%面试者的百度开发者面试题

慕课网:程序员都有哪些强迫行为?

【程序员追着设计砍系列】别再设计了!落地太难了!

慕课网:有哪些视频堪称有毒?

暴露真实IP真的没关系吗?

有哪些程序员特有的习惯?

月薪3万的程序员都避开了哪些坑?

双11特辑:狂欢的背后,都有哪些关键性技术值得你学习?

你试过不用if撸代码吗?

类似的话题

  • 回答
    说实话,面试官让候选人用纸笔写代码,这背后确实有一套挺实在的考量,并不是纯粹的“刁难”或者“复古”。虽然现在 IDE 功能强大,自动补全、语法高亮一大堆,写起来飞快,但纸笔测试依然有它不可替代的价值。咱们就掰开了揉碎了聊聊,为啥有些面试官就爱这一套。首先,最直接也是最容易想到的,就是“考察基础功底”.............
  • 回答
    说制造业HR“不喜欢”表现好的面试者,这说法未免有些极端了,也不是所有HR都这样想。不过,确实存在一些情况,让一些经验丰富的HR,在面对那些“过于完美”的面试者时,会打个问号,甚至产生一些顾虑。这背后并非是他们故意刁难,而是源于他们对制造业现场真实情况的深刻理解,以及对用人成本和风险的考量。首先,我.............
  • 回答
    在国内的招聘流程中,HR喜欢打电话通知面试,这背后其实有着一套非常实际的考量和约定俗成的习惯。我们一个个来剖析一下:1. 效率和及时性: 即时确认: 电话是最直接、最快速的沟通方式。HR打个电话,候选人马上就能知道自己有面试机会,也可以当场回复是否方便、是否有意向。这比发邮件,尤其是第二天甚至更.............
  • 回答
    这个问题嘛,其实背后有很多层原因,人性也好,现实也好,都占了不少。我想大概可以从几个方面来聊聊。一、 基本的底线和自我价值的衡量:首先,最直接的当然是生存和生活成本。咱们谁都要吃饭,要住房,要养家糊口,薪资直接关系到这些最基本的需求。没人想接一个连温饱都顾不上的工作。所以,了解薪资是评估这个机会是否.............
  • 回答
    有些父母在别人面前贬低自己的孩子,这种行为虽然令人费解,但背后往往隐藏着复杂的原因,涉及心理、社会以及家庭动态等多个层面。我们可以从以下几个角度来详细分析:一、 心理层面: 掩饰自身的焦虑和不安: 有些父母可能对自己的教育方式、孩子的成长发展存在焦虑和不安。通过贬低孩子,他们可能试图通过“未雨绸.............
  • 回答
    这个问题嘛,其实挺普遍的,很多女生应该都遇到过。男生在女生面前开黄色笑话,背后可能藏着不少心思,有时候未必是大家想的那样简单。首先,最直接的一种可能性,就是吸引注意力,刷存在感。在一些男生看来,性话题是比较敏感和刺激的,用它来打开话题,或者在对话中插入,能够快速地抓住对方的注意力,尤其是如果对方对这.............
  • 回答
    这可真是个好问题,其实说山西、河南人就一定只吃面条,南方人就只吃大米,这种说法有些绝对了。在如今交通物流这么发达的年代,天南海北的美食早就融会贯通了。但是,如果从历史和地理的根源上追溯,这种偏好确实有其深刻的原因,咱们就来掰扯掰扯。首先,得从咱们的“老祖宗”说起——地理环境和作物种植。你想啊,中国这.............
  • 回答
    意面之所以受到如此广泛的欢迎,绝非仅仅是“跟风”那么简单,更多的是因为它本身具备的多元性、适应性、以及背后承载的文化与情感。喜欢吃意面的人,往往是基于以下几个方面的综合考量: 1. 口感与多样性:满足不同味蕾的追求这是最直接也最根本的原因。意面不仅仅是“一种食物”,而是一个庞大的家族。从形状、大小到.............
  • 回答
    随着社会节奏的加快和人际关系的复杂化,我们确实能观察到一种有趣的现象:越来越多的人似乎更愿意向陌生人敞开心扉,而非一直以来扮演着重要角色的熟人。这并非意味着熟人关系不再重要,而是说在某些特定的情境下,陌生人能够提供一种熟人难以比拟的慰藉和安全感。究其原因,我们可以从几个层面来深入剖析。首先,“匿名性.............
  • 回答
    关于您提出的“孔子耻于和劳苦百姓说话,却喜欢在权贵和自己学生面前讲大道理”的观点,实际上是对孔子及其思想的一种误读。孔子并非“耻于和劳苦百姓说话”,而是他的教育方式和理念注定了他的主要传播对象并非直接的劳苦大众,而是那些有潜力接受并传承其思想的社会中坚力量,即贵族子弟和有志向的学生。为了更详细地解释.............
  • 回答
    .......
  • 回答
    .......
  • 回答
    2017年4月9日,那个让无数相声迷热血沸腾的夜晚,《欢乐喜剧人》第三季迎来了巅峰对决的决赛。舞台上,群英荟萃,笑声与掌声交织成一片。然而,在那个激动人心的时刻,一位德高望重的老艺术家——常宝华先生的发言,却在一瞬间成为了全场乃至全国观众关注的焦点,也留下了一段令人回味和思考的往事。当晚,作为《欢乐.............
  • 回答
    这倒不是什么新鲜事,在高管招聘的圈子里,这种情况偶尔会发生。你说为什么呢?原因嘛,其实也挺复杂的,不是一两句话就能概括的。咱们掰开了揉碎了聊聊。首先,得从高管这个群体自身的特点说起。这些人能在职业生涯中爬到高管的位置,通常是经过了千锤百炼的。他们有自己的事业王国,有一定的江湖地位,可能手里握着不少资.............
  • 回答
    这个问题问得很好,而且在实际编程中确实是大家经常会遇到的一个点。我们来深入聊聊 LeetCode 官方 C++ 解题中很多时候不写 `delete` 的原因,以及这是否意味着没有内存泄漏,以及在面试中是否可以这样操作。为什么 LeetCode 官方题解很多不写 `delete`?这背后其实是几个关键.............
  • 回答
    在日本的考学面试中,专业相关问题之所以占据如此重要的位置,其背后逻辑是多层面的,不仅仅是为了考察学生对知识的掌握程度,更在于评估他们是否真正适合这个专业,以及未来能否在学术领域或社会中有所建树。下面我们就来深入剖析一下这个问题。首先,最直接的原因是考察学生对所申请专业的“真诚热爱”和“深入了解”。日.............
  • 回答
    这个问题确实很有意思,也确实是很多求职者,尤其是女性在面试中会遇到的一个“小坎儿”。为什么HR会问“有没有男朋友”这个问题,而且在男性面试官面前,这个问题似乎更少出现,或者说在男性求职者身上出现的频率和顾虑会低很多?我们来掰开了揉碎了聊聊。为什么女性面试官会问女性求职者有没有男朋友?首先要说的是,严.............
  • 回答
    这问题问到点子上了,很多人都有这个疑惑。发工资的不是HR自己掏钱,理论上他们应该希望公司能留住优秀人才,发得慷慨点才对。可现实是,面试时,尤其是在国内,大部分招聘方,包括HR,似乎都有一个默契的倾向——想方设法把你的期望薪资压下来。这里面门道可不少,而且他们这样做,确实能给公司带来不少实际的好处,虽.............
  • 回答
    这种感觉,很多人都经历过,也挺折磨人的。就像你站在一个巨大的自助餐前,琳琅满目,什么都有,但偏偏哪一样都提不起你胃口,最后只是空着肚子走人。这背后其实有不少门道,咱慢慢聊。一、选择过载(The Paradox of Choice)这是最直接也最普遍的原因。你脑子里可能装着几十上百款游戏,Steam愿.............
  • 回答
    .......

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有