程序员如何快速准备面试中的算法
准备面试、学习算法,特别推荐最新出版的 新书《编程之法:面试和算法心得》,已经上架 京东等各大网店\html
\前端
我决定写篇短文,即为此文。之因此要写这篇文章,缘于微博上常有朋友询问,要毕业找工做了,如何备战算法。尽管在微博上简单梳理过,以下图所示:nginx
但因字数限制,许多问题没法一次性说清楚,故特撰此文着重阐述下:程序员如何快速准备面试中的算法,继而推荐一些相关的书籍或资料。顺便也供节后跳槽、3月春季招聘小高潮、及6月毕业找工做的朋友参考。git
\程序员
对于立志进一线互联网公司,同时不知足于一生干纯业务应用开发,但愿在后端作点事情的同窗来讲,备战面试中的算法,分为五个步骤,以下:github
1、掌握一门编程语言面试
首先你得确保你已掌握好一门编程语言:\redis
掌握一门语言并不容易,不是翻完一两本书便可了事,语言的细枝末节须要在平日不断的编程练习中加以熟练。
2、过一遍微软面试100题系列算法
我从2010年起开始整理微软面试100题系列,见过的题目不可谓很少,但无论题目怎般变化,依然是那些常见的题型和考察点,固然,不考察任何知识点,纯粹考察编程能力的题目也家常便饭。故无论变幻无穷,始终不离两点:①看你基本知识点的掌握状况;②编程基本功。编程
而当你看了一遍微软面试100题以后(不要求作完,且这个系列的有些答案存在很多问题,建议以个人新书《编程之法》为准),你自会意识到:数据结构和算法在笔试面试中的重要性。
3、苦补数据结构基础
若是学数据结构,能够看咱们在大学里学的任一本数据结构教材都行,包括链表、数组、字符串、矩阵、树、图等等,若是你以为实在不够上档次,那么能够再看看《STL源码剖析》。
4 、看算法导论
《算法导论》上的前大部分的章节都在阐述一些经典经常使用的数据结构和典型算法(如二分查找,快速排序、Hash表),以及一些高级数据结构(诸如红黑树、B树),若是你已经学完了一本数据结构教材,那么建议你着重看贪心、动态规划、图论等内容,这3个议题每个议题都大有题目可出。同时,熟悉经常使用算法的时间复杂度。
若是算法导论看不懂,你能够参看本博客。
5、刷leetcode或cc150或编程艺术系列
而不管是准备国内仍是国外的海量数据处理面试题,此文必看:教你如何迅速秒杀掉:99%的海量数据处理面试题。收录于新书《编程之法》第六章。
另,多看看优秀的开源代码,如nginx或redis,多作几个项目加以实践之,尽早实习(在一线互联网公司实习3个月可能赛过你自个黑灯瞎火摸爬滚打一年)。
固然,若是你已经具有了上文所说的语言 & 数据结构 & 算法基础,能够直接跳到本第五步骤,开始刷leetcode或cc150或编程艺术系列。此外,特别推荐此面试求职&算法在线课程。
\
学习最忌心浮气躁,急功近利,即使练习了算法,也不必定表明能万无一失经过笔试面试关,由于整体说来,在通常的笔试面试中,70%基础+ 30%coding能力(含算法),故若是作到了上文中的5个步骤,还远远不够,最后,我推荐一份非算法的书单,以此为你们查漏补缺(没必要所有看完,欢迎你们补充):
综上:上述所有过程短则半年,长则三年。
最后要强调的是:切忌急功近利,越想快速越要按部就班,踏实前进,若实在以为算法 & 编程太难,转产品、运营、测试、运维、前端、设计都是不错的选择,由于虽然编程有趣,但不必定人人适合编程。
重大消息:个人 新书《编程之法:面试和算法心得》终于在2015年10月14日上架开卖了! 京东抢购地址: item.jd.com/11786791.ht…。目前,京东、当当、亚马逊等各大网店均已有现货销售。