背景

北漂快五年了,什么都没有,房、车、户口,甚至连工作居住证都懒得办,这么懒、这么挫的后果就是在北京待不下去了,毕业后就一直在360这家公司,说实话,学到的东西不多,在外面看机会悲剧的多,当然也与我自己方向捏不清楚有关,截止到现在可以说是较团圆的结局,如愿的拿到了杭州阿里的工作机会,北京这边也有几个机会,接下来我会分享这一个多月的历程,充满了辛酸和苦辣,不到最后一个心都放不下来的感觉。

准备

知道了17年4月份可能会找工作,所以肯定会提前准备的,刷了一些leetcode的题目,在平时的项目中特别留意了便算法的地方,比如ltr的系统学习,通过ranking组的一些项目,wiki以及主要算法的paper等,实践方面在问答引擎的ranking上使用ltr算法。不过还是有些滞后,准备的不太充分吧,直到5月初才开始正式找工作吧,找了一个猎头,内推的内推。总结一下5月份之前的准别:

  • leetcode review了100道题,覆盖了树、排序、dp等面
  • 问答项目使用ltr,算是有了算法类项目
  • 简历cover了两个新项目,除了问答ltr还有通用引擎
  • 算法总结:svm, lr, 决策树, ranklib, ltr, gbdt, xgboost等
  • xgboost源码阅读
  • 深度学习算法,实现了一个CNN网络模型
  • tensorflow学习

出师不利

开始让波波桑帮忙投了头条,没想到会这么快,头条算是看的比较重的一个机会,去年就栽在上面了,这次又是第一个面的,感觉不太安全,果真,第一面还比较顺利,问了下项目,主要是问答的ltr项目,主要就是标注集,特征,效果等,还让我说了gbdt算法的原理,答得不是很好,回答了分裂方式,以及叶子节点值,我记得当时我是说了叶子值是二阶导数,这个是扯淡了,一定是看混了。然后还提到了微软的lightGBM,这哥们说效果一般,后面又考了一道算法题,问一个二叉树是否是另一个二叉树的子集,这个问题回答的较顺利,后面基本上就进入二面了。第二面是真正的克星,最怕这样的面试官,开始就问问答ltr的一些痛点,主要是问点击特征,如果有偏差,积累效应怎么办?我当时是有些慌,因为之前组内分享的一个关于rank实验的东西我就没好好理解,我以为是通过这个来将,结果就各种乱,思路也很差,让面试官很不满意,后面就随意出了一道题,n个分布,各种feature在一个矩阵中,然后用贝叶斯公式求一个概率,这个写起来是没有问题,但是最后又让我实际编程求出具体的平均值和方差,写就写呗,较长,最后是成功写出了,感觉应该是一个加分项,可是这时候面试官其实心理早有定论,只是在走过场了,问了我如何在不求平均值的情况下求方差?至今没有答案,后面草草的问了下正态分布的公式??黑人问号,我写了后面的那一串,前面的系数忘了,然后就没了,让我问问题,我天真的以为自己答的还不错,还期待加入他们,晕,丢人。后面漫长的等待,我似乎很有信心,在简历的背面详细的记录这本次的心的,信心满满的等待接下来一轮的面试,结果结果,等了20分钟,二面的人又回来了,说出了我最不想听的话,真是很很失望,本来答应和女朋友去周边逛逛的我毫无兴致,一句“一面面试官还是很欣赏你的”在我脑海里挥之不去,走之前见了下波波桑,和他大概说了下本次过程,头条真是个不错的机会,待遇也不错,可是我仍然栽了跟头,打击真是太大了,悻悻的回去了,跟失了魂一样。5月7日周日的下午。

外企

