本人现在上研三,前段时间忙着找工作。收了5个offer,华为、中电科集团公司(做C919的航电模块)、腾讯、百度,(10.1之后又收到锐捷网络的成都offer,待遇还不错,在成都一个月1w,发13到15个月,但是公积金只交8%,我一听就有点不舒服,然后就把他拒了),其它的像美团,去哪儿网就没去笔试,阿里由于某些原因悲剧了。今天跟腾讯签了三方,就算是卖身成功吧。之所以签腾讯不签百度,是因为百度让我去深圳,我当然就拒了,要去百度就去北京(PS:后来又收到北京百度的offer,又把它拒了一次,因为那个时候我已经签腾讯了),去深圳就去腾讯。再者腾讯2014年要在成都建一个大的研发中心,老大说我在深圳干几年可以调回成都(到时候就可以跟小宝贝团聚了),所以就选腾讯了。
在找工作的过程中感触颇多,遂决定写下来,希望能给学弟学妹们一点帮助。华为,中电科集团公司就跳过吧,没什么技术含量。就只说腾讯和百度。
首先是笔试。腾讯的笔试比较注重基础,比如C/C++语言的基本语法、基本的排序算法、树、Hash表等等基本的数据结构和算法以及一些简单的大数据题(一般是附加题)。所以要过笔试就把本科的C语言、数据结构、操作系统、算法、计算机网络好好看看就没什么问题。百度笔试题比较注重操作系统和算法。要过百度的笔试就要把前面提到的书都掌握了,还要掌握《算法导论》上面的算法,最好是搞过ACM。
然后是面试。一般百度和腾讯笔试能到40左右都能进面试(100分制)。面试的时候,腾讯一共有3面,2面技术+HR面。百度是4面,3面技术+HR面。
(1) 腾讯一面是一线技术员,问的问题都是基础性问题,基本都是计算机网络的两种模型或者TCP的连接状态机等等,考的算法也是一些基本算法。二面是部门boss面,基本不会问技术细节,一般都谈谈你在实验室做过的项目,还有就是给你一个开放性的问题让你提出解决方案或者让你评判上一个面试者设计的系统的优缺点(我不幸的两个都碰到了),最后就是谈谈你的职业规划或者对某些事情的看法。HR面就是聊一些生活琐事,比如,做项目的时候碰到问题怎么处理,当压力很大的时候会怎么办,感觉有点像华为的性格测试。百度的面试就不是腾讯的格调了。
(2) 百度一面基本都是项目+算法,面试官会抓住你项目中他感兴趣的一两个技术点往下问,直到问到系统底层或者你答不上来为止。算法方面有些是《剑指offer》上面的,其它都是一些类似于ACM的题目,一般是先阐明思路,然后动手写没有错误并可以直接执行的代码,面试官会对你的代码逐条推敲(反正我的面试官是这样的,我听说有面试官让同学直接在他电脑上写程序的,还有让证明你算法正确性的)。二面跟一面一样,是一线技术员的交叉面试。三面是boss面,原以为boss面不会问技术细节问题,结果boss问了两道算法题,一道编程题(让我写操作系统里面的生产者和消费者问题的C语言完全代码,要能直接运行)。这里要特别注意三面之前要跟HR问清楚你的三面官是哪儿来的,如果你想去某个城市的百度,就让HR给你安排到对应城市的boss那儿去面,我当时不知道,HR把我安排到深圳百度的boss那儿去面,面到最后boss让我去深圳,给我做了半天的思想工作,我还是把他拒了,但是boss还是挺好,没有直接不要我,而是把我推荐到北京那边去了(像我这种情况就是北京百度的备胎,因为北京boss肯定先要他自己面过的人)。百度HR面就问了问你家几口人,家是哪儿的,现在有几个offer等等一些非技术问题。
(3)锐捷网络,锐捷网络我好久之前就笔试了,最后都搞忘了我还投了锐捷。十一之后才给我打电话通知我笔试过了(记得笔试题目都是很细节的嵌入式C语言问题以及一些很简单的算法),让我准备面试,但是我当时给HR说我已经签了腾讯了。然后又问我还有哪些offer,我就把其它的offer都给她说了一下,结果非要让我去面试,说什么要是我想去他们可以等我违约。面试只有一面,还是电话面试,问了一下项目、路由器的几种典型应用场景、IP地址的分类、linux方面的一些简单问题,然后也问了有哪些公司的offer以及我想不想去他们公司工作之类的问题,就这样过了。工作地点是我很想去的成都,但是锐捷网络毕竟太小了,对以后的发展不利,而且公积金买的太低了,于是就把她拒了。
最后是签约。这就是今天下午的事了。腾讯老大(SNG事业群)对我很好,之前还主动给我打电话让我看看相关方面的书加强一下相关方向的知识。
下面我就把我看过的书(主要部分)的照片传上来,以供想做C/C++方向的学弟学妹们有个借鉴。这些书的阅读顺序从下到上。顺便提一句,看这些书的时候最好在ubuntu下用gedit/Vim编辑器来编写程序,使用GDB来调试程序,写makefile文件来编译程序。这些东西在面后台的时候基本都会问到。