转自:http://blog.csdn.net/luckyxiaoqiang/article/details/13000431
找工作是一个长期准备的过程,突击是没什么效果的。准备时间越长,准备就越充分,就越容易拿到好的offer。我基本上从研究生一入学就一直在准备找工作的东西,看书、研究研究笔试面试题、在线编程训练、参加实习招聘等等。当然,其实主要还是研二开始准备的,也算不上多认真,反正一天一天的积累吧。这里我把我准备的内容向大家分享一下。
一、推荐书籍
计算机的好书挺多的,我买了也有四五十本,也花了不少钱,但是这些投资都是值的,好好看一下这些书,让自己找工作时的薪水涨个几千是没问题的。当然,也有些书是电子版的。我是c++方向的,可能大部分书都是和c++相关的。
1. c、c++相关
C语言问题一般都是在笔试题中出现,面试题中问的比较少。首先是下面这三本经典的C语言书:
《C和指针》
《C专家编程》
《C缺陷与陷阱》
这里还要极力推荐的是:
《C语言深度剖析》
这本书是国内人写的,重点讲解了C语言里的一些晦涩的问题。
上面这几本书应该基本上就可以熟练掌握C语言的各种问题了,笔试题基本都能从容应对。
下面首先推荐三本C++相关的书:
《深度探索C++对象模型》
《Effective C++》
《STL源码剖析》
我觉得这三本是C++方向找工作必备的,这几本看熟了(我觉得至少认真看个3、5遍吧)至少可以搞定90%的C++笔试面试题。
下面这两本我也极力推荐:
《More Effective C++》
《C++反汇编与逆向分析技术》
如果这两本书也掌握了我觉得面试中一般没有什么C++问题能难倒你了。
当然还有很多其他经典的C++的书,有精力都可以好好去读一下,我就不一一列举了。
小结:C、C++知识是很重要的,是绝大数公司笔试面试中重点考察的知识,除了Google、微软等一些公司面试中基本不考察编程语言外,其他大多数公司都会把C++作为重点考察的内容之一,我面过的公司:百度、阿里巴巴、腾讯、网易游戏、雅虎等等都会问C++问题,当然具体问不问也可能跟你的简历、面试官的喜好有关。
2. 算法、数据结构相关
谈到算法自然少不了圣经了
《算法导论》
当然这本书我只是偶尔翻翻,但是我觉得这个应该从头到尾认真看一遍、好好做一下练习题。
下面是几本跟面试中的算法最相关的一些书籍:
《编程珠玑》
《编程之美》
这两本是最经典的了,这里面注重的是解决问题的思路,看的时候里面的问题要认真思考再参考解答。
下面两本是对具体的面试题做一些解答,同时有详细代码实现的。
《剑指Offer》
《Cracking the coding interview》
上面这四本我觉得都是必备的,里面的题目解决思路要数量掌握,能够举一反三、解决相关变种问题。同时,里面的题目,应该都要在纸上实现,然后再在电脑里实现、测试。Bug-free是面试中重点考察,面试官也会经常让面试者写测试用例,所以,平时我们要养成这些好的习惯。
下面也推荐一本经典书吧,
《算法艺术与信息学竞赛》
当然不适合算法薄弱的人看,这一般是ACM大牛的家常饭。不过,能看多少是多少,总归是会有收获的。
小结:算法是重中之重了,各个公司都把算法作为考察重点,甚至有的公司只考察算法。应该早点开始积累,比如多刷一下POJ,LeetCode等等,后面也会提到这些在线编程网站。
3. 数学相关
这方面我看的也不多,当然,我觉得这几本都很重要,对笔试面试都会很有好处的,而且这方面的内容笔试面试中考察的也很多。
《组合数学》
《具体数学》
《数学之美》
4. 操作系统相关
操作系统也是笔试面试考察的重点,我看的相关书的也不多,主要推荐下面两本吧
《深入理解计算机系统》
《操作系统精髓与设计原理》
我没有linux相关经验,但是我觉得linux内核应该好好研究一下,这方面我不懂,就不多说了。
我稍微研究过一点点windows内核源码,这里推荐
《Windows内核原理与实现》
还有和windows编程相关的
《Windows核心编程》
5. 网络相关
我基本就只看了一本
《TCP/IP详解卷1:协议》
6. 软件开发、设计相关
首先是设计模式,我觉得设计模式是很重要的,对以后工作也很有好处。当然面试中考察的不是特别深,一般就是问一下你熟悉的模式是哪一个,然后稍微问一下,估计Singleton是问的最多的。我还是极力推荐大家熟练掌握设计模式。下面这两本书配合一起看,效果相当好
《Head First设计模式》
《设计模式—可复用面向对象软件的基础》
然后是
《代码大全》
这个就不多说了,也是必备的。
我再极力推荐两本重构相关的书
《重构—改善既有代码的设计》
《重构与模式》
这两本可能对面试没有直接的帮助,但是应该会有潜移默化的影响吧,对以后工作肯定是相当有好处的。
7. 搜索引擎
这个不是必备的了,但是我为了丰富一下简历,也看了几本书,主要两本吧
《搜索引擎—信息检索实践》
《这就是搜索引擎—核心技术讲解》
这两本配合着看,就可以把搜索引擎原理、相关技术了解得差不多了,我简历上写了这个,面试中也经常被问到,应该是可以加分的。
8. 数据库
数据库也是重要的内容之一,尤其是数据库底层实现相关的一些东西,索引啊等等。
首先是大家最熟悉的
《数据库系统概念》
还有一本很好的,就是讲解数据库底层内容的
《数据库系统实现》
8. 其他
这里主要是推荐一本《垃圾收集》,这个算是比较底层的东西了,但是这个绝对的会给面试加分,我也很受益于这一点,同时可以稍微研究一下JVM的垃圾收集机制,可以参考《深入理解Java虚拟机》以及一些相关文章。
还有《CDN技术详解》,我觉得也不错,可以很好的了解一些大型网站使用的一些技术等等,面试中也常常会问到一些大型的网站系统设计问题,负载均衡等等。
二、推荐网站
1.LeetCode
这个网站里有很多经典面试题的讲解,当然最主要的是它的OJ系统,里面有100多道题目,和ACM OJ不同的是,这里面的题目都是来自于面试题,所有更有针对性,建议至少刷3遍,我刷了差不多5,6遍,多刷几遍不丢人。
2.POJ
这是北大的OJ,leetcode满足不了你,就可以来这刷了,如果还满足不了就找国外的OJ吧,USACO、URAL等。
3. NOCOW
这里也有不少acm相关的资料,推荐看一下USACO和URAL的题解。
4. Careercup
国外著名的帮助找工作的网站,里面有很多Google,MS,FB,Amazon等等名企的面试题,有精力就一道一道做吧。
5.CSDN
有不少人的博客还是不错的,总结很多笔试面试相关的东西,比如v_JULY_v。也常关注一下热门博客。
三、其他
在这里推荐一下陈利人的微博(http://weibo.com/lirenchen),该微博里有很多不错的资料。建议认真读一读google云计算的三篇论文,毕竟云计算仍然是热点。好好研究几个开源项目的源码,如levelDB。做几个有水平的项目。找个好公司实习一下,著名互联网公司的实习经历也挺重要的。
总结
以上基本上是我为找工作准备的东西,当然我也没把我所列的每一个方面都做的那么充分,但是只要准备个差不多,我觉得国内的公司BAT之类的还是不在话下的,希望来年准备找工作的同学早点准备,到时候拿到理想的offer。