这个是猎头推荐的,其实开始我是想去知乎的,但是知乎不招人,简历直接就刷了,人家只招leader,还说这简历上的人发展不到我们的要求,,晕。。。然后这个猎头就推了与他们合作较多的freewheel,一家做视频广告投放的公司,HR很热情,5.8日周一就加了我微信,下午就通了电话,问了我现在的情况,没有聊薪资,我不想说,因为offer都没呢说这个有啥用,后面就安排了面试时间,先是一个电话面试,安排在周四的上午十点半,记得当日真的是很紧张,我是先到公司然后回的家做的电面,因为需要线上coding,回家的路上骑着车痘痕紧张,哈哈,开始了,是个女面试官,首先让我讲一个项目,看出来她是之前没咋看我简历的,无所谓了,就挑了热点挖掘的那个项目讲了一下,电话里,我滔滔不绝(之前准备过,所以比较顺畅),大概7-8分钟,但是电话那边毫无反应,我有点蒙比,说完之后很明显的感觉到对方是什么也没听懂,服了,然后直接就进入下一个环节,让我编程,是组合硬币到一个目标的程序,说实话,这道题是leetcode题库里的,有非常简洁trick的解法,就是push-pop组合,非常巧妙,我就使用了这个算法,大概用了3-4分钟吧,写出来之后女面试官彻底爆发了,非要说我的是错的,我一解释,发现完全不是一个频道,本身递归这个在电话里不太好一层一层让她看明白,最后我真是急了,真是举例一层一层把递归剥出来希望她能明白,最后她好想也觉得这个算法是对的,然后看了一会,问了几种情况,我接着解释,最后她觉得可能我是对的,但是仍然不确定,所以就差不多得了,我是比较郁闷了,希望能把代码保留下来,让她回去好好看一下,她急忙说不用不用,本来这个题不光考算法,也是考察思路,意思就是我虽然算法对,但是思路不清,说不明白,黑人问号。。然后后面就来了一个english talk,好吧,虽然口语比较次,但是只管说呗,磕磕绊绊,终于讲完了,电面算是结束了。一直等到了第二天才通知我说面试通过,不过HR又给我打了一个电话,聊一下昨天电面的情况,我只好说电话面试的缺点啦,不太好沟通,其实我是对的,我更想说女面试官水平很低,但是我敢吗。。。后面又安排了面试,周三下午,5月17号。不错这次有了冲突,因为我上午约的是美团平台部,内推的,不过我请这个机会一般吧,随便面面,没想到会发生后面的事情,放在后面说,这次就是下午没面成,改成5月23日下午,让我预留一整个下午,整的挺吓人的,公司本部是在亮马桥的一个写字楼,打车过去的,还是比较紧张的,到了之后沙发上深呼吸一下,接下里面试了,一面一个虎头虎脑的码农,先让我介绍项目,我讲了哪个项目忘了,然后又说了他们现在的一些问题场景,就是多个字符串kv查找问题,我让他们使用高效的数据结果,比如darts等,问了下他们每天的hadoop任务,感觉比360的还要低端,更新的也是很慢,可能他没说清楚或者我没有get到,然后考了我一个pthread的一个函数,这个我就黑洞了,多线程c++这块没咋弄过,然后做了一道算法题,链表的k长度反转,这个我答的真是不好,虽然大体写出来了,但是感觉写的时间太长了,思路应该是没有问题的,然后进入下一面,是一个圆脑袋的码农,一进来就是问一个场景,也是用矩阵表达,多标签的问题,各种边界条件,我建议使用位图表示标签,遍历的方式统计,然后各个边界是要考察的点?最后都快成数学证明题了,我感觉没啥应用场景吧,哪个问题会抽象成这样,然后这哥们说他们是有这种场景,我觉他们是跑偏了,我是没有说了,就是跟着他的思路吧。后面又问了一个多进程刷文件的问题,怎么加锁,同步等,应该答得还可以,然后就结束了,我感觉答得还可以,应该下一面没问题,不过这个部门太偏工程了,真没啥兴趣,不过我还是希望能走远点,等了20多分钟,为什么每次都这么久?结果结果等来了HR,我知道不妙了,因为一般面试都得5轮才能见到HR,我知道我悲剧了,情绪很低落,不知道说什么好,没啥说的吧,最后走了,之后和猎头确认的确是下一面的leader不在,不过我感觉没啥机会了,因该真是不合适,这个外企号称待遇好上天,就这样吧,没了就没了,不过我还没有offer,很是着急。 5月23日周三的下午。

