为啥有名的IT公司的程序员面试都这么难?


码农职业上的终级目标就是 TOP 10 的这些公司, 比如谷哥, FACEBOOK, 微软, AMAZON, 甲骨文, PAYPAL, TWITTER等. 这些公司的软件工程师 (SE: Software Engineer) 都会有好几轮 Coding, 也就是算法+写代码, 还会有 Design 设计类的问题.

很变态, 所谓面试原子弹, 工作的时候茶叶蛋一点不夸张. 既然面试的技能(例如算法)并不一定需要在工作中用到, 那为啥大公司的面试还是一如既往的考算法+设计的套路呢?

平常写代码会需要知道如何反转二叉树么? 可能在工作中, 程序员一辈子都不需要去用到反转二叉树的算法.

max-howell-twitter-google-interview-invert-a-binary-tree 为啥有名的IT公司的程序员面试都这么难?  程序员 资讯 软件工程

max-howell-twitter-google-interview-invert-a-binary-tree

False Negative 和 False Positive

先来了解两个名词:

  • False Negative: 就是工程师能力很强, 能胜任这工作, 但就是运气差面试的时候表现不佳.
  • False Positive: 工程师能力差/一般, 无法胜任这工作, 但就是走狗屎运面试考到了他会的题.
false-negative-and-false-positive 为啥有名的IT公司的程序员面试都这么难?  程序员 资讯 软件工程

false-negative-and-false-positive

对于公司来说, 招到一个错误的人成本很大, 因为很有可能没几个月就得付赔偿金让他走人, 而前面几个月还得培训该员工而员工这时候的贡献很少. 而相反, 错过一个对的人对于公司的成本损失很少. 并且大公司名气大, 有很多优秀的工程师每时每刻在申请, 所以这样来说, 对于公司更是没啥影响了.

公司把面试的标准提高, 这是为了避免招到错的人.

把面试标准提高, 越难的面试, 就越能过滤掉不靠谱的人, 但有可能会错杀.

interview-difficulty-threshold-for-company 为啥有名的IT公司的程序员面试都这么难?  程序员 资讯 软件工程

interview-difficulty-threshold-for-company

理想的面试难度就是能够完全区分开对的人和不适合的人, 但实际上, 这很难得到客观的标准, 而对于大公司来说, 不断的提高面试难度反而是个难度小风险小受益大的事情.

interview-difficulty-threshold 为啥有名的IT公司的程序员面试都这么难?  程序员 资讯 软件工程

interview-difficulty-threshold

回到上面提到的该工程师无法写出反转二叉树的算法, 这就有点不该了. 基本功还是要有的, 况且这题真的不难, 一个递归就完美解决了. 但是如果面试让程序员写个红黑树就不应该了, 因为很复杂, 一般理解后再搜索相关文献就好了.

一般电话面试45分钟, 在线写二道题(一般是实时浏览器代码协作), 终面大公司都是5轮-5个小时, 在短时间内怎么判断工程师合不合格, 一个很重要的考察因素就是工程师的解决问题的能力 (Problem Solving Skills).

那些通过短时间刷题看各种面经备战大公司面试成功的工程师也很厉害, 至少能证明他们的智商和学习能力, 这也是公司需要的.

其实有点像高考, 虽然这些年大家一直批判应试教育, 说分数不是唯一, 但是你能找到一个比考试分数更快速较准确的选拔优秀人才的方法么? 除了简历上看做过的项目经理, 个人有啥业余项目 pet/side projects, 开源有啥贡献, 实时算法敲代码还是个比较靠谱的检验程序员能力的试金石了.

参考英文: https://miraan.co.uk/posts/why-coding-interviews-still-suck/

GD Star Rating
loading...
本文一共 836 个汉字, 你数一下对不对.
为啥有名的IT公司的程序员面试都这么难?. (AMP 移动加速版本)
上一篇: 贪心算法玩比特币玩的就是心跳
下一篇: 剑桥GE公司每年一度的5人慈善足球联赛

扫描二维码,分享本文到微信朋友圈
f064ffcb78ae8b697c3b82886900447c 为啥有名的IT公司的程序员面试都这么难?  程序员 资讯 软件工程

2 条评论

评论