在阿里工作5年, 面试美国小公司竟然挂了?!这科学吗?

最近,一则帖子在国内程序员界被广泛讨论。事情是这样的,一名阿里员工在网上吐槽:

我在阿里工作了五年,去面试一个小互联网创业公司竟然挂了,真是无力吐槽:我就郁闷了,在阿里工作五年,去面试某公司,上来啥都不问,就两道算法题我没有第一时间给出最优解,想了一会儿才做出来,结果就把我挂了,工作那么多年了,还这样面试也是令人醉了。

很快这则帖子便引来了不少同行的关注。

image

有同行表示: 美企都是这种面试风格 ,跟国企完全不同 比起问项目经验、问那些搜索一下就能搜到答案的吹牛皮题目,问算法题要靠谱得多。

image

不过也有些同行对这样的企业嗤之以鼻,表示:

最讨厌这种上来就做卷子的“应试”外企公司了,一个合格的程序员怎么能只看算法!

最后甚至表示:

image

那么,

美企的程序员面试

真的只考察算法吗?

我们来看一下大部分硅谷公司的面试流程。

美企程序员面试流程

在硅谷,过了简历关以后,你还会经历以下“磨难”:

第一步:OA

OA就是online assessment,即在时间限定范围内,线上完成既定题目。

形式:HR以邮件形式发你链接,并告知完成deadline,链接打开后,倒计时开始,进入正式OA。OA时长为1~2个小时不等。

内容:SDE岗位一般就是做2~4道算法题,前端岗位也许会涉及一些基础知识的选择题。

不过OA并不是每个公司都有,常见于一些大公司的entry level hire,由于申请人数太多,公司会用OA来进行初步的人才“速选”。

第二步:电面

  • 技术电面:40 - 60分钟

形式:1-2轮,通常在CoderPad和Google doc上电话做题

内容:1-2道算法题

  • 非技术电面:30分钟内

形式:跟HR聊天

内容:自我介绍、对公司/职位的了解、基本技术问题、期待薪资…

第三步:Onsite

形式:4-5轮面试,白板或电脑答题,总耗时4-6小时

内容:大部分都是算法题 + technical questions,不会有专门的behavior question轮,面试官会把behavior question穿插在技术问题中。

第四步:Review

Onsite Interview之后,HR会开始收集面试官的feedback和其他有用信息,包括你的成绩单等,然后整合成一个packet发给Hiring Committee (HC)等组织进行review,之后制定出offer package。

从Onsite inteview结束到review出结果,整个流程可能需要2、3周,甚至1个月的时间。

这样一看,美帝的程序员面试并非只是考察算法这么简单,但算法的确是重中之重。

这样暴力的“ 算法招聘法

是否科学?

其实这样的招聘方法在硅谷一直受到褒贬不一的评价。在Quora上甚至有这样一个话题:

科技公司这样的“重算法”的招聘方法,难道不会流失掉一部分虽然没在规定时间内做出来题目,但却很有才华的好工程师吗?

一个硅谷startup CTO给出了这样的回答:

“流失好人才?我们不在乎,硅谷本来就是个优秀人才过剩的地方,好的程序员太多太多了,每个人都既有解决实际问题的能力,又有扎实的理论基础,还有深厚的代码功底…

虽然算法题不是最佳方案,但考察算法的时候,实际上也穿插着许多你看不到的考点:

  • 实现算法的时候,可以考察代码能力;
  • 跟面试官讲解算法的时候,可以考察沟通能力;
  • 算法被面试官challenge的时候,可以考察计算机知识体系是否扎实等等…

因此,对于短时间面试来说,这是最有效、最快速,也是最公平的筛选方法。”

image

一位Facebook的Lead Recruiter评论道:

“很遗憾,因算法不过关而拒绝掉优秀人才这样的事情每天都在发生。

但另一方面,如果一个有实力的工程师fail了算法题面试,也说明他们缺乏展示如何找到解决方案的能力。”

那找工作 是不是只要狂刷题,

面试时做出算法题就行了?

前谷歌面试官、来Offer金牌老师闫老师对此提出否定意见,已经辅导过上千名同学进入Google等一线公司的他表示:

算法题只是面试官的考察形式,

在这一形式下,面试官真正想 考察的,

是求职者的 综合能力

且不说,单单靠刷题,而没有具备竞争力的简历,你可能永远走不到面试那一步。

image

其次,只依靠刷题,不懂原理,无法做到触类旁通。

很多只依靠刷题的同学都会有这样的烦恼:当题目变了个样子,或是面试官稍微问得深入一些,就招架不住了。

第三,即使你通过刷题,做出了所有算法题的答案,也不一定会被录用。因为面试官要的不只是正确答案。

通过上面Quora上那位startup CTO的回答大家也发现了,在做算法题的同时,面试官还会考察你的:

  1. coding能力 --> 你是否能写出符合业界规范的代码?
  2. 系统知识体系 --> 你是否能经受得住面试官对你写的解法的疑问,以及follow up question?
  3. 交流能力 --> 你是否能跟面试官解释清楚你的思路?…

靠自己刷题就拿到大公司的offer的同学的确有,但并不占大多数。(而且这种情况多发生于科技公司疯狂招人的前几年)

如今不同以往,公司的招聘标准越来越高,对于大部分同学来说,没有一个坚实的知识体系,找工作就像空中楼阁一样,很难达到预期。

求职,本来就没有捷径。

只有踏踏实实,脚踏实地,提升自己的核心实力,才能让你在职场上,走得更远。