美团

好吧,终于到美团了,今年的幸运符号,美团可以说是开始最不看重的,但是过程和结果却是出乎意料的顺利,满意,非常感激,真是不敢想没有美团的鼓励,我能否坚持下来。美团是一个快要离职的朋友内推的,推到了平台部,我一看以为是纯工程的,反正去走个过场吧,也是和上面的那个freewheel安排在了一天,上午随便搞搞吗,到了之后hr把我领到了美团的楼上,一面的码农瘦瘦的,还不错,人挺好的,让我说了一个项目,我说的是通用平台,我觉得和他们做的应该有关吧,然后讨论了较多倒排索引的事情,我比较亲怪,平台部也搞搜索引擎?最后问了下 才知道原来这个平台部就是美团的搜索部门,这不巧了么?这块我熟悉所以应该面的挺好的,最后考了算法题,是把有序数组的一段逆序,这个也是leetcode的题,我还专门研究过有相同元素的解法,整个过程非常愉快,顺利到了下一面,一看时间已经11:45了,我感觉太慢了,二面的对机器学习比较感兴趣,问了ltr的一些算法,最重要的是让我推到了xgboost的目标函数,我之前也是较细的研读过陈天奇的slides,所以能够大体写出来,算是还可以吧,太细的就不行了,然后还打听到我用过深度学习做过问答的项目,我就把私下里搞的那个qa的CNN模型跟他说了一下,应该还挺满意的,然后就是算法,是一个整数比大小的最小整数,二进制里0和1的数量保持一致,开始我的思路差点对了,不过还有问题,最后他提点我一下,然后就让我写出完整代码,很顺利,写的没问题,这个面完已经12点半左右了吧,我有点慌了,这次肯定能过,但是下午1:30我还要面外企呢?过了一会来一个应该级别比较高的人,很nice,铭哥,后面还有很多交集,他先带我去吃了饭,我以为是免费的,就狂拿菜,结果一个人拿了28元。。有点惭愧,还就吃了一点点,我是一有事情就吃不下去饭的主,然后这个leader就找我聊了,大概1:00开始聊的吧,哎,这个过程的真的非常nice,这个leader问的东西几乎都是我平时工作时会关注的问题,对集群部署,abtest,ranking等,也诱导我说了很多工作中的想法,感觉非常过瘾,事后也得知这个反馈很好,但是我向他说我下午还有事情,然后就走了,非常的依依不舍,哈哈,然后说后面会联系我,我之前经历过一些面试,一般说后面联系的大多不联系了,但是这次感觉是真的,我也是觉得面试面的不错嘛,所以我坚信这个offer我已经拿了大半了,回去后也没赶上外企的面试,但是这毕竟是一次成功的面试,对我的鼓励作用非常大。铭哥说是明天或者后天联系我,也就是5.18号或者是5.19号,结果到了18号,无任何音信,我有点慌了,感觉不好的兆头又来了,坐不住了,就疯狂的联系美团的hr(给我发面试邀请的),邮件短信电话都弄了,结果没有任何回音,电话竟然直接挂我的,我服了,难道善良的我再一次被欺骗了?哀莫大于心死,最后我放弃了,算了吧,结结果,第二天突然接到铭哥的电话,我真是激动啊,他说当时面完的当天晚上打篮球他腿就伤了,第二天没上班,所以就没有联系我,哈哈,原来是这样,这真是一道曙光,然后告诉我后面会约我面试,交叉面,定级别的,我好开心,真的是没有骗我,定的是下周二下午,但是那个下午是外企的面试,所以就换个时间换到了周三了,周三下午打个车就过去了,我的水笔在出租车上丢了,我还害怕了一阵,这个笔感觉有点幸运,丢了不会是什么不好的兆头吧,一瘸一拐的铭哥接我上了楼,给我打了简历,后面就是等,那个交叉面试官在开会,我大概等了50分钟,晕,还好终于等到了,那哥们是外卖搜索的nlp负责人,当然主要是考算法,让我挑一个项目给他讲讲,然后就挑了热点挖掘的那个,刚说到模糊化,这哥们就让我说一下怎么模糊化,这个还比较擅长,几乎说全了考虑的因素,最后说到使用什么模型的时候出问题了,我说是使用随机森林,然后就问我为啥使用随机森林,我说这种分类问题比较简单,所以使用随机森林,然后就炸了,何为简单?何为复杂?难道回归是复杂,分类就是简单?我晕,得确我这随口一说真是太不严谨了,然后又说到如何进行多分类,我只看过softMax这种每种分类训练一组参数,实在是想不出一种可以直接分类的算法,还好这哥们是交叉面试官而已,又是校友,他的一个同学还在360搜索,哈哈,有了解到我的算法知识都是自学的,还可以吧,马马虎虎过关,不过因该不是很理想,本来级别能够定的更高点的吧,这个就面了30左右吧,然后我就等最后的老大面吧,等了好久,铭哥告诉我老大还是没有时间,只有先回去了,没事就先回去吧,我信铭哥的,回去后有hr给我联系了,还让我后面接着面试(就是没有赶上的那个老大面),但是当时快端午节了,各种拖,我也跟她说自己有工作机会,希望流程快一点,最后的最后他们说不用面了,可以谈offer了,应该级别不是很高吧,终于拿到了offer,具体薪水细节不提了,后面由于神马的offer,最终还是放弃了,铭哥对我很好,我也非常感谢他对我的认可,后面聊了许多,以后我们还是朋友吧,我也多了一个职业发展路上的挚友。

