你真以为 Howell 被 Google 拒是因为没做出翻转二叉树么?

2015-06-13 08:22:24 +08:00
 ninechapter
Homebrew 的作者Max Howell面试被 Google 拒啦,因为他不会翻转二叉树,然后作者在twitter上开骂:



1. Max Howell 是个什么鸟蛋?
Max Howell 是Mac上著名软件Homebrew的作者,Homebrew是什么?可以理解为Ubuntu上的apt-get,用这个软件可以轻松的装其他的Mac上的软件。主要是服务程序员的。这是一个非常重要的对于程序员来说不可或缺的Mac软件。

他的LinkedIn和Facebook:
https://www.linkedin.com/in/maxhowell
https://www.facebook.com/maxhowell

2002-2007年在读书,2002-2007年在KDE工作,2007-2009去了Last.fm 担任tech lead,2010-2011年去tweekdeck也是担任tech lead。然后2011年开始创业,先后在Racket担任co-founer和在Popular Pays担任CTO。2013年开始,在Mobile Makers Academy上当instructor。

从这份简历来看,应该是一个很牛的人,大学里就开始在企业实习/工作,接着又创业,当co-founder,做CTO。最重要的是作为Homebrew的作者,让他名声大噪。


2. 翻转二叉树是个什么鸟题?
给出一棵二叉树,求这棵二叉树的镜像。如:



你可以去LintCode上试试看做做这题: http://www.lintcode.com/zh-cn/problem/invert-binary-tree/

这个题目在LintCode上的难度属于Easy,根据LintCode的定义,如果Easy难度的题目无法在面试中答出来,确实是拿不到Offer的。

这个题的解法一句话就可以描述清楚:遍历二叉树的每个节点,然后将每个节点的左右儿子对调。

九章上的参考程序如下,只有8行……8行……8行……:
http://www.jiuzhang.com/solutions/invert-binary-tree/?source=v2exmhw



3. 到底为什么被拒?
面试被拒的原因按照惯例公司是不会告诉求职者的。虽然 Max Howell 从简历上看起来很牛,但是他被Google拒了。具体原因是什么?真的是如他所说的不会二叉树镜像么?那么我们首先要知道,IT企业决定是否Hire一个人的标准是什么。一般来说,主要有在下面三个方面的影响因素:

1)求职者的经历的牛逼程度
2) 企业是否有合适的职位给求职者
3) 求职者在面试中的表现

很显然Max Howell满足第一个条件。我们会一般认为,牛逼的人企业就应该给Offer。但是这是错误的观念。第二个条件和第三个条件的重要程度均超过了第一个条件。

对于第二个条件,试想一下如果公司不缺人,为什么还一定要招聘你?再试想一下,这个人在A领域很牛逼,但是公司需要B领域的人才,那么是该发拒信还是Offer?再再试想一下,如果公司空缺的职位所需要的人才只是花10w$请一个应届毕业生就可以搞定,为什么要花30w$来请一个CTO来做?以上三种情况,都极可能会发生在Max Howell的身上。

对于第三个条件,首先我们要知道面试的流程和面试官给求职者评价的依据。对于Max Howell这样的资深Engineer来说,一般来说面试可能包含如下的四个部分:Coding面试,Experience面试, System Design面试,Culture Fit面试。一般来说至少4名面试官会与你交流给你评价。所以你的面试结果并不是由一轮面试和一个面试官决定的,面试官只是根据面试的情况给出一个评价(hire, no hire, strong hire, weak hire),并说明具体原因。最后这些评价会提交给 Hire Commitee,由HR综合所有的评价给出是否Hire的决定。做二叉树镜像属于Coding面试,算法的考察是一个方面,Coding能力的考察也是一个方面。因此,只是说因为不会二叉树镜像而被拒,是不全面也不负责任的说法。公司并不会给你一个feedback告诉你为什么被拒,只是会告诉你,“这是一个艰难的决定,你很优秀,但是我们没有合适的职位给你,我们期待之后能够再联系”。另外还需要说明的是看似不起眼,但是非常重要的Culture Fit面试。在这一轮面试中,面试官主要考核面试者的内容是看看面试者是否能够和同事们愉快的工作。这方面没有一定的参考标准,但是从Max Howell的经历来看,这一轮的面试很可能无法通过。首先他很Geek。笔者周围的朋友中不乏技术非常牛逼的Geek,但这些人因为太Geek,EQ往往都很低,无法与同事愉快的一起工作,自己一个人干可以,但是在团队中,就非常糟糕,比如总觉得同事都比他傻逼,总觉得老板都是傻逼等等,虽然事实上可能他是对的,但是你愿意和这样的同事一起工作么?从Max Howell的工作经历中,依稀可以看到这一点——每份正式工作都不超过2年,在跳槽不那么频繁21世纪初,这是不正常的。

