百度:9.22笔试,9.23一面,9.24二面,。9.26三面,9.27offer。职位:PC端开发工程师
9.22笔试,3道问答题(死锁,oo的几大原则,windows内存管理方式),3到算法题(都挺简单的),一道系统设计题(具体什么记不清了,反正不难),这次考的比起往年的,算是容易的。Pc客户端的题和软研的题大部分都一样,好像最后那个系统设计题不一样。
考完之后,就觉得面试跑不了了。当天晚上准备放松打羽毛球的时候,收到面试通知(明天10点),然后了打了会羽毛球,放松了下。然后问问同学,沈阳地区报考PC客户端的职位基本上都收到面试通知了,也就10几个吧,看来竞争力不是很大。自动化平台的收到面试通知,运维也收到了,软研的就比较悲惨了,去参加笔试的人500+,好像更多,反正就是很多,收到面试通知的就比较少。大家以后再报考职位的时候注意变通下了。晚上回到宿舍,拿起windows核心编程,扫了下重点,windows常考的,消息机制,多线程等。
9.23一面:我是做公交车慢悠悠的去的,顺便在路上看了下平时做的总结(就是几个常考排序算法,和stl的一些总结),在公交车上,我的小心脏一直蹦蹦的跳,很是紧张,试着跟几个不认识的人交谈,还是紧张。 到了面试地点9点半了,我感觉到比在公交车上更是紧张,小心脏蹦蹦的跳个不停,明显加快,中间媳妇给打了个电话,安慰我说不要太紧张,是你的就是你的,不是你的总归不是你的,这时我想起一句话:得之我幸,失之我命。我告诉了媳妇,我可能太在意了吧,以前的几个面试都不紧张。挂了电话,还是紧张,然后去洗手间洗了洗手心的汗,稳定下。“**,来跟我去**房间”,一个女的带我了面试官房间,我试着和那个女的交谈以减少我的紧张感。“今天人很多啊”,“今天天气不错”。那女的说了一句“不要紧张,没事的”。然后就进了面试官所在的房间。面试官是个年轻GG,GG先让我坐下,握下手(感觉不错),然后让我自我介绍下。我就balabala的做了下自我介绍。这个时候,好像已经不紧张了。然后就是谈项目,我就把我所做的东西(以前准备过的)一一给他说了,好像挺感兴趣,我就把我们的一些设计给他介绍下,然后gg说这都是你设计的吗?我说是的。(其实不是一个人的成果,但是这个时候没办法了)。GG面带微笑,感觉挺满意的样子。在我讲项目的时候,我已经感觉到我貌似已经不紧张了。然后问下了,C++的多态实现机制,我直接把菱形继承虚表结构在纸上画了下。GG也很满意。然后就问了下windows的消息机制,SendMessage和PostMessage的区别,如何把后者做成跟前面一样(早有准备);多线程如何实现通信的,如何同步的(早有准备)。Dll和lib的不同?开发中遇到的问题,如何解决的?当然也问了几道算法题,统计一些数字中那个出现的最多?(简单吧),字符串逆转?我说笔试不是已经考了吗,(笔试是字符串左移n位),然后又考了个迷宫的算法题。自我感觉,考我的算法题都很简单。基本上面试官问我的题,我都对答如流(有点夸张呵,也差不多)。最后gg说,你比我当时强多了,让我倍感很爽。一面基本拿下吧。晚上10点收到明天二面通知。班里的其他两个PC客户端的挂掉,就剩下我一个了。争口气呵。
9.24二面:二面的时间是上午11点。我和一个参见软研一面的同学一起去的,我发现我们两个都很紧张。我的小心脏还是一如既往的蹦蹦的跳,但是我表面上看起来比较淡定。我还趁此安慰我同学,得之我幸,失之我命。说好的11点,11点10分面试官才喊我进去,看来前面的同学面试的不错啊。表示压力很大,走进面试官的房间之前,还是很紧张,我使劲跺了下地板。进了面试官房间,一个年龄比教大点的GG,30多岁,跟我二导年龄差不多,一看就知道经验丰富,比较厉害。上来就让我做个自我介绍,我就巴拉巴拉的介绍了。然后就把我的笔试卷子拿了出来,我一看80分(心里暗自高兴,不少呵)。知道windows内存管理的几种方式吗?(笔试的第三道问答题)堆栈,虚拟内存,内存映射文件。GG把我卷子给我一看,那道题0分,问现在让你回答知道怎么回答吗?我说,《windows核心编程》就是我说的那三种,如果不是这三种,应该就是段页式管理吧,这个东西,我考研的时候弄的挺明白,现在好长时间不看了,我也说不出来具体怎么回事了,就是知道有这么回事。GG也没说什么。问,你的项目和技术,一面已经问过了,我就不再重复问了,你最擅长什么,就是你比别人强的地方。答,C++稍微好点。问,那C++中那块最好。答,我感觉我oo方面稍微好点,然后就讲了下oo。问,还有吗?答,STL比别人强点,看过源码剖析,侯捷的那本。问,你简单介绍下。答,把STL的六大组件说了下,组件之间如何粘合的说了下。问,写下vector的删除一个元素。答,我就边写,边说,这里会出现迭代器失效问题,然后讲了下如何避免这种问题,顺便说下动态增长的问题。问,用过智能指针吗,智能指针能放在容器里面吗?答,可以吧,我用的是采用计数方式的ptr,但是用这个做返回值的时候,有时候会出现莫名的错误,由于项目比较急,也没有探其究竟,stl中自带的智能指针没用过,不太知道。针对这个问题,我感觉我有点懵,让我回答为什么智能指针不能用在容器中,我也不太知道原因,就硬着说了点,后来GG给我讲了下,当时GG语速很快,我也没理解说的什么。GG继续问,stl中实现了那些排序算法,为什么用仿函数,不用函数指针,配接器,一元、二元仿函数的区别和使用情景。我真的是招架不住了,回答的也是越来越不靠谱。然后我就说,老师,我只是了解的比我周围的多,也没这么精通,只是了解的比较多而已。GG就不问stl了又问,C++那块还比较熟。答,我说多态那块,虚函数表,我就把菱形继承的虚表分布画了下,这样的虚继承是为少一分基类的复制。问,不采用虚继承的话,会怎么样?答:在孙子类中,基类估计会有两份,我没试验过,估计就是这样。继续问,除了这些,你还擅长什么?这是心理想:这面试官这么这样啊,C++方面我就会那些东西,还不让讲我做的项目,我还擅长啥啊,算法又不行,这可怎么办?顺便我瞅了下我的简历,项目管理。我就回答:项目管理方面稍微比别人强点。GG就针对项目管理方面发了一连串的发问:项目管理的流程,什么是敏捷开发,如何针对不同的人进行分工,如何调节你手下之间的矛盾,项目开发中最重要的是什么?等一系列问题,问的我最后说,就是这样了,反正就是不知道怎么回答了。这个完了之后,又问,你还擅长什么?我说学习能力比较强,然后说了下为什么强,怎么强的。GG又是针对这些进行进一步的提问?这个完了之后,又问,你还擅长什么啊,我说没了,我比别人强就这么多了。又针对我简历上写的“自我评价”,进行一个一个提问。面了将近50分钟吧,我出来的时候12点了。
这时候感觉:回答的一般把,不知道有没有戏,感觉还有点戏,感觉已经没戏了,还不确定,心情既紧张还害怕,参加过面试的人应该都有这种体会。晚上在宿舍一直等消息,等到11点也没接到3面电话.完了,百度2面挂了,好可惜哦。都怪自己当时没进一步看看stl。心里很是难受,发了篇微博:现在还没收到通知,百度二面应该已挂。心情很是沮丧。百度二面后,马上参加了中兴移动的一面了,感觉还可以,一面很简单,等待中兴移动二面,关键是这个时候和我一起参加中兴移动一面的同学收到了二面通知,而我什么都没有?心里好是失落。大家应该能体会到吧。9.24号晚上11的心情。看到媳妇发的微博: 坚守心中的希望,可以沮丧,但那股星星之火不可湮灭,等待时机——燎原 。知道这是鼓励我的,谢谢老婆。
9.25等待:昨夜无眠,早晨起来去参加54所的招聘会,直接被鄙视,本科学校不行,简历不要。期间给中兴移动打了两次电话,说二面是分批发的,让等待,没办法,我确实很着急了。下午在东大参加光宇游戏的宣讲会,期间收到一个电话,很是兴奋,一看不是010,沮丧,接起电话:您好,我是上海先锋商泰,恭喜您通过面试。。。。。。。很是高兴,终于有offer了,待遇还不错。悬着的心下来了,立马给媳妇打了个电话报报喜。
晚上在东大参加人人网笔试,正做着题呢?电话来了,您好,我是baidu公司。。,请您明天下午5点接收电话3面。。。喜悦之情油然而生。给媳妇去了电话,报下喜。
9.26电话三面:听说3面不问技术了,我就准备了下开放性的问题。然后在实验室等着,等到下午5点。手机准时响起。三面就是聊家常了,本科那个学校,为什么报考哪里?高考引起的地方差异之类,进行探讨。针对简历又问了下。等等,30多分钟吧。我问了个问题,如果拒了,会发拒信吧。他说会的。自我感觉不错,应该没问题吧。特此发了个微博: 自我感觉百度三面挺顺利的,不知道最终结果如何,等待。晚上也收到了人人的面试通知,中兴移动二面通知。
9.27offer:跟研究生部要成绩单准备去参加中兴移动的二面的时候,期间收到了百度的offer短信。还去什么中兴移动,去什么人人啊。到此找工作正式结束,找到像百度这样的公司,对我来说足矣。
总结:找工作就像找对象啊,看顺眼了就找到了。期间经常失眠,对电话和短信很是敏感,期间都不让媳妇给我打电话了,太敏感了。找工作,能学到很多东西。
经验:最好几个同学一起去找,相互总结,相互学习。好多公司,感觉用项目就可以忽悠拿下。
送给大家一句话:坚守心中的希望,可以沮丧,但那股星星之火不可湮灭,等待时机——燎原 。
最后感谢我的家人,我老婆,我的导师,还有和我一起找工作的好兄弟,谢谢他们一直陪伴我。
顺便附下经常考的题:
语言部分:
- 虚函数,多态。这个概念几乎是必问。
- STL的使用和背后数据结构,vector string map set
- 实现一个string。没写过和写过c++的人写出的代码是一眼就能看出差别的。譬如三大函数有没有写,引用的使用,都非常的关键。如果这方面没有经验,建议看下林锐那本书。
- c++中的多线程
算法部分:
- 判断一个单链表是否存在循环(快慢指针的方法)
- 寻找最大的K个数,编程之美2.5
- 统计数组中出现最多的数
- 字符串匹配
编程部分:
- 二分查找(频率超高)
- Strcpy考了好几次
- 快排
- 建堆,顺便说下建堆的时间复杂度是O(n),不是log,证明可以看算法导论
- 写一个函数,将字符串反转,反转方式如下:“I am a student”反转成“student a am I”,不借助任何库函数 (频率超高的一题,先反转整个字符串,然后反转每个词)
项目部分:(感觉对我来说很重要)
- 因人而异