[原]程序员如何快速准备面试中的算法

标签: | 发表时间:2014-02-12 21:44 | 作者:v_JULY_v
出处:http://blog.csdn.net/v_july_v

    程序员如何快速准备面试中的算法


前言

    我决定写篇短文,即为此文。之所以要写这篇文章,缘于微博上常有朋友询问,要毕业找工作了,如何备战算法。尽管在 微博上简单梳理过,如下图所示:

   

    但因字数限制,特撰此文着重阐述下:程序员如何快速准备面试中的算法,顺便推荐一些相关的书籍或资料。


备战面试中算法的五个步骤

    总体来说,备战面试中的算法,分为五个步骤,如下:

    1、首选你得确保自己已经掌握好一门编程语言

  • 如果是C的话,推荐Dennis M. Ritchie & Brian W. Kernighan著的《C程序设计语言》,和《C和指针》;
  • C++ 则推荐《C++ Primer》,《深度探索C++对象模型》,《Effective C++》 。
    掌握一门语言并不容易,不是翻完一本书即可了事,语言中的细枝末节需要在平日不断的编程练习中加以熟练。
    2、过一遍微软面试100题系列

    我从2010年起开始整理 微软面试100题系列,见过的题目不可谓不多,但不管题目怎般变化,依然是那些常见的题型和考察点,当然,不考察任何知识点,纯粹考察编程能力的题目也屡见不鲜。但不管千变万化,始终不离两点:①看你基本知识点的掌握情况;②编程基本功。

    而当你看了一遍微软面试100题之后(不要求做完),你自会意识到:数据结构和算法在笔试面试中的重要性。
    3、苦补数据结构基础

    如果学数据结构,可以看我们在大学里学的任一本数据结构教材都行,如果你觉得实在不够上档次,那么可以再看看《STL源码剖析》。
    4 、看算法导论

    《算法导论》上的前大部分的章节都在阐述一些经典常用的数据结构和典型算法(如 二分查找快速排序Hash表),以及一些高级数据结构(诸如 红黑树B树),如果你已经学完了一本数据结构教材,那么建议你着重看贪心、动态规划、图论等内容,这3个议题每一个议题都大有题目可出。

    如果算法导论看不懂,你可以看本博客。

    5、刷leetcode或cc150或编程艺术系列

  • 如主要在国外找工作,推荐两个面试编程网站:一个是 http://leetcode.com/,leetcode是国外一网站,它上面有不少编程题;一个是 http://www.careercup.com/,而后这个网站的创始人写了本书,叫《careercup cracking coding interview》,最终这本英文书被图灵教育翻译出版为《程序员面试金典》。
  • 若如果是国内找工作,则郑重推荐我编写的《程序员编程艺术》,有 编程艺术博客版,以及在博客版本上精简优化的 编程艺术github版。除此之外,还可看看《编程之美》,与《剑指offer》。

    而不论是准备国内还是国外的海量数据处理面试题,此文必看: 教你如何迅速秒杀掉:99%的海量数据处理面试题


后记

    学习最忌心浮气躁,急功近利,即便练习了算法,也不一定代表能万无一失通过笔试面试关,因为总体说来,在一般的笔试面试中,70%基础+ 30%coding能力(含算法),故如果做到了上文中的5个步骤,还远远不够,最后,我推荐一份书单,以此为大家查漏补缺(不必全部看完,欢迎大家补充):

  1. 《深入理解计算机系统》
  2. W.Richard Stevens著的《TCP/IP详解三卷》,《UNIX网络编程二卷》,《UNIX环境高级编程:第2版》,详见此 豆瓣页面
  3. ..
    综上:上述全部过程短则半年,长则三年。最后一句:急功近利者必败,越想快速越要循序渐进,踏实前进。
作者:v_JULY_v 发表于2014-2-12 21:44:50 原文链接
阅读:1936 评论:6 查看评论

相关 [程序员 面试 算法] 推荐:

[原]程序员如何快速准备面试中的算法

- - 结构之法 算法之道
    程序员如何快速准备面试中的算法.     我决定写篇短文,即为此文. 之所以要写这篇文章,缘于微博上常有朋友询问,要毕业找工作了,如何备战算法. 尽管在 微博上简单梳理过,如下图所示:.     但因字数限制,特撰此文着重阐述下:程序员如何快速准备面试中的算法,顺便推荐一些相关的书籍或资料.

