You are calibrated against candidate pool# JobHunting - 待字闺中
S*t
1 楼
刚写完篇interview report,还有一篇要写,来罐灌水休息一下。
这里经常有人抱怨说怎么觉得我答的挺好但是悲剧了,是不是某某家bar太高,是不是
没有bug free呀,同时也有人说感觉面的不行啊,什么什么没有想到要interviewer提
醒了才做出来,最后反而拿了offer之类的。
其实你想想,一般interviewer常用的就那么几道备用的题目,要不是准备跳槽的,平
日里谁没事儿想新题或者刷题啊。对interviewer而言,一个题目要做到什么样子算
hire,哪家公司有tmd的具体规定,还不是interviewer根据自己的经验calibrate出来
的。首先是根据interviewer自身的经验,自己遇到这个问题的时候怎么想的,怎么做
的,花了多少时间,处理了哪些tricky的问题。然后面过几个人后慢慢根据
interviewee解答的情况不断的recalibrate,哪些是大家都容易忽略的,哪些东西good
candidate会答上来,扔出去个hint,面试者response的分布,扔个variation/
followup出去,又有些什么反应。
所以你面试的bar到底是什么,其实就是把你拿来跟同样面过这道题的所有人在做比较
(包括interviewer本人)。之所以那么多人抱怨被黑啊悲剧,抱怨bar高,等等,其实
就是信息不对称,因为你不知道别人的interview performance的分布情况。有时候你
做对题了,沾沾自喜,却不知道你之前有人做的更快更漂亮;有时候你做的磕磕绊绊,
其实别人做的更吃力更痛苦,反而最后你拿了offer。
这个信息不对称是很痛苦,怎么办,那有人就想,是不是靠刷题背答案为手段,起码就
比其他所有没刷过这题的人高了一截。接着就又有人想,那是不是大家都这样想,水涨
船高了,到最后就是比谁刷的多背的好,别人背题,逼着我也要去背。
其实你们都把interviewer当成傻逼了。其实面试里面做题就是reveal你的思路想法和
交流和码code基本能力的过程,你是不是背的答案,说实话谁都看得出来。你尝试了哪
些思路,怎么一步步理清逻辑分析,这些随便一看就有谱了。有的人做的流畅但是木呆
呆的几个followup是傻掉了,有的人分析犀利思路广code老道,这些东西呀,交流10分
钟,靠感觉甚至直觉,对你overal feeling。
很明显的是,你如果自己都觉得你做原题跟做新题相比,performance会相差很大,基
本上就说明你刷题都刷傻了。其实刷题有点像是个machine learning过程,你train的
是model(做题写code的能力),拿一半的testing dataset又不会做了,那不就是
overfit,做过的题都不会做,那不就是underfit。有些大牛的脑子天生就是牛逼的高
级AI,从小到大的general training已经够牛逼了;普通牛人就是好的ML,适量的
train下quality,就足够好,刷过几十道题就可以了;你要是刷题就靠背,train再多
也是个overfit的弱智ML系统。
然后回到calibration的话题,其实信息不对称是无解的,你觉得很牛逼,其实别人看
来就是傻逼。几年前我第一次找工作的时候刷了些题,觉得自己做题和写code还可以了
,沾沾自喜,现在回头看写的code就是garbage。但是时代在进步,几年前都没有
leetcode,只有careercup topcoder这些。其实leetcode的精华是什么,不是题库,是
OJ和discussion。其中runtime distribution 和discussion,起码能让你盲人摸象的
摸到candidate pool的水平。比如你submission的runtime percentile,能做到基本上
都在最左边?做不到,能想办法提高不?提高不了,discussion里面有答案,学习下别
人为什么做的更好。除了runtime/perf,discussion里面都是宝,能看到别人写的code
,有牛人也有菜鸟,可以学习或者批判。
当然我目的也不是给leetcode打广告(虽然我也认识lc作者)。我的主要意思是,你要
怎么对待刷题的过程。现在时代进步了,leetcode是个好工具而已。别人愿意花时间下
功夫,你不愿意,你骂刷题没用,到底是谁的问题?别人愿意学习提供扩展思路积累经
验教训,你只想背题抄捷径,你骂水涨船高,到底是谁的船是漏水的?
你在candidate pool里面的位置就是你的天赋加上你的各种积累下的功夫(工作经验/刷
题)加上一定程度
的运气,缺啥补啥,谁也甭看不起谁。
我知道有人骂刷题是抱怨面试的东西跟工作脱节。这个确实是事实。但是我就想不通了
,你又不是资本家,你的出发点难道会是帮资本家想办法花同样的价钱招更好的work
force? 当然不是,那无非就是你觉得你自己工作经验多,花了很多时间在实际问题中
摸爬滚打,你觉得别人刷题你吃亏。但你有没有想过,好坑都让experienced占,new
grad是不是又吃亏了,new grad都tmd是sb?你是不是又太高估“经验”的价了?
engineering很多东西说白了就那么回事,谁也别蒙谁,花点时间下的功夫学习,你做
过的project别人没做过的未必就不能做。再说了,leetcode没block你吧,是你不屑于
刷吧?游戏摆在这儿,怎么玩是你的事情,你要真牛逼到了一定境界,像goodbug这样
的牛人不用刷题在nflx也很牛逼。
这里经常有人抱怨说怎么觉得我答的挺好但是悲剧了,是不是某某家bar太高,是不是
没有bug free呀,同时也有人说感觉面的不行啊,什么什么没有想到要interviewer提
醒了才做出来,最后反而拿了offer之类的。
其实你想想,一般interviewer常用的就那么几道备用的题目,要不是准备跳槽的,平
日里谁没事儿想新题或者刷题啊。对interviewer而言,一个题目要做到什么样子算
hire,哪家公司有tmd的具体规定,还不是interviewer根据自己的经验calibrate出来
的。首先是根据interviewer自身的经验,自己遇到这个问题的时候怎么想的,怎么做
的,花了多少时间,处理了哪些tricky的问题。然后面过几个人后慢慢根据
interviewee解答的情况不断的recalibrate,哪些是大家都容易忽略的,哪些东西good
candidate会答上来,扔出去个hint,面试者response的分布,扔个variation/
followup出去,又有些什么反应。
所以你面试的bar到底是什么,其实就是把你拿来跟同样面过这道题的所有人在做比较
(包括interviewer本人)。之所以那么多人抱怨被黑啊悲剧,抱怨bar高,等等,其实
就是信息不对称,因为你不知道别人的interview performance的分布情况。有时候你
做对题了,沾沾自喜,却不知道你之前有人做的更快更漂亮;有时候你做的磕磕绊绊,
其实别人做的更吃力更痛苦,反而最后你拿了offer。
这个信息不对称是很痛苦,怎么办,那有人就想,是不是靠刷题背答案为手段,起码就
比其他所有没刷过这题的人高了一截。接着就又有人想,那是不是大家都这样想,水涨
船高了,到最后就是比谁刷的多背的好,别人背题,逼着我也要去背。
其实你们都把interviewer当成傻逼了。其实面试里面做题就是reveal你的思路想法和
交流和码code基本能力的过程,你是不是背的答案,说实话谁都看得出来。你尝试了哪
些思路,怎么一步步理清逻辑分析,这些随便一看就有谱了。有的人做的流畅但是木呆
呆的几个followup是傻掉了,有的人分析犀利思路广code老道,这些东西呀,交流10分
钟,靠感觉甚至直觉,对你overal feeling。
很明显的是,你如果自己都觉得你做原题跟做新题相比,performance会相差很大,基
本上就说明你刷题都刷傻了。其实刷题有点像是个machine learning过程,你train的
是model(做题写code的能力),拿一半的testing dataset又不会做了,那不就是
overfit,做过的题都不会做,那不就是underfit。有些大牛的脑子天生就是牛逼的高
级AI,从小到大的general training已经够牛逼了;普通牛人就是好的ML,适量的
train下quality,就足够好,刷过几十道题就可以了;你要是刷题就靠背,train再多
也是个overfit的弱智ML系统。
然后回到calibration的话题,其实信息不对称是无解的,你觉得很牛逼,其实别人看
来就是傻逼。几年前我第一次找工作的时候刷了些题,觉得自己做题和写code还可以了
,沾沾自喜,现在回头看写的code就是garbage。但是时代在进步,几年前都没有
leetcode,只有careercup topcoder这些。其实leetcode的精华是什么,不是题库,是
OJ和discussion。其中runtime distribution 和discussion,起码能让你盲人摸象的
摸到candidate pool的水平。比如你submission的runtime percentile,能做到基本上
都在最左边?做不到,能想办法提高不?提高不了,discussion里面有答案,学习下别
人为什么做的更好。除了runtime/perf,discussion里面都是宝,能看到别人写的code
,有牛人也有菜鸟,可以学习或者批判。
当然我目的也不是给leetcode打广告(虽然我也认识lc作者)。我的主要意思是,你要
怎么对待刷题的过程。现在时代进步了,leetcode是个好工具而已。别人愿意花时间下
功夫,你不愿意,你骂刷题没用,到底是谁的问题?别人愿意学习提供扩展思路积累经
验教训,你只想背题抄捷径,你骂水涨船高,到底是谁的船是漏水的?
你在candidate pool里面的位置就是你的天赋加上你的各种积累下的功夫(工作经验/刷
题)加上一定程度
的运气,缺啥补啥,谁也甭看不起谁。
我知道有人骂刷题是抱怨面试的东西跟工作脱节。这个确实是事实。但是我就想不通了
,你又不是资本家,你的出发点难道会是帮资本家想办法花同样的价钱招更好的work
force? 当然不是,那无非就是你觉得你自己工作经验多,花了很多时间在实际问题中
摸爬滚打,你觉得别人刷题你吃亏。但你有没有想过,好坑都让experienced占,new
grad是不是又吃亏了,new grad都tmd是sb?你是不是又太高估“经验”的价了?
engineering很多东西说白了就那么回事,谁也别蒙谁,花点时间下的功夫学习,你做
过的project别人没做过的未必就不能做。再说了,leetcode没block你吧,是你不屑于
刷吧?游戏摆在这儿,怎么玩是你的事情,你要真牛逼到了一定境界,像goodbug这样
的牛人不用刷题在nflx也很牛逼。