你真以为 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企业。
17423 次点击
所在节点    程序员
59 条回复
yxzblue
2015-06-13 08:32:39 +08:00
没啥
vietor
2015-06-13 08:34:08 +08:00
自干五思维,楼主哇
wzxjohn
2015-06-13 08:38:19 +08:00
我只能说,这篇软广不错。
txl263
2015-06-13 08:42:09 +08:00
v2ex上的软广都这么高大上
soyking
2015-06-13 08:46:48 +08:00
道理我都懂,但是为什么Google没有要Howell呢?
miukal
2015-06-13 08:52:09 +08:00
关于影响因素2,Max 在原推下面回复说是面试 iOS tools 职位的,所以Google有对应职位的。而且我猜Google这样的公司应该不会碰到一个自己需要领域的大牛,但是因为只需要一个应届生干活就给拒了吧。况且如果真不需要大牛,完全可以别请他来面试的。
影响因素3,他能管理一个大型开源项目,与人沟通能力应该不是问题?
大公司不喜欢创业过的,这个不了解,真的有这个事吗?Google也收购了不少创业公司,很多不就是为了人才收购吗?
bbx
2015-06-13 08:55:28 +08:00
楼主纯扯淡,google确实有可能因为不会刷题就据了你,因为大部分的面试官之前可能就是刷题进去的,什么样的人招什么样的人,不过我也并不了解整个事件。
xcv58
2015-06-13 08:57:11 +08:00
LZ 想太多了吧。

后来才发现是软广。
qqjt
2015-06-13 09:04:04 +08:00
这个完全是yy出来的吧
ariza
2015-06-13 09:12:02 +08:00
不觉得第二三点比第一个条件重要得多
hahasong
2015-06-13 09:21:39 +08:00
楼主这么吊,是在谷歌吗
zomco
2015-06-13 09:21:43 +08:00
坐等“我就是面试Howell的那个HR”系列
iyangyuan
2015-06-13 09:30:11 +08:00
毫无营养的文章
susanDao
2015-06-13 09:43:27 +08:00
面试嘛,我一直觉得运气实力一半一半
kiritoalex
2015-06-13 09:49:45 +08:00
楼主你是在Google的HR部门工作还是Google的员工啊
lsmgeb89
2015-06-13 09:52:27 +08:00
我想说这软广好长~~
ZhaoMiing
2015-06-13 09:55:50 +08:00
看lz的头像和文内链接所以这是个软文啰?
Rorschach
2015-06-13 09:56:38 +08:00
"这是一个非常重要的对于程序员来说不可或缺的Mac软件。"

你没觉得这句话读不通吗?不应该是“这是一个对于程序员来说非常重要的、不可或缺的Mac软件。”
sacuba
2015-06-13 10:05:39 +08:00
@Rorschach 我感觉他这是英式汉语
PP
2015-06-13 10:05:42 +08:00
除认为“避免被拒思路”第3点有较大争议外,对其余观点基本无异议。

这篇文章从实务出发,比较有价值,为何诸位如此的排斥?放任自身“洁癖”倾向,甚至任其影响自己的判断标准和选择能力,一面得意于对小小瑕疵的敏感,另一面却草率的拒绝有价值的知识和经验,这种做法睿智吗?

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

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

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

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

© 2021 V2EX