我写了个 bug,谷歌面试官却说:你通过了!

2020-11-11 18:26:52 +08:00
 hakunamatata11

谷歌的 slow hiring 导致今年岗位放开时间较晚,很多同学最近才陆续拿到 offer 。

一边有人反馈面试bar 拔高,算法偏难、加试普遍;也有人却说写了个 bug,依然过了面试...

不少面试者有此疑问:Coding 面试中出现 bug,是不是就凉凉了?

答案是,**不一定!**最顶尖的工程师也很难在面试中一次性做到 bug free,所以通常面试官不会因为代码出现 bug 就挂掉你的面试。他们往往更注重考查:

是否能够意识到有 bug

是否知道如何识别和修正 bug

我写了个 bug,面试官根本不 care

Coding 面试实际上就是个示例,主要为了考察求职者的编程能力,所以不要求严格意义上的 bug free

如果写出 bug,但自己跑过 test case 后改正了,一般也不影响面试通过。

来源:1024bbs

再比如这段 Java 代码:

第 2 行中有一个“大” bug,应该写 add,而不是 insert 。

但大部分面试官并不会吹毛求疵,他们会通过这个代码示例推测:面试者可能不会使用内置的链表类。这一点,面试官有可能根本不 care 。

零容忍的 bug,写完直接挂!

不过有些短板,可能是致命的,直接让你 fail 掉面试。下面这段简单的代码一共出现了 4 个问题:

1. 如果数组为空,此程序将在第 2 行崩溃。 2. for 循环开始于 i=0,但没有必要,应该在 i=1 开始。 3. for 循环的循环条件为<。长度,每次都要提取数组长度,增加步骤。 4. 第 4 行为>。不好

这种情况下,面试官可能会认为:面试者会写代码,但不常写(因为问题 3 )。而且连这样一个基础的 for 循环程序也写不好,简直不靠谱!

以下是面试中的一个真实代码:

这段代码就不仅仅是粗心的问题了,它根本毫无意义。想通过面试几乎是不可能的!

面完自我感觉良好?你清醒点吧

好些人在面试过程中自我感觉良好,但却收到了拒信。他们或许很惊讶:我写的代码“完全正确”怎么会被拒呢?

来源:1024bbs

事实上,仅仅有正确度(做出题目)是不够的!

面试当中,被考察的能力是方方面面的:可能是你的技术知识、代码风格、模块能力、严谨能力等

虽然你在一个题目上做到了 bug free,但如果你在 coding 过程中不小心暴露了你薄弱的分析能力和 coding 技能,也逃不过面试官的“火眼金睛”。

如何提升 coding style 和做到 bug free

在日常 coding 中,培养良好的 coding style 可以帮助你避免面试中不该出现的 bug 。推荐一些资料:

##1. Google Style Guides

谷歌只有一个代码仓库,源代码都放在自行开发的版本管理系统 Piper 中。如此庞大的代码库,没有统一的代码风格,阅读起来是相当困难的。

因此,内部必须遵循《 Google Style Guides 》,而它的代码风格也被业界默认为标准。

##2. 九章算法班 2020 版

刷题超过 3000 道的令狐冲老师,在《九章算法班》中强调过,想拿到大厂面试的 hire 和 strong hire,良好的代码质量是基本要求。提升 coding style 的途径有:

更具体的构建优秀 coding quality,欢迎来试听令狐老师近期新改版的**《《九章算法班戳我即可报名免费试听前四章**~

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

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

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

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

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

© 2021 V2EX