转岗

除了在外面看机会,我还在公司内部看了机会,因为是想转纯算法的方向,垂直领域做了这么多年还是以工程为导向的,没有什么积累,于个人发展非常不利,公司内部的商业化团队无疑是吸引力比较强的,偏广告方向,不过各种算法和模型使用比较多,如果能够去那里,那也是一次非常好的机会,所以5月初也是向那边的hr投递了简历,希望可以安排与那边老大约的机会。5月9号有了回音,让周四下午五点去和老大聊聊,这个是广告平台投放部门,见到老大,人还是比较nice的,开始问了为何转岗?然后问了问答ltr的项目,然后让我说下gdbt和xgboost的区别,那个时候还比较早,对gbdt和xgboost的了解真的是非常有限吧,这个真的是在找工作的时候深有体会,说到的仅仅是xgboost的数据预处理、正则项等等,现在感觉好浅,然后基本上就是问问题吧,但是当时基本上没啥准备,记得的一个问题就是他们那是否用深度学习,记得说了只用到了NN,然后就匆匆的结束了,其实我应该多准备关于广告的问题的,太匆忙了,负责人也觉得我太草率了吧,后来的后来就是HR来通知我被通过了,其实我觉得和老大聊的真的是很差,通过的原因应该与我在公司的简历相关,我在公司这么久,还算比较出色吧,所以招我风险肯定不大,HR告诉我这个消息时,我还是比较高兴的,憧憬着在新的部分重新开始,贪婪的吸收和享受着广告这个领域的知识和成长,并大展拳脚。当然转岗的流程,周期都是需要考虑的,得到通知的时间是5月24日,HR很热情的和我沟通着后面的流程和注意事项,口头应允的我隐隐的觉得这个机会可能最终会被放弃,由此而来的一个月的拉锯战非常痛苦,的确这个时候处于看机会的高峰期,但是又不能直说,因为之前沟通的时候是说优先优先考虑360,有360的机会肯定不会走的,可是这并非我真实想法,我的终极目标仍然是杭州。最后的拒绝很难开口,一个多月的敷衍终于走到了终点。

阿里神马