如何面试程序员?

- bluesnail - 阮一峰的网络日志
你要面试一个程序员,应该问他什么问题. 有人在Hacker News的讨论区里,请求指点,怎么才能在面试中发现合格的人. 众人纷纷出主意,有很多高质量的回帖,我觉得挺有启发,就整理出了下面这篇文章. 首先,最重要的是,你自己一开始就应该想清楚:. 哪些途径和方法可以发现这样的人. 只有明确这些根本性的问题,才能正确高效地完成面试.

“火柴棍式”程序员面试题

- Hao - 酷壳 - CoolShell.cn
有时候,有些面试题是很是无厘头,这不,又有一个,还记得小时候玩的的“火柴棍游戏”吗,就是移动一根火柴棍改变一个图或字的游戏. 程序面试居然也可以这么玩,看看下面这个火柴棍式的程序面试题吧. 下面是一个C程序,其想要输出20个减号,不过,粗心的程序员把代码写错了,你需要把下面的代码修改正确,不过,你只能增加或是修改其中的一个字符,请你给出三种答案.

ABC: Always Be Coding——程序员面试必读

- - 36氪 | 关注互联网创业
@guitardave24">David Byttow是一名程序员,曾在Google和Square等公司工作过. 在正文之前,先让我们回答几个简单的问题:第一,你面试过多少家公司;第二,这些公司中,录取你的有多少. 记下这两个数字,然后代入下面这个算式中(为我自己发明,仅供参考,不具有其他意义):.

如何面试一名程序员?

- - 标点符
STAR面试法中“STAR”是SITUATION(背景)、TASK(任务)、ACTION(行动)和RESULT(结果)四个英文字母的首字母组合. 在招聘面试中,仅仅通过应聘者的简历无法全面了解应聘者的知识、经验、技能的掌握程度及其工作风格、性格特点等方面的情况. 而使用STAR技巧则可以对应聘者做出全面而客观的评价.

程序员面试中什么最重要?

- - CSDN博客研发管理推荐文章
相信和不少朋友一样,有了几年工作经验成为Senior后就开始了面试别人的经历. 我在最初这个阶段只是按照自己的想象把“找到基础好的程序员”、“找到算法能力优秀的程序员”、“找到有Android开发经验的程序员”等作为面试的目标. 但是, 实际的经历告诉我,尤其是按“基础好”,“算法好”这些目标招到的人最终效果并不好.

程序员的10大成功面试技巧

- - ITeye博客
1.给自己写一份非常专业的简历.   我的建议是,如果你想增加自己的入选机会,那最好还是花点钱制作一份专业的简历. 相较于你将来可能得到的巨大收获,这真的只是一个小小的投资.   当我联系程序员来面试的时候,我总是会事先发电子邮件给他,并附上我的名字和博客地址. 但是让我惊讶的是,当我给他面试的时候,他竟然对我还是一无所知.

10个我最喜欢问程序员的面试问题

- - 博客园_新闻
英文原文: 10 Programmer Interview Questions I’d like to be asked . 最近我拜读很多文章,都是介绍面试问题的,我真心不理解,面试官代表公司想要聘用的是最优秀的程序员,那就意味着需要想出一些有意义的面试问题. 如果你就提一些毫无用处的垃圾问题,那么很容易遗漏很多能干的程序员.

招聘面试程序员的一些心得

- - 博客园_新闻
最近雅虎北研解散的消息触动了各大互联网公司 HR 的神经. 公司里一下子面试的任务多了起来. 正好借机会总结一下自己毕业后作面试官以来参与若干场技术面试的一点心得,分享一下. 当好一个面试官其实也很不容易,不但要练就一双火眼金睛,把优秀的人才和水货在短短的面试的几十分钟里分辨出来,同时面试官本身就是候选人观察公司的一个窗口.

Java程序员必知的8大排序算法

- - JavaRanger - 专注JAVA高性能程序开发、JVM、Mysql优化、算法
(1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排. 好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数. 如此反复循环,直到全部排好顺序. //将大于temp的值整体后移一个单位. (1)基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序.