《神秘的程序员们》漫画 怎样在技术面试中刷掉牛逼的程序员
怎样在技术面试中刷掉牛逼的程序员
我是高级 HR,我面试了很多看起来很牛逼的程序员,最后我把他们都刷掉了。我捍卫了公司文化,我上知乎我自豪。
Homebrew 的作者 Max Howell 发了一条推,说因为没法在白板上手写翻转二叉树的算法,没通过 Google 面试。
我们曾经画过的这期漫画,描写了不少面试失败的奇葩案例。没想到在 Google 又出现了。有人说算法很重要,有人说算法不重要也能写程序。在不同的背景下,这两种完全相反的观点有可能都是正确的。大部分公司招聘工程师都会有算法面试,但这种面试并不是考验如何背诵算法实现,这对于刚应付过一堆考试的应届毕业生实在太容易了,对于工作 10 年的资深工程师反而不那么简单。算法面试真正目的,并不是要一个标准答案,而是让面试者和面试官一起聊聊一个相对复杂问题的解决方案。这个过程会有很多考察的点,在技术和思考模式之外,甚至可以考察性格和表达能力,或者合作精神。
可惜大部分公司的面试中,算法面试当然是有的,可是只是冷冰冰的做一道题,面对的是 HR。他们当然不懂实现过程,就看一下能不能做出来,做出来结果跟标准答案是不是一样。漫画里面提到的,翻转一个单向链表,标准答案是递归,辛苦实现了迭代算法的面试者反而被淘汰,这种事情是真实发生过的。
当然了,另外一种极端看法是根本没必要考算法,因为工作中压根用不到。事实上,没有什么程序不用到算法,只不过算法常常被封装到库里面,程序员并不去关心实现而已。(如果碰上一个每个算法都要自己实现的家伙,你要小心了,这家伙很可能让项目变得一团糟)很多公司会用讨论一个更具体的问题方式来替代算法面试,效果也不错。但没必要关心算法,甚至鄙视精于算法的程序员,这种观点显然是错的。
算法面试这种面试形式,和算法本身一样,要明白为什么这样做,这样做的意义是什么,才有可能正确得使用它。但不幸的是,我认为 HR 部门通常不具备这个能力,需要有经验的工程师才能有效果。
当然,如果公司使用算法面试的目的是筛掉一些候选者,降低面试成本,这就是另外一回事了。
共有 1 条讨论