4. 到底怎样才能拿到Google Offer?
根据前面的分析,我们猜想Max Howell可能被拒绝的原因有如下的一些:

1) 因为不会写二叉树的镜像,表现出来的算法能力薄弱和无法与同事(面试官)一起合作解决问题的能力有欠缺。
2) 经历很牛逼,但这些经历更适合去一家创业公司,而不是Google这样的大公司。大公司更需要能够与人合作的人才。小公司才更需要单枪匹马的人才。
3) 有创业经历者,大公司在招聘时会有一些考虑。因为很可能呆不久就又跳槽了,或者挖人走,也可能不专心工作,自己搞项目。
4) 没有合适的职位提供给他,或招聘他的成本太高。

那么到底怎样才能拿到Google Offer呢?简单的思路是,避免上面这些被拒绝的原因即可:

1) 提高算法能力和Coding能力。算法能力体现的不只是算法的知识储备本身,更加是一个人是否是聪明的人的标志。对于Google这样的大公司而言,他不需要你已经具备在某个领域的很强的战斗力,而是希望你足够聪明就可以了。大公司是很愿意花时间去培养你的。而小公司正好相反。
2) 增强与人沟通和合作的能力。Teamwork是每个大公司都强调的求职者必须拥有的素质之一,一个teamwork方面有欠缺的求职者不仅仅无法做好自己的事情,更加会影响到团队中的其他人。以解决算法面试题为例,其实面试并不是一场“考试”(这是大多数人的误解),而是你与未来同事(面试官)一起合作解决问题的一次模拟。你是可以从面试官那里得到提示和帮助来一起解决算法问题的。一般面试中也会尽量避免算发性特别强的面试题,所以一般只是一些简单的如“二叉树镜像”这样的问题,根本没有难度,做不出来极有可能是求职者过于自负的心理抵触做如此简单的事情。
3) 别告诉面试官/HR你创业过。或许这个经历很牛逼,但那只是说明你适合去小公司,不适合来Google这样的大公司。
4) 在合适的时机找工作。通过内部员工或公司网站了解公司的招聘情况,是否缺人等等。如果你看到Google正在裁员,你被招聘的可能性是很小的。眼光放开阔一点,硅谷并不是只有Google才是好的IT企业。
17476 次点击
所在节点    程序员
59 条回复
momo5269
2015-06-13 15:13:40 +08:00
最后发现是软广
inroading
2015-06-13 15:16:19 +08:00
这篇文章写得不错,植入也非常到位
akira
2015-06-13 15:32:51 +08:00
看完觉得怪怪的,里面充满各种猜测,论据根本站不住 脚。。。。

回头看才发现是篇软文呀。。
iluhcm
2015-06-13 15:36:37 +08:00
看到后面再看作者的图像和标题,才发现我错了
dahvlh
2015-06-13 15:52:17 +08:00
这么用心的软广应该点个赞才对呀 干嘛屏蔽
chengzhoukun
2015-06-13 15:56:23 +08:00
抄知乎的回答最好写个转吧
iichenbf
2015-06-13 15:56:42 +08:00
骗钱的
chengzhoukun
2015-06-13 15:59:49 +08:00
tnx2014
2015-06-13 18:50:36 +08:00
本来以为自己写的,没想到是抄袭别人的,呵呵。我就说广告者怎么变得这么有素质了。
mathgl
2015-06-13 19:49:40 +08:00
好长,看了跟没看一样,没有八卦也没有干货。
bin456789
2015-06-13 19:52:51 +08:00
浓浓的知乎味
jiongjionger
2015-06-13 22:39:21 +08:00
广告就直接发,别发这种软广,真让人反感,浪费时间。
baiyemao
2015-06-13 23:12:34 +08:00
可以砍了么,这种.
pysama
2015-06-13 23:12:54 +08:00
看第一句,然后下意识的看了下头像,就知道是软了。

不过我还是看完了。
ninechapter
2015-06-14 00:58:52 +08:00
@tnx2014 @chengzhoukun 我们是在得到该作者允许下发的呢。
alexapollo
2015-06-14 01:55:18 +08:00
其实很多时候面试就是跟你讲一个名词,比如:翻转二叉树
很多人连这个名词都没听过。。。。。
几年前我刷完了leetcode,但我表示我也从没听过这个名词。。。。
df4VW
2015-06-14 02:07:15 +08:00
废话连篇
toode
2015-06-14 08:04:31 +08:00
我就想知道这哥们为啥悲剧的,你丫却BB这么多
tnx2014
2015-06-14 22:53:17 +08:00
@ninechapter 允许的也应该说明原作者和出处,直接复制粘贴就是对别人不尊重。

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

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

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

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

© 2021 V2EX