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

前言

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

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

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

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

  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个步骤,还远远不够,最后,我推荐一份书单,以此为大家查漏补缺(不必全部看完,欢迎大家补 充):

  《深入理解计算机系统》

  W.Richard Stevens著的《TCP/IP详解三卷》,《UNIX网络编程二卷》,《UNIX环境高级编程:第2版》,详见此 豆瓣页面;

  ..

  综上:上述全部过程短则半年,长则三年。最后一句:急功近利者必败,越想快速越要循序渐进,踏实前进。

时间: 2024-07-28 20:09:56

程序员如何快速准备面试中的算法的相关文章

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

准备面试.学习算法,特别推荐最新出版的我的新书<编程之法:面试和算法心得>,已经上架京东等各大网店 前言 我决定写篇短文,即为此文.之所以要写这篇文章,缘于微博上常有朋友询问,要毕业找工作了,如何备战算法.尽管在微博上简单梳理过,如下图所示: 但因字数限制,许多问题无法一次性说清楚,故特撰此文着重阐述下:程序员如何快速准备面试中的算法,继而推荐一些相关的书籍或资料.顺便也供节后跳槽.3月春季招聘小高潮.及6月毕业找工作的朋友参考. 备战面试中算法的五个步骤 对于立志进一线互联网公司,同时不满足

腾讯Java程序员第二轮面试11个问题,你会几个?

此前,分享了阿里巴巴.网易.百度等多家名企的JAVA面试题. 这也引来了不少程序员网友们的围观. 其中,也有相当一部分网友是已经从事Java开发好多年的程序员,当他们阅读完JAVA面试题的反应是:一个也不会. 通常这种类型的程序员已经将编程转换成了一种技能,而不是在脑海里的知识. 有人认为,面试造火箭,进去拧螺丝. 当然,也有中途放弃编程的程序员,Java从入门到放弃. 但无论如何,编程这条路总是有人在走. 也只有一种人在编程界可以混得风生水起:对编程感兴趣,能够把编程做到极致的人. 下面我给程

Java程序员如何在面试时短时间内让面试官刮目相看?

前言 技术面试是每一位程序员都会经历的一件事情,技术面试官会通过自己的方式去考察程序员的技术功底与基础理论知识,这个过程被有的程序员成为"造火箭式的技术轰炸",不同程序员的面试经历与体验也是千差万别,各种奇怪,奇葩的情况也是层出不穷. 而很多Java程序员在面试时都有这样的苦衷: 我掌握了很多Java开发技巧,每次到笔试环节,死活就是答不上: 明明是一个职场老手,和面试官聊天,简单的技术问题都吞吞吐吐: Java程序员如何在面试时短时间内爆出核心技术?让对面的"不速之客&qu

程序员在编程开发中的10个实用技巧

程序员在编程开发中的10个实用技巧,下面是我自己在工作中学到的一些简单的技巧和策略,希望能对各位有用.1.     橡皮鸭调试法不知道各位有没有这样的经历,当你正在给别人描述问题的时候,突然灵机一动想到了解决方案?这种情况的产生是有科学依据的.高谈阔论能让我们的大脑重新有条理地组织问题.在这种情况下,你的聊天对象就是“橡皮鸭”.团队中的每个人都应该积极主动乐意地成为彼此的“橡皮鸭”.有时候,如果你幸运的话,你的“橡皮鸭”搞不好还能给出有效的建议呢.2.     快速信息反馈一旦写好代码就要尽快得

黑马程序员——C学习总结之数组排序算法实现

发表试试 黑马程序员--C学习总结之数组排序算法实现,布布扣,bubuko.com

负能量程序员杂谈(2)- 管理中的情和义

本系列文章仅从个人有限的对事物的认知出发,如有不同意见,请温和提出态度,毕竟都是成年人,别那么幼稚. 情和义,值千金. 今天和很久没见的朋友L喝酒,L目前是一家不错公司的开发管理,手下10几号开发.中途他给我聊了一个很有意思的话题:公司正在转型,那么由于成本压缩控制会裁掉一些人,由于担心裁人会引发和公司矛盾,所以这种事交于开发小组的小组长负责沟通,有的小组长碍于情面,觉得不好意思落下脸面,他就出马负责和即将被裁掉的程序员沟通.我问他为什么不是HR去搞定这个事呢?他告诉我,之前发生过因为HR去沟通

程序员必须要掌握的排序算法以及查找方法

程序员必须要掌握的排序算法以及查找方法 经典的排序算法要一个一个的弄懂.借个图,列出学习提纲. 三种查找算法:顺序查找,二分法查找(折半查找),分块查找,散列表 2016-04-17 09:08:04

给Android程序员的一些面试建议

前言 应大家的邀请,写一篇关于Android面试相关的博客,需要说明的是本文只针对Android应用开发,不针对rom开发以及逆向工程.我想面试对于程序员来说是很重要的一件事件,面试结果的好坏直接决定了能否进入某个公司以及以什么级别和待遇进入某个公司.我参加面试的经验并不多,但是以面试官的身份面试别人倒是有很多次,所以我可以结合这些经验来介绍下如何更好地把握一个面试. 什么是合适的候选者 在介绍如何面试之前,这里先从公司的角度来分析:"到底什么样的候选者是公司所需要的技术人才?"就我在

包建强的培训课程(5):面试中的算法题

Normal 0 10 pt 0 2 false false false EN-US ZH-CN X-NONE $([{£¥·‘“〈<「『[[[〝﹙﹛﹝$(.[{£¥ !%),.:;>?]}¢¨°·ˇˉ―‖’”…‰′″›℃∶.."〉>」』]]]〞︶︺︾﹀﹄﹚﹜﹞!"%'),.::?]`|}-¢ /* Style Definitions */ table.MsoNormalTable {mso-style-name:普通表格; mso-tstyle-rowband-size:0;