如何看待 Max Howell 被 Google 拒绝?
145 个回答
昨天Max本人刚在推上吐完槽,今天Leetcode就加入一道最新的invert binary tree题目,关键该题目的级别被设为了easy。
因此只要答对这道题,你就可以超越世界级大牛,问鼎码林之巅(逃
话说这个通过率这么低是怎么回事?莫非是广大程序员故意刷低通过率来表示对Max的支持么。。。(经评论提示,是题目刚上的时候,提交总是Compile Error。所以AC率很低,后来leetcode修正了)
--------------------------------最新更新--------------------------------
才几分钟过去,这道题的AC率就要突破20%了。
你们也太不给Max面子
--------------------------------1小时后再次更新--------------------------------
AC率已经通过30%了,绝对是Leetcode建站以来最火的一道题。有人甚至发帖觉得Max不可能连这都不会:
该题目的讨论区正在往贴吧style发展:
这本是一个面试官放水,求职者水过的喜剧片,却被主角演成了逗比。
这是我朋友在推上确认的原题细节,应该没有什么陷阱在里面。
简单说来就是反转二叉搜索树。
都不是要你把树倒过来,只是反过来而已。
来模拟一下当时的场景。
主角是Homebrew作者这件事,想必在简历上不会不写,进而面试官自然不会不知道。
(面试官:这么个明星程序员来面我厂,一定要让他过!不要出太难的题,但也不能太直白,不然会侮辱大牛的智商。恩,既要简单又要逼格,树比较合适了,树里最简单的就是二叉树,考点最多的就是二叉搜索树了。就决定是你了BST。我真体贴!)
面试官:来,把这个二叉搜索树的顺序反转一下。
Max:(想了一分钟)不会。
面试官:。。。。。。
这叫我怎么帮你?
毕竟二分搜索都不容易写对(By 编程珠玑),这题说不定有蹊跷。所以这里我写写这题的细节,但愿没有问题哈。
void invertBST ( Node root ) {
if ( root == null )
return;
Node t = root.left;
root.left = root.right;
root.right = t;
invertBST ( root.left );
invertBST ( root.right );
}
swap就不用写了。这和最最最基本的先序遍历没有差别,随便哪本数据结构的书上都会写。这跟ACM没关系。老人家要面试不刷题可以理解,但如果忘记了基础知识,总要复习下吧。我都可以想象follow-up是用循环代替递归实现了。。。
这个题稍微有点犹抱琵琶半遮面的感觉,并不是直接告诉你把左右子树交换一下,但绝对是白板代码里最简单之一了,业界良心,比stoi还简单。
本来觉得是主角运气好,心想我自己怎么没遇上这种题,后来觉得更有可能是因为主角是homebrew作者,因而面试官想让主角水过,结果送分上门后主角拒绝签收。。。
面试时脑抽很正常,面试完还发推瞎喷人放水放得不够就有点暴露智商了。
只想对主角说:然而homebrew还是很好用的,谢谢啊。
少侠留步。------------ 补充点严肃内容 -------------
在最近和我的老板的老板的一次会议中,我问他对这个问题怎么看。以下是他的回答。
他的第一反应是:此人被拒应该不光是因为做不出这个简单算法题,他身上还有其他的问题。
十几年前,我们倾向于招聪明人,牛逼工程师,不关心他在其他方面的表现,因为我们只需要他的大脑。
现在,我们要招好工程师,他可能不是一个伟大的程序员,但他可以和所有人处得来。如果一个牛逼工程师有其他的非技术问题,以至于同事们都不想和他共事,那么我们将无法培养一个好的团队,我们的业务也就无从扩张。
这个人做不出来这道简单的题目,这没什么,但他在面试结束后跑到推特上bb,就很能说明他在其他方面的问题了。
我认为Google做了一个正确的决定。是我我也不会招他。
另外,十几年前我面试的时候,在第一轮电话面试我也被问了一道很简单的题。当时我说,如果以后的工作是做这些,我对此不感兴趣。但我仍然对面试官口述了我的解题思路,只是没有纠结于实现细节。
我最终通过了面试。
背景:老板的老板在顶级公司当了多年的manager,之前有十数年的软件工程师经验。
同样是鄙视算法题,各位看出其中的区别了么?
附一篇Google员工写的面试经验:http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html