《神秘的程序员们》漫画 怎样在技术面试中刷掉牛逼的程序员
怎样在技术面试中刷掉牛逼的程序员
我是高级 HR,我面试了很多看起来很牛逼的程序员,最后我把他们都刷掉了。我捍卫了公司文化,我上知乎我自豪。
Homebrew 的作者 Max Howell 发了一条推,说因为没法在白板上手写翻转二叉树的算法,没通过 Google 面试。
我们曾经画过的这期漫画,描写了不少面试失败的奇葩案例。没想到在 Google 又出现了。有人说算法很重要,有人说算法不重要也能写程序。在不同的背景下,这两种完全相反的观点有可能都是正确的。大部分公司招聘工程师都会有算法面试,但这种面试并不是考验如何背诵算法实现,这对于刚应付过一堆考试的应届毕业生实在太容易了,对于工作 10 年的资深工程师反而不那么简单。算法面试真正目的,并不是要一个标准答案,而是让面试者和面试官一起聊聊一个相对复杂问题的解决方案。这个过程会有很多考察的点,在技术和思考模式之外,甚至可以考察性格和表达能力,或者合作精神。
可惜大部分公司的面试中,算法面试当然是有的,可是只是冷冰冰的做一道题,面对的是 HR。他们当然不懂实现过程,就看一下能不能做出来,做出来结果跟标准答案是不是一样。漫画里面提到的,翻转一个单向链表,标准答案是递归,辛苦实现了迭代算法的面试者反而被淘汰,这种事情是真实发生过的。
当然了,另外一种极端看法是根本没必要考算法,因为工作中压根用不到。事实上,没有什么程序不用到算法,只不过算法常常被封装到库里面,程序员并不去关心实现而已。(如果碰上一个每个算法都要自己实现的家伙,你要小心了,这家伙很可能让项目变得一团糟)很多公司会用讨论一个更具体的问题方式来替代算法面试,效果也不错。但没必要关心算法,甚至鄙视精于算法的程序员,这种观点显然是错的。
算法面试这种面试形式,和算法本身一样,要明白为什么这样做,这样做的意义是什么,才有可能正确得使用它。但不幸的是,我认为 HR 部门通常不具备这个能力,需要有经验的工程师才能有效果。
当然,如果公司使用算法面试的目的是筛掉一些候选者,降低面试成本,这就是另外一回事了。
你也许感兴趣的:
- Let’s Encrypt:准备开始签发IP地址证书
- 谷歌浏览器将提供内置翻译和语言检测 API
- OpenAI 将用 Rust 重建 Codex CLI,放弃之前的 TypeScript 版本
- 用 AI 生成的安卓 App:优点、缺点与令人震惊之处
- 为什么所有浏览器的用户代理(User-Agent)都以“Mozilla/”开头?
- 新发现的 Linux udisks 漏洞使攻击者能够在主要 Linux 发行版上获得 root 权限
- 没错,没人关心 Linux 上的使用友好性
- Git Notes:Git 最酷但最不受欢迎的功能
- Kubernetes 2.0 将会是什么样子
- bzip2 crate 从 C 切换到 100% rust
共有 1 条讨论