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

原文:http://blog.csdn.net/v_july_v/article/details/19131887

前言

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

但因字数限制,许多问题无法一次性说清楚,故特撰此文着重阐述下:程序员如何快速准备面试中的算法,继而推荐一些相关的书籍或资料。顺便也供节后跳槽、3月春季招聘小高潮、及6月毕业找工作的朋友参考。

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

对于立志进一线互联网公司,同时不满足于一辈子干纯业务应用开发,希望在后端做点事情的同学来说,备战面试中的算法,分为五个步骤,如下:

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%的海量数据处理面试题

此外,多看看优秀的开源代码,如nginx或redis,多做几个项目加以实践之,尽早实习(在一线互联网公司实习3个月可能胜过你自个黑灯瞎火摸爬滚打一年)。

当然,如果你是准备社招,且已经具备了上文所说的语言 & 数据结构 & 算法基础,可以直接跳到本第五步骤,开始刷leetcode或cc150或编程艺术系列。

后记

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

  1. 《深入理解计算机系统》
  2. W.Richard Stevens著的《TCP/IP详解三卷》,《UNIX网络编程二卷》,《UNIX环境高级编程:第2版》,详见此豆瓣页面;
  3. 你如果要面机器学习一类的岗位,建议看看相关的算法(如支持向量机通俗导论(理解SVM的三层境界)),及老老实实补补数学基础,包括微积分、线性代数、概率论与数理统计(除了教材,推荐一本《数理统计学简史》)、矩阵论(推荐《矩阵分析与应用》)等..
综上:上述全部过程短则半年,长则三年。
最后要强调的是:急功近利者必败,越想快速越要循序渐进,踏实前进,若实在觉得算法 & 编程太难,转产品、运营、测试、运维、前端、设计都是不错的选择,因为虽然编程有趣,但不一定人人适合编程。

转载于:https://www.cnblogs.com/zhizhan/p/3764500.html

(转)程序员如何快速准备面试中的算法相关推荐

  1. 程序员如何快速准备面试中的算法 - 结构之法

    准备面试.学习算法,特别推荐最新出版的我的新书<编程之法:面试和算法心得>,已经上架京东等各大网店 前言 我决定写篇短文,即为此文.之所以要写这篇文章,缘于微博上常有朋友询问,要毕业找工作 ...

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

    程序员如何快速准备面试中的算法 准备面试.学习算法,特别推荐最新出版的 新书<编程之法:面试和算法心得>,已经上架 京东等各大网店 前言 我决定写篇短文,即为此文.之所以要写这篇文章,缘于 ...

  3. 如何快速准备面试中的算法,获得 Offer?

    如何快速准备面试中的算法,获得 Offer? 现如今越来越多的公司在面试过程中会考察数据结构和算法.在最近几年,难度颇有上升趋势.因此作为求职者,在面试前刷刷题似乎已经成为准备过程中必不可少的环节了. ...

  4. 程序员须知:面试中最容易被问到的18个算法题(附答案!)

    原创 IT168企业级 2017-09-20 17:21 算法是比较复杂又基础的学科,每个学编程的人都会学习大量的算法.而根据统计,以下这18个问题是面试中最容易遇到的,本文给出了一些基本答案,供算法 ...

  5. 免费 | 程序员如何在面试中避免被坑?今晚告诉你!

    有时候满怀信心去面试 却被面试官狠狠虐走 有时在面试中感觉发挥很好 却被告知不符合要求 如何避免? 有时候不是因为你不优秀 导致最终没有拿到那个offer 有时候是被很多因素影响 甚至还留下了不好的面 ...

  6. 程序员如何在面试中克服恐惧?

    有些人即使有丰富的经验,在面试中也难免会恐惧.面试恐惧是恐怖症的一种.面试恐惧症即是对面试这一特定事件的一种无理性的.不适当的担心和焦虑.一旦面对这种场合时,恐惧症患者就会产生一种极端的恐怖感,以致会 ...

  7. python程序员工作怎样-python程序员怎样在面试过程中展现自己的基本功

    原标题:python程序员怎样在面试过程中展现自己的基本功 当下我国人工智能招聘岗位需求不多,不过后期的发展潜力巨大,而且python程序员的薪资待遇并不比Java程序员的差,Python程序员往往都 ...

  8. 35 岁程序员的独家面试经历

    35 岁程序员的独家面试经历 2015年12月15日 17:34:33 松门一枝花 阅读数:524 创业失败后,在找工作.选择了三家(两家上市公司,一家将上市),都走到了关键的节点.我记录了面试过程中 ...

  9. html5程序员面试官如何提问,前端程序员第二轮面试的10个问题

    近日,w3cschool app开发者头条上分享了美团前端程序员第二轮面经,引来了不少程序员粉丝们的围观. 在分享面经之前,不妨先了解一下前端面试应该做好哪些准备呢? 0.前端面试加分 前端面试git ...

  10. 程序员独白:经济危机中,一个老女人15万包我一年

    程序员独白:经济危机中,一个老女人15万包我一年! 这是一个真实的故事,为了好阅读,将采用第一人称来写.同时,为了保护隐私,略去了一些敏感信息.世界万千,生活百态,尽在程序员独白! 我在2008年的8 ...

最新文章

  1. Tensorflow快速入门2--实现手写数字识别
  2. TensorFlow维度变换函数语句
  3. head first servlet jsp 学习笔记
  4. java基础,继承类题目:编写一个Java应用程序,该程序包括3个类:Monkey类、People类和主类 E...
  5. AR/MR研究团队和机构
  6. uid_t gid_t等的定义
  7. 10款滑动门代码_jquery 滑动门_js滑动门_tab滑动门_jquery 选项卡_js选项卡_tab选项卡效果(一)
  8. java 堆栈信息分析_Java堆栈信息分析
  9. Python 字符串str详解(超详细)
  10. 16.火焰传感器实验
  11. Msc.Marc模拟平板圆孔处应力集中:二维轴对称线弹性分析
  12. 商标主要特征是什么?商标注册申请流程是什么?
  13. JAVA的诞生及版本
  14. C#_____找错误
  15. [附源码]Python计算机毕业设计SSM基于的影评系统(程序+LW)
  16. 求1-1000以内的回文素数。回文素数指的是这个数既是回文数又是素数。
  17. 已获万赞,最新Android通用流行框架大全
  18. 关于-超融合架构(Hyper-converged)市场产品区别和决策标准
  19. MATLAB怎么解方程解,怎么用Matlab解方程?
  20. Pytorch搭建LeNet5

热门文章

  1. 如何把matlab命令窗口中的信息输出(重定向)到文件?
  2. 批量将点shp转成线shp
  3. 遥感技术在水利行业中的应用
  4. 【读书】如何阅读一本书
  5. 关于重分类工具的其他讨论
  6. JavaSE基础-02-接口
  7. Flutter实战之Flutter应用生命周期 AppLifecycleState浅析
  8. Retrofit源码解析之请求流程概述
  9. java输出流文件_Java文件输入输出流(封装类)
  10. vue mysql交互_几种vue的数据交互形式