掐指算来,从2009年10月开始找工作到2010年5月15号找工作完全结束,期间经历了7个半月!在这期间有很多值得记录的事,但时间和精力所限一直没有动笔(部分也是因为本人比较懒惰^_^).现在总算有时间静下来整理一下这期间所见所闻了.
09年9月开始复习很多计算机基础知识,这部分由于以前就比较熟悉所以并没有花费太多时间,主要是将Mark Allen Weiss的"Data Structures and Algorithm Analysis in C"数据结构过了一遍,由于以前就认真学习过这本书,因此到十一假期结束时就过完了.由于对自己比较有自信,所以没有重视很多找工作宝典,比如"程序员面试宝典".在这方面,后来吃了大亏.导致很多比较在意的公司的笔试关都没有过,其中就包括EMC,VMware,Microsoft,完美时空和网易有道,很多公司的题目都可以在这本书里找到原型.等我意识到这一点时,很多公司的笔试都已经结束了,这里得到的教训就是:充分的准备在任何时候都不是可有可无的,哪怕你已经成竹在胸!这里推荐几本找工作时可能有用的参考资料:
1,Mark Allen Weiss, "Data Structures and Algorithm Analysis in C".
2,欧立奇,刘洋,段韬, "程序员面试宝典".
3,王晓东, "算法设计与分析"
4,By Daniel P. Bovet, Marco Cesati, "Understanding the Linux Kernel"
在这些书中,前三本对笔试过关很有帮助.最后一本对面试帮助很大.我最后找的工作就是依靠熟悉Linux内核得到的.前三本需要在找工作之前就熟悉,而第四本可以一遍找一边学,最好是对着内核的源代码学习,效率会很高,而且理解的也更深入,对内核的很多细节要有深刻的理解,比如内核中使用了很多同步互斥操作,spinlock,atom,mem_barrier等,需要知道他们的区别,需要了解他们的使用条件等.
处女笔给了网易有道,十一之前的一天,笔完后有道的人说十一后就会通知(可惜,直到现在也没有收到通知,郁闷^_^),不给通知是最令人不爽的,过不过都给个邮件其实也不需要多少时间!这一点很多外企做的不错,后来杭州的微策略软件他们就给了一个邮件通知说我的简历没有通过筛选,主要是公司在杭州我不是太别想去,那时候还没有本科的成绩单,只有硕士的成绩单,因此没有提供他们比较看重的成绩单.我的第一个offer在09年11月30日才到来,从09年10月算起到11月30有2个月笔了很多家,但获得的面试机会寥寥,不过我的面试能力还不错,只要有面试机会,我一般都能面到最终面.期间,处女面给了华为(华为不需要笔试^_^),一直面到最终面,后来不知道什么原因他们没有给我提供offer,不过由于我也不想去华为,所以也没有放在心上.
俗话说福无双至,祸不单行.但这句话对我好像没用,offer不来则罢,一来就24小时内来3个.从11月30到12月1号,中天联科,ThoughtWorks,安湃软件先后向我提供了offer.中天联科的电话打来时我正在去搜狗面试的路上,接到电话后也感觉不到迎面而来的寒风了,只感觉到兴奋溢满全身^_^.那一段时间面试了很多公司,甲骨文,卓越亚马逊,腾讯,搜狗,泰为,开心网等,其中大部分都面的不错,卓越亚马逊和泰为准备提供offer,还有一部分由于hr面时的待遇问题挂了,呵呵,所以,如果要是特别想进某个公司,最好还是在待遇方面要好好考虑和表达!这些公司中,我最想进的是ThoughtWorks,可惜,他们要求新员工去西安工作,虽然经过我争取,他们也只答应2年后才帮我调回北京.期间,他们让新员工选择配置的笔记本,居然都是MAC的,哎,羡慕啊!考虑到去西安工作,我最终还是拒绝了ThoughtWorks.这公司些提供的offer待遇一般还是不错的,都在8k~10k左右.
再后来2010年的春节就到了,期间收到了WindRiver和龙芯公司的offer.WindRiver是我最终选择的公司,这里有必要说一下他们的笔试和面试,笔试在北邮进行的,一间大教室座无虚席.笔试后,大约半个月WindRiver的hr通知进入了面试,由于事先就知道WindRiver是嵌入式行业的老大,而当前基于Linux的嵌入式正得到大力推广,因此,面试前对着Linux内核代码认真的又复习了一边"Understanding the Linux Kernel",事实证明这个复习真是太有必要了,面试时很多知识点都是关于操作系统的,其中就问到了需要用spinlock的原理来解决的问题.WindRiver两面,但技术面就是第一面,第二面和负责人随便聊一聊以及谈一下对待遇的要求,我没敢要求高,提出15/y,负责人算了算说可能达不到.虽然心里有点小失望,但毕竟还是一个比较喜欢的公司,因此就跟他说只要差的不多也能接受^_^.WindRiver最终在北京招了15个人,竞争还是很激烈的.10年5月的时候,公司通知我户口指标拿到了,让我在5月15号之前准备好材料,心里的一块大石总算落地了.基本上就决定进WindRiver了.
年后基本上没有时间找工作了,需要准备毕业论文的东西了,中期,预答辩,论文送审,论文答辩等.不过3月底的时候由于有同学推荐又面了baidu,总共进行了三面,前2面都是技术面,根据简历扩展项目,特别第二面问到了为什么Java程序会出现很多乱码问题,这个问题刚开始我也没有头绪,后来通过和C语言编译器的对比分析,提出了问题可能出在JVM中,因为我们知道乱码是因为程序中的文本串的编码在显示时无法被识别引起的,而C语言的文本串都是直接使用操作系统的编码方式,因此一般不存在乱码,而Java语言的文本串是由JVM处理的,不是由操作系统处理,而我们推测JVM中应该有一个语言编码表,各种编码如果能够在JVM中找到处理方式就不会乱码,否则就是乱码.前2面顺利通过后,又进行了经理面,主要问团队合作以及如何处理同事之间关系的问题,难度都不大.大约一个星期,baidu的offer到来了,这给我出了一个难题:baidu相对WindRiver来说待遇好一些,但是他们的户口解决能力比较弱,而且在baidu不是搞我喜欢的系统开发,大部分都是网页和数据处理.经过一个月左右的艰难对比和分析后还是决定跟WindRiver签三方,这期间IBM还联系过我,最终决定不浪费他们和自己的时间了^_^.找工作之旅到此基本上就算圆满结束了.
这里面有一些经验之谈,有兴趣的可以看看,希望对后来者有所帮助:
1,有些公司内部推荐很重要,比如baidu,网易,搜狗等,内推过了直接面试,不用笔试,baidu我就是笔试没过,后经同学推荐面试过了的.
2,有些公司内推基本没什么用,还是需要笔试.比如EMC,VMware,Microsoft,IBM等.
3,对我来说,笔试比面试难过很多^_^!
4,平时积累最重要.比如我以前就对编译原理,操作系统,计算机数学,算法和数据结构等很熟悉,所以对程序的设计,内部构造以及运行原理等有很深刻的理解,在面试技术时一般都没有问题.
5,面外企时,还需要准备一些简单的英语会话,一般面试官如果觉得技术面的不错会在结束时用英语和你交流几句.我刚开始在这方面由于准备不足吃了亏,面EMC的时候,最后面试官让我用英语描述一下链表的就地反转,由于没有准备,说的磕磕巴巴,本来很简单的问题,结果自己把自己绕进去了,挂的非常可惜!
阅读(2462) | 评论(0) | 转发(0) |