去死吧,刷题君
文丨飞总 

前几天遇到一个前同事,50多岁的人,四个娃的母亲。这一聊天就聊到了最近这几年内聊天的热门永恒话题:刷题。前同事和我感叹,著名的LeetCode现在已经上500题了,还在增加。现在面试的题目层出不穷变幻莫测,要进类似Google,Facebook的公司,刷上半年也不一定有底气。
前同事是属于那种工作努力踏实,算不上特别聪明绝顶,却非常有经验能够deliver出比较不错的质量代码的工程师。然而这个有着还不错的简历和长久实战经验的人,老司机遇到新事物。面对刷题,显得无可奈何。一方面估计也是人年纪大了学习起来没有以前那么容易了,另外一方面可能更多是精力时间的问题。如今找份好工作不努力刷几个月题,那是不现实的。
这仿佛让我感觉自己回到了出国前的当初,考GRE的感觉。那个时候,有个著名的学校叫新东方。有句著名的口号叫从绝望中寻找希望,人生必将辉煌。中国人的GRE考试就像一场战争,需要很多时间背单词,做题目,刷熟悉度。但是不管怎么样,这种高强度的训练培训,更多的也止步于大学那几年的学生们。
如今的刷题给我的感觉像是一种病毒蔓延,无论是刚毕业的学生,还是工作很多年的人,只要想找份工作,就必须刷,持续刷,其准备时间丝毫不亚于一次GRE考试。要是命不好,遇到几个没见过的题,或者没有在45分钟里面写完三题bug free的程序,惹得面试官不开心了,可能就挂了。但是不可否认,浪费时间浪费生命是本质。很多时候,刷题面试的那几个月,人生有的只是绝望。
刷题的伊始应该是Google。那个从Google出来的女人意识到了这是个大市场,也就有了后来的著名的150题的书。这书可谓是开山鼻祖。当然凡是都是开了一个好头,不一定有一个好结尾。书里面的很多东西,大家并不满意。
此后异军突起的,应该是原本运用于类似ACM竞赛的online judge被发扬光大到刷题的世界里来。于是就有了LeetCode今天的辉煌。别的人怎么样我不知道,但是有两类人肯定是得利了。其一是LeetCode早期的时候在大部分人还不怎么刷题的情况下,那些刷了LeetCode面试的人。第二是办了Leetcode这个网站的人。
刷题事业还带来了各种各样的赚钱的培训机构,不管是讲课的还是做mock interview的。各个国家人都在里面有,印度人有一长条龙的服务,中国人也有之,从走大众化的某章某法到最近很热的高端某offer,从某好吃的包子到某张大的弓。这些机构帮助很多非计算机专业的人通过刷题这条路进入了这个行业。有些时候也让那些已经在业界工作十多年而不适应新情况的人,有了付费买服务培训的机会。这个产业看起来似乎比新东方的产业更大,不知道是不是将来会出几个新东方一样的上市公司。
从心底里讲,我是非常厌倦这种刷题的。因为刷题刷出来的东西,乃至所谓的design,其实只要背诵就可以了,这些东西和工作里面实际要用到的东西,到底有多大的关系其实大家也都心知肚明。然而在现实的情况下,不刷题无法找工作是事实。
刷题始作俑者Google多少要对这样的风气负责. 这家公司里面题库云集,要进去不容易。Google的招聘模式其实很有意思,就是面试你的人给你写评价,最后到委员会去讨论。而真正干活的组却又不一定是招你的人。如果一定要分析,假设我不以最大的恶意去揣测的话,这有几个好处。
首先是通过这样的方式招进来的人,不一定会有多差。因为要么很努力,要么很聪明,或者兼而有之。否则的话这个模式打怪升级进Google,还能蒙混过关只能说运气逆天。运气真逆天了小概率事件总是会发生的。再说运气也是人的资本的一部分。至于那些很多好的人因为这样的方式被羞辱被干掉,其实不重要。就像Machine Learning里面的precision和recall到底要选哪个的问题。对Google来说,优化招进来的人是好的才是根本,至于是否公平对待了面试的人,让很多本来不错的人失去了机会,就不是重点了。
其次,委员会这个东西,也给Google在选人上提供了很多操纵的空间。比如说Google的早年是要看SAT多少分,本科是什么学校的,这个传统现在当然是改变了,但是其实发现名校学生容易进其实依然是事实。又比如说委员会会根据当前市场需求,政治需求,来选择招什么样的人。所谓男女不平等,种族不平等都可以轻易的管理和操纵。
最后一点,招人,选岗位,这个过程里面,因为面试和工作的分离,实际上求职者始终都是劣势的一方。在选择具体岗位上,的确是做到了尽可能的优化Google的需求。当然这一点不是本文的重点,我就不展开了。
Google内部做过调查,也发表过文章。调查的事情是面试表现好和进去以后工作表现好坏是否有必然关系。结论是未必相关。这调查出来以后,并没有见到招聘制度因此而修正。这套面试制度一直沿用,说明有其存在的原因和价值。
而我觉得面试这个东西必须刷题推波助澜的最厉害的当属Facebook。在Facebook里面,题其实不一定难,很多时候都是LeetCode原题。然而要求一遍bugfree,一场面试写两到三题。这让我觉得是不是Facebook的面试机构被一群ACM竞赛的人绑架了。
说实话我从来没见过比这更傻的面试方式了。对于leetcode上的有些题目,如果事先没准备,有几个人可以在45分钟里面做完两到三题还bug free的。说白了,也只能是背的滚瓜烂熟,刷完leetcode去刷各种竞赛的online judge。是不是掌握了这些技巧到进去之后实际工作里面就能干活了呢?显然是扯淡。
所以Facebook一度出现了senior短缺,招人只招有经验的。而那些刚毕业的,现在变成了大量招收intern,然后看intern的表现发offer。可见这种面试的毒害是显而易见的。
大概是2013年到2014年,很多facebook的人跳槽去了square。然后面试在square发扬光大了。square的面试得有个8轮9轮的,可以从上午的9点面试到下午5点。不但要写题,还需要上机去写,bug free等等。
我想在面试的过程里,有些东西是合理的,有很多东西其实很荒谬。然而现在的很多企业都在效仿这一套。我想着有两个原因。第一是大家都被毒害了,原先可以用来测试一个人基本功的题都有攻略了。所以只能不断升级。升级到各种nonsense的题。第二是大家其实都是思想上懒惰的人和公司。不愿意真正去花时间精力去提高甄选人才的办法。举个例子来说,我越来越觉得两个面试官一个被面试的人的方式比较合理。这主要是防止一个面试官没有讨论然后就比较有偏向性的面试了自己喜欢的东西,不够公平。更重要的是,如果面试官真的故意要黑一个面试的,有两个面试官一起面,这种黑人的难度呈指数级上升。又比如说,我始终觉得自己的队伍面自己的人更加合理。一个人被招进来以后要和你朝夕相处工作很多年的,作为面试官,哪怕对自己负责也得好好面。
所以现在的情况是,面试的题目越来越难越来越多,要找工作的必须刷题。而实际面试的东西,和工作里面真正需要的,关系不大。就像GRE催生了新东方,现在的面试风也催生了一整个行业,很多人发财 了。
但是我真想说一句去死吧,滚你妹的刷题。我实在不愿意把自己宝贵的时间浪费在刷题,刷变态题上面。生命很可贵,有那么多时间,不管enjoy life还是学点什么,不比浪费在面试上强呢?那么,业界的现状,我们是不是无能为力改变了呢?有时候我想想,觉得自己真是一个小人物。既做不了什么更改变不了什么。我只能在心里骂一句,大家都是大傻逼。
赞赏二维码
欢迎加我的小密圈
飞总聊IT
IT八卦,大数据风云,业界动态,职场风波
咨询,问题,合作垂询:[email protected]
继续阅读
阅读原文