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

2020-11-30 16:13:43 +08:00
 hakunamatata11

Talk is cheap,show me the code.

我面试的话更倾向在白板上写代码,特别是算法面试环节。一方面,白板可以供候选人打草稿,我可以看到他的思考过程;另一方面,脱离 IDE 环境写代码,也能看出代码基本功是否扎实。

此外,白板写代码会有一种技术讨论的氛围,这其实比较还原平常工作时的状态,也能从中看出候选人沟通能力如何,以及是不是适合共事。

以我在 Facebook 做面试官的经验来看,通过白板面试,至少可以看出候选人 3 个方面的能力:

首先是沟通能力,面试官给出一道题,你能不能准确理解题意,能否问出有价值的问题;是和面试官讨论完再做题,或是边沟通边做题,还是埋头写完再解释?这些都可以纳入到面试考察里。

其次是逻辑思维能力,一种情况是你很快做完题,这时面试官一般会继续追问问题,看你能否快速反应和解决。另外一种情况是你不会,但是在面试官的提示下能够 move fast,给出自己的想法和方案,并进一步优化。

最后是代码质量。资深面试官从你写出的几行代码一般就能看出个大概。包括代码有没有写完,代码风格好不好(比如可读性,变量名、函数名命名等)。越高级别的面试官可能越在意你的代码质量。

实际上,确实有很多程序员一旦不用 IDE 或者编辑器,感觉就不会写代码了。有人吐槽没有必要用纸笔写代码,很多公司也认为白板写代码并不能很好地评估候选人的技术能力,所以也出现了一批面试不用白板面试的公司。

Github 上有一个叫**hiring-without-whiteboards**的项目,里面列出了全球范围内超过 700 家面试不用白板、不做算法题的公司。

那么问题来了,这些公司面试不考算法,都面些啥?

这里主要有两类,像美东的公司一般比较看重基础,面试问题集中在项目经验和专业基本功,有点类似国内中小公司的面试风格;

另外一种是 take-home exercise,即家庭作业,一般是完成某个小项目或者 code review。通过之后才有现场面试的机会,而现场面试的内容大多也是接近实际工作的编程项目,一般跟入职后的工作会有一定联系。

比如 Slack 这家公司一直以来保持不考算法的惯例,并且技术面试可以随意查阅参考资料。他们以前发了篇公司如何改进技术招聘的博文,有兴趣的同学可以去了解下。

其实比较下来可以发现,不用白板的面试并没有简单多少。像 Slack 这样的公司更看重候选人代码准确性和代码质量,对细节和设计的关注以及对测试重要性的理解;而国内公司也有阿里这种技术知识点问到你怀疑人生的面试。

所以无论是从候选人还是面试官角度,用纸笔 /白板写代码真的是最简单高效的面试方式了

最后,欢迎来看**九章算法班**首节公开课分享。我会详细讲讲如何高效刷题,面试中如何正确和面试官沟通,以及提高代码质量和培养 bug free 的能力。帮助你最短时间内搞定算法面试,再也不虚手写代码。

514 次点击
所在节点    推广
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/730638

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX