这篇找工作经验分享很长,由于辉仔时间有限,如果您发现了错别字或者病句,请给我留言指出,谢谢。
1.引言
一年前,我还在实验室苦逼干活,浏览到了某大神的博客,无意间看了他找工作的经历分享,很是感叹,他貌似也是我见过的唯一一个集齐BAT FLAG OFFER的大神,当然ACM world final Top 10 也注定秋招必定属于他的丰收季。我当时就琢磨着,无论工作找的怎么样,也一定要把找工作中的所感所悟给记录下来,以后抱着孙子的时候,可以给他看,瞧,你爷爷也曾经牛逼过,而现在貌似就是一个正确的时候做总结了。
追溯我找工作的经历,那要到今年3月1日,呵呵,不要问我为啥记得那么清楚,其实是被阿里逼的,哎,今年的阿里真是变幻莫测,下面等我慢慢吐槽。那天,刚过完年,放完寒假,到实验室第一天,我捋起袖子正准备干活,结果坐在后面的师兄(比我大一届,去阿里了)跑过来跟我说:阿里开始招实习生了,我主管叫我推荐几个师弟,怎么样,有兴趣不?我一脸不解,在电脑上看了看右上角的日期,然后我问了一句,“实习生。。是什么时候的?”“暑假的。”“那为什么这么早就招了,这才刚过完年嘛。。。”“不晓得,估计抢人。。”然后师兄走了留我一个人在那边茫然。。。好吧,谁知道呢,从那一天开始,就拉开了我找工作的序幕。
有可能是我的基础比较好吧,也有可能是准备的比较早,我所有的面试都在正式校招之前,都是内部推荐的,估计这也注定了我找工作还是比较顺利的。从实习开始的技术面试6月23日到最后的360面试9月7日,一共76天,前前后后面试了6家公司,9个部门,嗯,你没看错,有些公司,因为各种不可控的原因,面试了不只一个部门,具体如下(所有岗位都是研发工程师):
百度: 网页搜索部存储组(主要做的是网页链接存储库LinkBase和分布式表格系统Tera),多模交互医疗搜索组(百度大搜医疗相关的搜索),此外,多模交互的语音搜索组也联系过我。。。我拒绝了。。。
阿里:ICBU国际网站部(主要做境外的B2B),阿里云云数据库RDS(MySQL数据库内核源码组),此外,阿里技术保障部我也投过,具体原因我在下面详说,都是不可控因素,哎。。
腾讯:社交网络事业群(SNG),这个比较干净,就一个。
网易:北京网易乐得(数据库中间件,实习了一阵子),网易杭研院后台开发组(做网易云数据的吧)。
美团:美团云云数据库RDS(也是做数据库的)。
奇虎360:搜索事业部(360搜索)。
大家可以看出了,虽然我投的都是研发工程师,但是我的具体方向还是很明确的,就两个一个是搜索方向(百度、360),一个是数据库方向(网易、阿里、美团)。搜索方向的原因是,实验室做过一个大型的分布式检索项目,虽然是关于图片的,但是由于是监控相关的项目,需要部署在中国互联网出入口(每秒13T的流量),所以还是设计到了很多技术,尤其是优化方面的技术,这让我长进很大,有机会给大家写写心得。另外一个方向是数据库方向,原因有二,一个是在网易北京实习做的是相关的东西,另外一个是自己看过阿里蚂蚁金服杨传辉前辈写的书,深感分布式数据库的不易,觉得这个是个值得研究的方向。下面我就挨个来说一下吧。
2.缘分未到的百度
先来说说狼厂吧。
网页搜索部存储组。这个部门是我本科同学给内推的,她出国读书,就两年,所以工作就找的比较早。我最后没去,其实挺不好意思的,然后为了答谢她,请了顿金钱豹,哈哈。面试总体来说,还是比较有技术含量的,首先手写代码比较多,其次遇到了个相当犀利的面试官,最后的经理面还分了两次面。我去面试的时候,还很早,大概才7月底,这个主要是内推的渠道靠谱。那天,是第一次去百度,差点找错地方,因为是个新的软件园,还要做班车。第一面,主要是基础知识和写代码。基础知识问了TCP三次握手四次挥手,STL的底层实现,进程线程区别,进程之间通信的方式都是被问烂的问题,我当时还结合自己的理解说了很多,比如说到为啥要三次握手,如果两次握手会有什么问题,以及为啥建立连接要三次而断开连接要四次,STL基本把所有的容器的优缺点和底层实现都说了一下,顺便提了一下红黑书和AVL的区别以及使用场景,说到进程线程的时候还提了一下协程的概念,进程之间的通信方式也都比较了各种方式的优缺点,这些都是面试官一开始没有问的,我顺便说了一下,估计这就给面试官留下了好印象吧,当然有一个问题回答的不太好,有一个类,有个析构函数,main函数里面首先是定义了一个这个类的对象,然后就进入sleep了,这个时候程序在sleep的时候,给这个进程发了个kill -9命令,问这个析构函数会不会执行。我当时不是很确定,感觉不会执行,但是面试官说会,我回来以后试了一下,貌似真不会啊。。这不知道啥情况,是不是我当时理解错了。。囧。。然后开始写代码,上来先是一个链表反转,由于是第一次现场在纸上写代码,虽然题目很简单,但是还是修改了比较多,还好用的是铅笔和橡皮,嘿嘿。大概花了6,7分钟写完,面试官举了个特例人眼验证了一下我的程序,感觉他还满意,就说再来一道,呵呵,说是什么二分查找的变形,其实就是STL lower_bound,一开始说完题目,还说如果感觉难,可以写个二分查找,我觉得题不难,就写了,几分钟搞定,也是bug free,面试官感觉很满意,然后开始聊,聊着聊着,说起二叉树,又让我写了个二叉树的非递归遍历,估计他没怎么准备,感觉跟他讲了好久他才明白,不够也正常,这个有点不好理解,毕竟平时用的比较少,然后他就觉得我很牛逼了,呵呵呵。还问了个设计题目,让你设计一个nginx。。。我对这个web服务器不太了解,就简单说了需要几个模块,需要注意的点,以及常见的几种IO复用模型,最后聊了聊项目,我简历上有个国际数模特等奖,然后他看了说我很厉害。。。简单问了下情况。就酱,差不多一个小时。然后二面面试官来了,我就被虐惨了,(→_→),后来打听到那个面试官叫做覃安,也是计算所的,是徐志伟老师的博士生,好吧,当年来计算所面试,哥可以被徐志伟老师给拒过的。不过这次面试时我所有面试里面技术含量最高的,覃师兄强大的气场,犀利的眼神,刁钻的问题,我现在还历历在目,不过那次面试我也学习到了很多,回来重新优化了一下自己的项目,性能果然有很大的提升。这一面主要是问我简历上的项目以及分布式系统相关的知识,比如,分布式系统中,如果有中心节点,需要统计各个子节点的状态信息,有几种方法以及优缺点的是什么。分布式系统中,有没有遇到过存储方面的问题,这个时候是选择是CP还是AP,以及对应的一些细节。分布式系统中,应该考虑哪些问题,在你的项目中是怎么实践的。如何减少分布式系统中Map阶段网络的流量,有几种方法。还有一些项目的细节,UDP丢包等细节,总之,面试官总能根据你做的项目拓展出一大堆的东西,然后问你有什么解决办法,还有没有其他的解决办法,优缺点是什么,这一次面试是我所有面试中感觉最差的一次,一度觉得我要挂了。。还好,在压力面试后,面试官还是放我过了,是不是因为我们是师兄弟的情况。后来打听到,他师弟当年是RCFILE文件系统的作者,他面试人,一般都只有很低的分数。。这一面之后,本来还有第三面,但是面试官说,由于第一面花了太多的时间,让我回去等经理的电话面试。回来后的第二天,经理就给打电话了,面了一半,他说他有急事,先让我等他一个半小时,然后接着面。好吧,我乘机把当时没回答好的问题上网找了一下,那个问题是,为什么HDFS要存三份副本,而不是其他份数,比如二分或者四份,是基于什么原因这么设计的。其实大概的原因我一开始也懂,就是表达的时候没表达清楚,我在那一个半小时的时候上网找了找,组织了一下语言,他后来电话打来的时候,我又有条理的说了说,他也感觉很满意。他后来还问了问我实习做的东西,以及让我维护一个中间件,我会怎么维护,总之,没什么具体的细节,估计就想看看我的想法,正好,我的知识面还是比较广的,跟他扯了很多,感觉他也比较满意,最后一天后,HR通知我,面试过了,然后我开心的回了一次家。虽然最后没有去,但是那个部门也还算是个不错的部门,百度网页底层的存储系统基本都是他们搞得,里面有本科的同学也还有好几个计算所的师兄,希望大家都顺利。
多模交互医疗搜索组。差不多八月底的时候,百度给我打了电话,问我有没有兴趣去多模交互搜索部,我当时一愣,首先我没投过这个部门,我也没听说过这个部门,而且当时网页搜索部已经说要了我,所以一开始工程师打电话过来我没同意,说不想去面试,后来HR又给我打电话,说什么经理很看重我,工程师也很想我去试试,这也是一次机会,我当时那几天没什么事,而且阿里的转部门也还没开始面试,所以想想就当练练手吧,于是同意了。不过后来的经历告诉我,当初的决定是完全正确的。总体来说,狼厂的多模交互搜索部给我的感觉是最好的,什么事都很主动,包括叫我去面试,真的是邀请我去面试,到后续的给我申请SP offer都是他们主动,我们没有要求过,其他公司都是先给你一个高一点的批发价,然后跟他谈,人家才给你申请SP。回过头来,仔细想想,原因估计有三,我的项目他们比较敢兴趣,面试官很好我把我知道的都说了出来,部门主管居然是我师兄。这个部门的面试比较特别,预期说是面试,还不如说是聊天,聊了一天下午,跟一个T6的大哥哥,比我大两年,上海交大的,没有基础,也没有代码,因为他们的说法是,我已经过了网页搜索的面试,肯定写过代码了,基础应该不会太差,面试官重点想问问我做的项目,估计他们比较感兴趣。那正好,我个人觉得,我把我的项目都好好做了,而且,每个项目做完,我都有总结,不管是用PPT还是用word都总结过,当初总结也不是为了面试,主要是为了项目答辩以及自己对知识的归纳,没想到那天的面试派上了大用场,我用小米平板把总结的东西拿出来给他看,因为有图有表有数字,所以说起来相当方便,他也很好理解,大家都很愉快,当然作为一名资深的工程师,他也给我提出了一些建议,比如为了减少网络传输,有没有考虑过用压缩的方法,当时我说的是,我们项目主要是为了提高性能,减少CPU计算的瓶颈,没有用这个压缩,网络流大一点就大一点,后来,我回来试验了一下,发现这个是个好想法,选了一个好的压缩算法用到了项目中,这里要谢谢他。他还问我项目中有没有用类似缓存的机制,减少后台的检索量,我当时说的是没有,其实回来的路上我想了想,这个是有的,只不过那一块不是我做的,一下子说上来,没想到,缓存系统给后台分析系统减少了大概1/3的压力。从下午两点开始聊到下午四点半,从项目开始聊到我平时学习技术的方式等等,总之真的想是在聊天,很轻松,我也只把我最真实的想法表现出来。还有一个细节,一般的面试都是面试者先讲,我这次面试是,面试官先介绍他们做的东西,因为他们部门的名字实在太抽象,其实他们是做垂直搜索的,医疗相关的,感觉业务很复杂,涉及的技术点也很多。另外,我看了看他手里我的简历,我回来后,对比了一下,发现是我今年六月份投实习的时候投的,当初百度官网上有医疗事业部的实习生招聘,我就随便投了一个,结果过了N久也没鸟我,上去看说是简历未通过,估计那个时候没招人,等八月底要校招了,HR把我的简历给翻了出来,而我早就把投过简历的事给忘记了。。。好吧,当初六月份的时候还挺想做搜索这块的,只不过后来去网易的实习,让我更加偏爱了数据库。过了几天,多模交互的HR给我打电话说,让我等九月中旬的电话,结果我等到九月底都没收到通知,那个时候阿里也没给我确切的消息,于是在9月底给面试官发了邮件咨询了一下,最终在10月中旬的时候,被告知了薪资待遇,很不错的SP offer,月薪是最高的,虽然总体的价钱不是最高,但是我看得出他们也真的很想要我过去,而且我也刚知道,原来部门经理是西工大的师兄,以至于我最后都不太好意思拒绝他。不过很遗憾,那个时候阿里给了明确的答复,主管也很热情,褚霸团队真的很给力等还有很多因素,让我最终选择了阿里,不过如果不去阿里的话,我估计就去百度了,要知道找到一个认可你的团队不容易,尤其当你还只是一个应届生的时候。
最后,八月底的时候,百度的语音搜索团队也给打电话,想让我过去面试,这下我是真不知道他们是怎么搞到我的简历的了,估计是我找实习的时候海投导致的吧。不过最后婉拒了,因为已经有两个部门的offer了,不想再去添乱,把机会留给其他同学吧,这样占着茅坑不拉屎,真的太伤人品。
总结来说,百度给我的感觉来说,都是不错的,不论是网页搜索部还是多模交互搜索部,技术的氛围真的很浓,百度大楼也很气派,听说新的园区马上可以启用了,虽然很偏,但是环境不错。没能去成百度,估计也是缘分还没到吧,说不好,哪天跳槽到百度了呢,呵呵。
婉拒百度后,面试官给予的祝福,也祝百度越来越好
大学同学帮我内推,请吃了顿金钱豹~
3.爱你不易的阿里
说起阿里,今年给人的感觉真的是,想说爱你不容易,从过完年就找实习生,校招官微放出消息招3000+,到后来的拥抱变化,最后的薪水降到8K,真可以说是,大起大幅,制造了所谓的互联网寒冬。当初,实习生有个群,叫做alibaba橙子群,到后来直接变为alibaba黑子群,以及演变出来的alibaba实习生下家群,这个神奇的下家群,曾经创造一天收到20家公司招聘邮件的记录,听说今年被拥抱变化的阿里实习生可以重新组一个电商公司了,从技术到产品到运营到市场乃至客服,应有尽有,哈哈,当然阿里这么一搞,真的爽翻了杭州其他的互联网公司,比如说蘑菇街直接说,要提高面试要求,非985211的,面试机会都不给。网易的HR收到好几万份的简历,到后来也直接看学校。当然,阿里缩招,也是出于集团的发展考虑的,马云在3月份就说过今年不招一个人,进一个出一个,当时我听了心里就直打寒颤,真的假的,要是真这样,那我今年找工作岂不是悲剧了?还好,最后官微出来辟谣了,不过最后还是没逃缩招的命运。当然,影响最大的是那帮实习生,尤其是那帮本来就想留阿里而导致没找其他单位的同学,像我这种过了面试没去实习的阿里宝宝,其实影响还不算很大,不过我找到阿里满意的岗位也是很曲折的。阿里的战线也是拖的最长的,到11月份了HR才来谈真真的offer,问了一下待遇的细节,其实发现还不错,比如除了基本工资外,还有每个月1500的房补,午餐的餐补,如果留在公司吃晚饭的话,也可以报销,去实习的话可以报销来回路费,包括飞机哦~去杭州找房子不容易,公司可以提供半个月的免费住宿。所以说,在阿里,基本没什么大的开销。
ICBU国际网站部:投这个部门是实习的时候,当时实验室一个师兄去了阿里,说是能给我内推,当时实在太早,才3月份,啥都不懂,啥都没准备,就随便投了一个,大概过了十多天的一个下午,收到了人生中的第一次面试的电话,对面是个声音很有磁性的GG,很有礼貌,大概聊了半个小时,主要就是根据简历上的项目,当初还没做分布式的项目,就说了一下单机的版本,估计是我说的还算清楚,他听懂了,然后问了几个性能优化方面的问题,因为我说我对我的代码做过了很多算法、数据结构、代码级别的优化。最后,扯了一下还没做的分布式系统的设计,说了点数据一致性的问题,然后他估计觉得我还行,问了问家庭的情况,就放我过了。阿里的招聘系统做的不错,能实时看到自己的进度,当我第一次看到一面通过的字样,别提有多高兴了。哈哈,虽然到后来,人家给我offer我也没啥感觉了。。大概过了一个礼拜,应该算是经理级别的GG给我打电话,也差不多问了问项目,然后我扯了扯Cassandra的东西,说是借鉴了他的一些思想,然后自己整了一个类似的,他还问我java基础怎么样,对java有没有兴趣,由于我还真有点java基础,毕竟本科的时候玩过一阵子,就如实说了,然后就这样技术面过了,没问什么基础和算法,感觉很水,最后在一个晚上,收到了HR面的电话,HR有个问题是,问我实验室的师兄师姐一般都去哪里了,聊了10几分钟,很快的,3月底就收到意向书。不过我估计我不能去实习,实验室还有点事儿,而且我从面试中就听面试官说,他们做的主要是网站开发的后台开发,业务部门,其实我不太喜欢,最后,HR过来确认我入职的时间,我就说估计去不了,后来工程师还打电话过来,意思是想叫我过去,我当时是真的走不开,而且对部门兴趣也不是非常大,就没去,后来证明,这次选择也是正确的,如果去的话,估计真被拥抱变化了,而且也没机会去现在去的阿里云了。这里要说明一下,阿里的宣传文案中说的是,过了实习生的面试,即使最后没去实习,校招的时候可以直接进入校招绿色通道,只要进行最后的一面就行了,其实我当初报实习生最主要的就是这个想法。
大概六月份以后,我换部门的意愿越来越强烈,打电话给当时的校招组,当时给予的回复都很官方,让我耐心等待,等正式校招的时候提出换部门,呵呵,还好我没听他们的,不然,按照今年的情况,肯定被拥抱变化了。我先是联系了何登成,技术保障的大牛,因为当时我想去做OceanBase,原因是看了杨传辉老师的书,但是当时给予的答复是,已经通过实习生内推面试的,就不能参加当时7月份的校招内推了。好吧。当时何登成听到这个消息也挺郁闷的,因为我的经历跟他们团队还是比较契合的,感觉他也对我感兴趣。
就这样拖到了8月中下旬,有一天,我无聊在刷微博,无意间在微博上看到丁奇回复了其他人的微博,我知道他是阿里云RDS的成员,而且应该是比较核心的成员(因为我看过他们团队的博客以及他们写的内核月报),当时等消息等的焦急,就随意回复问了问,结果发现他很快就回复了,于是后续我们通过微博私信交流,直到最后的正式录取。后来,他也跟我说,辛苦你联系他联系的早,赶上了最后一趟车,不然估计也要被拥抱走了,所以说,我只能说,谋事在人,成事在天,缘分真的很重要,老天爷不让你去,就别强求。因为有了他的支持,我后续的面试都走的还算顺利,至少简历不会被HR忽略。大概几天后,接到一面的电话。说起来,那天真的很巧合,我下午在百度面试多模交互搜索部,聊到4点多的时候,阿里的面试来了,我说给我十五分钟的时间,我就用那段时间跟百度的面试官告别,然后在百度软件园完成了阿里云的面试,虽然那个时候已经下午4点半了,但是北京夏天的太阳依然猛烈,于是我在百度软件园,晒着太阳,完成了一次很重要面试,面试官还是从项目开始,他先问了一个我实验室的项目,涉及到的知识点,还是分布式系统相关的以及各种方法的优缺点和我的选择,感觉还可以。接着,就问了关于数据库方面的,提了两个关于MySQL相关的,一个是关于redo log的,一个是关于buffer的,都是比较细节的问题,感觉比较偏,我当时真没接触过,回答的不是很好,当然在面试最后,他也说了,可能是他问的太偏,没回答好没关系。接下来,他问了问我实习做的东西,也是MySQL相关的,我说了说我的解决办法,听了后,他直接说,我的方法不错,很巧妙,哈哈,原话。我一听有戏,嘿嘿。接下来我发散了一下,结合我实习的东西,联系他们的博客的内容,说了一下我的见解以及这个项目以后可能哪里会成为瓶颈,听了,估计他还比较满意。最后他说,总体上,对我比较满意,虽然那两个比较偏的问题答的一般,但是我有相关实习经历,感觉我数据库的基础也还不错,就说让我等下一面。嗯。就这样,阿里关键的一面过了。又过了几天,一个早上,接到了团队老大的电话,嗯,褚霸的,大清早打电话过来,还真不习惯,感觉其他面试都在下午。霸爷一开始也问了问我的项目,我大概说了说,他就问了一个问题,你的方案有啥缺点,额,我简单说了说功能上的缺陷以及性能上的缺陷,其他就想不出来了,霸爷看我想不出来了,也没为难,就不问技术了,问了问为啥来我们组,我也说了说,貌似他挺满意,因为我对他们组做的事情,还比较了解,对阿里的多个数据库团队也比较了解,他们在国内各个大会上分享的东西,我也差不多都看过,所以,他觉得我很有热情很有兴趣,然后就结束了。。。整个面试过程就20多分钟,呵呵。感觉当霸爷知道我对数据库很有兴趣的时候,就让我过了,技术方面也没为难我。接下来,丁奇在网上跟我说,可能还有一技术面,我估计那个是交叉面,听说只有评级高的才有,嗯,但是那个时候,拥抱变化的消息也下来了,只是还没搞那么大,于是在一个下午,收到技术保障部的一个面试官的电话,也就聊了聊项目,以及为啥来阿里,等等非技术类的问题,当然他也指出我在系统内核方面的缺陷,我对这方面不是很了解,确实需要加强。不过,面试还是通过了,晚上收到阿里HR的面试,阿里HR确实比较霸气,放浪形骸,很接地气,还是问了问为什么对数据库感兴趣,还聊了聊国际数模的特等奖,总体来说,还是比较愉快的,阿里HR也挺辛苦的,大晚上的还面试。最后差不多半个月后的一个晚上,丁奇给我打电话,大体意思就是,他非了九牛二虎之力给我争取到了一个名额,问我到底来不来,最好说实话,如果来的话,不要违约,今年名额太宝贵,待遇方面也给弄了一个SP,具体数字他不晓得,应该不会太低,听到这里,我大舒一口气,至少不会是传说中的10K赶人价了,于是答应下来。第二天,HR给我报了报薪水,还比较符合预期的吧,当然那个时候我脑子太二,问了一个让HR很无语的问题,我说,我过来的话,会不会在试用期被裁掉。。。。呵呵呵,也不知道当时怎么想的,居然问出这种问题,哎,只是那段时间网上群里传的太疯狂了,到处都是黑阿里的,搞得大家都提心吊胆的。其实到现在的,阿里还在赶人,由于内推的时候实在给了太多offer了,所以现在为了赶人都开到8K了,我能理解招聘团队的想法,毕竟马总的要求还是要遵守的。不过我还是挺为阿里担心的,他想招顶尖的学生,虽然给的钱不少,但不是顶尖的,估计真正顶尖的学生还是不会去的,我认识的好几个同学,拿到其他公司的offer都比阿里的高,阿里能留下人嘛?我们拭目以待。
我想让丁奇帮我内推
阿里应届生招聘流程界面。最下面是实习生的,因为最后转校招了,所以是已回绝状态。第二条是失败的内推,因为当时实习生面试过了不能再校招内推了。第一条是最后的校招状态。
4.孤身高傲的腾讯
腾讯这边,我的经历比较少,主要有两个原因,腾讯总部在深圳,离家太远,而且深圳IT肯定没北京发达,另外一个是腾讯面试官给人感觉都是爱理不理,也有可能是因为没有很好的match他们的需求。当初也找了一个同学内推,投递简历后,评级是A+,但是另外一个同学,都是同一个人内推的,评级为A的早就面试了,我一直等了很久,在某个周六的下午,我都准备好好休息休息的时候,来电话了。简单聊了聊项目,问了点网络的基础,比如TCP那个状态转换图,操作系统进程调度的方式,网络IO复用模型,进程在内存的分布,C++虚函数等等很基础的问题,聊完技术,问了问我的意向,大概我没有表现出非常想去的意愿,给面试官的感觉就是拿腾讯来保底的,所以他说给我换部门,我说我想去TEG,而不是SNG,想去做数据库或者搜索相关的,不想搞纯后台开发的,想做的专一点,他答应了,他这一答应,我等了好久,差不多三个礼拜吧,二面面试官,我发现还是原来部门的,也就聊聊基本情况,聊聊项目就过去了,问了一个快排和堆排,问了问为啥不用堆排而用快排,其他基本都是项目上的东西,Linux的一些命令,比如top,sort啥的,都很基础。当时我说能不能换部门,他说来不及了,还说了一段他们部门有多好多好,好吧。最后,到校招之前,也没给我消息,是否过了,只通知我让我参加笔试,参加笔试又过了好久,HR打电话说,给我offer,问我去不去,我听了听工资不是很满意,又问了问部门,感觉都不太满意,就没有让他给我申请SP了,感觉没啥意思,反正也不去。然后,就没有然后了,BAT里面,感觉腾讯不太喜欢招北京的学生,估计因为以前北京生源去腾讯的实在太少了吧,腾讯北京就那么几个业务部门,名额基本给实习生了,我想去的是基础架构基本都在深圳,我在微博上也联系过一个腾讯的负责人,数据库相关的,但是他没鸟我。呵呵。另外,差不多11月份的时候,腾讯的财付通部门也给我打电话了,说是什么腾讯补招,呵呵,我一听部门一般,还是补招,直接拒了~。
腾讯当初HR给打的状态,但是貌似没什么卵用
5.中规中矩的网易
我实习的时候去过北京的网易互联网,后来因为各种原因,没打算留下来,虽然实习的时间不太长,但是那段经历对我的人生规划有着重要的意义,首先,让我认识到,自己的选择没有错,数据库虽然发展很多年了,但是还有很多工作可以做,其次,自己的水平在应届生中还是不错的,这个缘于tcpcopy作者王斌前辈的认可。同时,我也见识到了斌哥对技术的热爱,认识到了做开源软件的不易。结束实习后,我回实验室好好准备其他公司的面试,由于家在浙江,而且网易杭研院的数据库被誉为业界黄埔军校,有姜承尧前辈坐镇,有幸拜读过他的博客、微信以及书籍,感觉杭研院数据库团队是个不错的选择,所以就投了网易的内推。
北京网易的面试很简单,一开始做了一套笔试题,全是选择题,多选,单选,考的很杂,乱七八糟啥都有,不过后来面试官跟我说,我做的还是不错的,面试的话,也就是聊天,两个面试官,跟他们聊了半天,感觉他们也对我很满意,都开始担心会不会来了,呵呵,不过当时我急着想找个实习,充实一下自己,就答应下来了,当然部门和岗位都不咋地,待遇估计也一般,户口也比较渺茫,让我留在那边的唯一动力就是王斌前辈,其实他也是中科院毕业的,算是半个师兄吧。后来的离开,其实真的很不好意思。实习期间,我对数据库中间件有了更好的理解,视野也更加宽广,这段实习经历对我后续的找工作起了很大的作用。
网易杭研院的面试,主要也在八月底,本来网易想让我们去杭州面试的,车费来回报销(不够听说,到现在也还没报),但是后来大家都嫌麻烦,用视频面试,而且一定要用易信面试,可是易信视频功能做的不太好,最终还是改成了电话面试。一面是在一个晚上的八点,上来先介绍了一下项目和实习经历,虽然我报的是数据库方向,但是对方不是做数据库的,他说,听我讲完,他大概知道是什么东西了,也还比较满意。然后,接下来就是基础知识,真的问了好多概念性的基础知识,比如说C++中转换构造函数是什么,我那个时候真不清楚还有转换构造函数。。再比如,C++中怎么让对象不能在堆上分配,C++中重载重写隐藏有什么区别,malloc和new的区别,Linux进程模型,进程开始之前和结束之后操作系统做了什么,智能指针,IO复用模型,编译型语言和解释型语言之间的区别,STL常用的结构等,反正都是很细节的基础知识,我一开始几个C++的题目答的不是很好,有些忘了,或者真心没听说过,不过面试官最后还是说我基础还不错,然后说后面找个对口的面试官面我,结果二面的面试官还不是对口的,上来我说了一通项目,估计他没听懂,只是觉得很牛逼。。然后又开始问各种基础知识,C++初始化列表,explicit关键字,析构函数,虚函数等等,面完,感觉面试官非常满意,他说他是做IOS的,我很吃惊,我说我明明报的是数据库,为什么差别那么大,他说IOS开发好的人才太少,他们想在C++的学生中找几个基础好的,培养培养。然后,我跟他说了我的想法,他说,你现在找的不是一份普通的工作,而是找一份自己感兴趣的工作,这样很好,有自己喜欢的方向,专注的做下去,将来一定能成为大牛。借他吉言,希望真能成为技术大牛,哈哈。几天后,终于来了个对口的搞数据库的面试官,电话里聊了1个小时,全是数据库基础,这次面试,我感觉面的超级爽,感觉把我知道的都说了出来,跟面试官很有共同语言,我回答他的问题,都是用自己的理解来回来,而不是背课本,这点他也很满意,面试后直接跟我说,他也学到很多东西,呵呵。网易面试唯一的遗憾是没有遇到姜承尧前辈,我听三面面试官说,他最近休婚假了,嗯,不过没事,今年的Oracle技术嘉年华上可以见到他。后来的HR面,我说了工资,要的比较高,HR也没说什么,过了好久,也没见网易发offer,我还以工资要高了,联系了一个数据库团队的员工,他说我的简历没在他们组,不过他费了九牛二虎之力给我搞来了,他说,我一开始的部门在IOS,后来在数据可视化组,最后才到数据库组,好吧,感觉有点乱,简历被人到处传。嗯,那个员工是郭忆,我看过他DTCC上的分享,所以在微博上联系过他。最后,十一之前,收到了网易的offer,待遇还不错。后来有个员工在我发了拒信后,又联系我了,说想让我过去,给我再加工资,可惜我等了半个多月也没消息,估计有其他变化吧。
6.踌躇满志的美团
美团是最早面试的,7月10号,就参加了内推面试。之所以,这么早就有机会,是因为朱晏师兄给内推的。朱晏师兄是美团云的高管,然后七月份来我们计算所当模拟面试面试官,我当时是工作人员,没有参加,但在中场休息的片刻,跟他聊了几句,一开始他还不太乐意,毕竟是人家的休息时间,最后听我扯了两句后,他觉得我还挺牛逼,就收了我的简历,不出意料,第二个礼拜就收到面试了通知。美团工程师文化也很重,整个面试过程没有HR参与,而且也是唯一一家每一面都要写代码的公司,即使是最后的架构师面试。一面,先聊了聊项目,还是那些东西,分布式系统的,比如CAP理论啥的,实习做的中间件,各自优缺点啥的,好好搞了,基本没问题,最后让我写了一个最长不重复子串的题目,我没有相处最优解,哎,算法太渣。不过还是很快写出了暴力方法,说了点优化思路,一面过了。二面的面试官,大大咧咧的,由于一面面试还不错,一开始就给他比较不错的印象,很多问题都没有问细节,比如就问了问会不会GDB调试,熟不熟悉Linux内核,了不了解Linux系统调优等,估计就想看看我的知识面,然后接着就是项目,他对我的实验室项目的算法细节比较感兴趣,我就随意给他讲了讲,貌似他听懂了,哈哈。最后出的一道算法题,两个有序数组,求交集差集,很简单,分分钟搞定,bug free。面完二面,已经中午了,吃完饭,来一个架构师,面的问题也比较犀利,我的项目中,有个地方加了锁,他说可以不用加锁,我仔细一想,确实是,虽然有点负面影响,但是不会造成程序崩溃或者数据异常,回来后,我也把这个建议应用到了项目中,他出的算法题是,两个排序数组,求第K大的数字,跟第二个面试官很像,搞定后,我们就开始聊天了,说了说平时的学习方法,聊了聊对技术的看法,今后的发展等。面完试,我感觉应该没问题,随口问了句,您感觉我怎么样,他想都没想就说,拿个offer肯定没问题,那个时候我就明白应该有个好一点的offer了,结果也确实是,比一般的批发价高了一点。最后有趣的是,我拒绝美团的offer后,后来一面面试官给我打电话了,说他现在是美团云RDS的负责人,问我还有没有可能去美团,我当时想好了去阿里了,就婉拒了。其实现在想起来,美团的发展潜力貌似还真比阿里大,感觉美团云的RDS还有很多工作可以做,比如资源隔离都还没有,用户拥有最高的权限,不太安全,还有听说他们最近要做个中间件,这个跟我实习的比较相关,感觉他们还是挺需要人才的,如果我最后想去的话,估计谈谈薪水,还能涨一点。就像丁奇跟我说的一样,美团这一块跟他们刚开始一样,都是属于起步阶段,负责人感觉也是做其他的,因为他是我一面的面试官,当时我感觉他不是很懂数据库,开发倒是懂得很多,还问了我zookeeper的原理。
总体来说,美团的机会还是挺好的,我在考虑要不要过去实习一段时间,呵呵。只不过,美团云的口碑也还行,阿里云感觉发展太快了,很多服务不太稳定,美团云是一步一步稳扎稳打,提供的服务都很稳定安全,而且听说公司又新建了一个北京机房,看得出高层的决心,在美团的校招宣讲会上,我还专门问了问美团的高管,他给与的答复是,美团云是将来发展的重点,看得出他们的野心。所以现在加入他们,是件不错的事情。说不定,以后就跳槽到美团了呢~
7.别具一格的360
360给人的感觉,就是很奇葩,做同样的事情,就非要跟其他公司不一样,我算是领教了。首先跟其他公司一样,我也是走的内推渠道,然后他居然跟我说还要笔试!笔!试!要笔试的话,我走你内推干啥,呵呵。然后,我无奈参加了笔试,结果所有题目基本都是C/C++,不管你报的是JAVA还是C/C++都是一套题目,考的都还是很偏的知识点,这给搞JAVA的同学填了很大的苦恼,当时我笔试的时候,由于第一次笔试,也是仅有的一次笔试,有点紧张,后面大题没做好,一道题都没有AC,然后过了1个月,HR打电话跟我说,我过了,呵呵,是我简历太牛逼了还是其他同学实在太差了?给我的感觉就是笔试基本没用,刷人用的,面试的时候面试官还出了跟笔试一模一样的题目。当然,还不只这些,最让人匪夷所思的还在后面,HR都通知我面试通过了,他还让我做笔试题??做就做吧,结果一看都是那些行测题。。。我擦,啥时候互联网都要完行测题了,行测题也就算了,居然好几百道,当时我就醉了。
咱来说说面试吧,面试也比较一般,二面技术面,一面问了问项目,他也对我实验室项目的算法比较感兴趣,就跟他说了说,还做了一道题,实现atoi,好吧,也很简单的。最后出了一道题,100万的浮点数,均匀分布,怎么快速排序,这个问题我回答的不是很好,其实用桶排序就行,时间复杂度能到O(n),然后这个问题我想的太复杂了,其实很简单的,不过在面试官的提醒下还是答上来了,一面过后二面,二面是360搜索团队的leader,感觉水平就是不一样,问了一个bitmap的题目,一个程序中栈中数据分布的题目,一个二进制中求1的个数的题目,还有一个倒排索引的设计题,最后让给出一种方法,求两个排序数组的第K大元素,当然用两个指针那种方法,人家还不满意,说大数据情况下会导致比较次数太多,让我接着优化,我想不出来,他就说跳着比较,第一次跳1,第二次跳2,第三次跳4,一旦跳过了,在从上次的地方一个一个比较,这样当数据比较大的情况下,能很好处理,然后我提出了这种方法,需要考虑cpu cache的缓存线大小,不然弄不好,性能估计提升不太高,然后他说,应届生能考虑到这个,很不错了。最后问了问,我项目中,如果需要长时间在线上测试,同时又要兼顾效率,怎么搞,我说一般用gcc的-g参数,然后带上-O3的优化,他说他们一般不用-g,这样对效率还是有点影响的,我说,那如果崩溃了,怎么破,他说直接看二进制,这对程序员的要求比较高,我当场膜拜。看样子,码农真的不好当。二面是唯一没有问项目的面试,感觉老大看不上我实验室的项目,其实感觉跟他们做的还挺相关的。最后,leader觉得我还不错,HR面开始。HR面,HR问我有哪些公司的offer,我说了一下,然后她挨个吐槽了一下那些公司,说百度大公司,你去学不了东西,螺丝钉。阿里云,她不看好这种面向企业的服务模式,腾讯,QQ都做那么多年了,去了也是搬砖,美团云也一样,刚开始做的很挫,去了不好,网易,她实在找不到理由了,就说那边上班是996。然后话锋一转,说了说360是多么多么的好,搜索团队才100多人,每个人都能干核心的事情,没有大公司的臃肿也没有小公司的不靠谱,她觉得面向普通用户的服务才是王道,我就在一边陪笑,感觉她还真会扯淡。360最后给的待遇一般(月薪还可以,但是发的月份数比较少,不过感觉360的HR挺敬业的),但是说能解决户口,说是前几年北京生源的都给解决了,所以想要户口的还是可以考虑的。办公环境还不错,厕所很干净,哈哈。看样子,老周对自己的员工还是挺好的。
8.总结
总的来说,我找工作还是挺顺利的,虽然中间有点小插曲,但是总体来说还是很不错的,最后我还是选择了被很多人唾弃的阿里,首先,今年缩招,能留下来了,给15K以上的,应该都是应届生中的精英,能跟一群志同道合有技术有能力的同学一起加入阿里是一件很幸福的事情。其次,其他方面不好说,但是阿里在数据库方面的实力真的毋庸置疑,不管是AliSQL,还是WebScaleSQL,亦或是OceanBase,在业界都有很有名气,阿里有何登成、禇霸等数据库的领军人物,同时阿里数据库团队还做了很多无私的分享,我从中也学到了很多。第三,我去的阿里云RDS团队,每个月出一期内核月报,让人觉得真的在做实事,我也联系过几个员工,大家都还比较满意,在工作的同时也有机会充实自己。最后,自己是浙江人,而且是独生子女,不能离家太远,父母到时候可能需要照顾,亲人也都在浙江,杭州房价也不是很高。综上所述,最后选择了阿里云,希望这次选择,若干年后,我不会后悔。
最后,我总结了几点,如果您刚好也是学生,那么估计对您很有用。
1. 有目标有规划。早点想清楚自己到底想要什么,是否走技术这条路,还是去国企银行过稳定的日子。其实这没有什么好坏,很多女生我还是建议你去国企银行好,不要太累。如果打算去互联网的话,想想自己的核心优势是什么?是算法?是工程?是数据挖掘?还是机器学习?最好给自己订一个方向,朝着这个方向不断努力,比如说,我很建议大家去学前端,现在前端很缺人,而且前端通用性好,是家公司都要前端,比较适合非科班出身的同学。找工作,人家需要的不是通才,而是专才,其他你可以不会,但是属于你自己领域的活儿,必须有很强的战斗力,这才叫做核心竞争力,而不是只会刷题。
2. 结交业界同行,发展自己的人脉。这一天是在做好上一点的基础上的,如果你真的对某一个领域感兴趣了,钻研下去了,你会发现某个小领域国内乃至国外的专家也就那几个,你可以关注他们的,获取业界最新的发展并试图跟他们交流,用阿里的话来说,就是扩大不断扩大自己的影响力,让业界的同行都认识你,这样跟他们混熟了,你不仅找工作容易了,而且以后跳槽也方便了。新浪微博、技术博客、微信公众号都是很好的方式。
3. 最后一点,就是扩展自己的知识面,前面两点相当于是深度,这点是广度。技术的广度和深度都很重要。有句话说的好,如果你知识面很窄,当你实际碰到问题的时候,都不知道在搜索引擎中用什么关键字搜索。多看看CSDN、IT168等技术门户网站,了解一下业界动态,是件很有意思的事情。另外,参加一下会议也很好,比如说,我最近以志愿者的身份(主要是门票太贵)参加了中国系统架构师大会,免费聆听了许多大牛的分享,不仅开了眼界还认识不少志同道合的朋友,虽然我只是一个学生,但是当很多嘉宾明白我的动机后,还是很乐意跟我做朋友的。这么好的事情,何乐而不为呢?
9.结束语
找工作是件磨练人意志的事情。早准备,早下手是王道。只要你真的有实力,不管外面是不是“互联网寒冬”,这个冬天你都不会冷!