首先Yo妹想说,题海战术题海战术题海战术!重要的事儿说三遍!没办法,知识点就是那些,面多了就会发现,90%都是原题啊~
题库在哪里呢?按照循序渐进的原则,一一介绍:

1. cc150,全名cracking the coding interview - 150 Programming Questions and Solutions。经典中的经典,曾有人别的啥都不做,刷这本书三四遍,拿了Google的offer(注意是在美国,在中国就算了……)这本书的优势在于分章节,每章突出一块知识,题目精炼,答案好找;缺点呢,你写出的代码,需要深度检验,而cc150是书不是online judge,这个还是做不到。

2. leetcode。程序员刷面试题的第一网站,题多且全,少部分题目收费。刷的人很多,答案非常好找。online judge能深度检验代码的正确性,刷leetcode是最能锻炼算法题能力的。假如说时间有限只能刷一个,那必须是leetcode,假如时间够多……lintcode、meetqun等各大面试题OJ欢迎你,此外还有许多国内外大学的OJ。
以上是两大主力,但是光这两个,还不能到“题海”的水平,而且由于它们名气太响,有些公司有时会避开里面的题目……来,我们继续找题目。

3. 编程之美、剑指offer:就当成两本习题集好了,里面有些题目和1、2重复,但是大部分题目还是很优秀很巧妙的。重点是交叉对比,你就知道哪些是经典题目了。

4. careercup、看准网等:每家公司都有自己喜欢出的题目,这些网站方便你去找面经,紧跟公司出题潮流。

5. “结构之法”博客:July大神的博客,内容丰富,学习一年都可以。这里只讲里面的算法题:“微软面试100题”(实际上已经快500题了)系列,堪称算法题的大宝库,包罗万象,而且很多题目很新,是面试官喜欢出的类型……不过这个系列的排版略微混乱,很多题也没有答案;“程序员编程艺术”系列,讲的很细致,适合深入去学习一些算法;“教你如何迅速秒杀掉:99%的海量数据处理面试题”,很实用的海量数据处理面试文章。

6. 经典库函数。这块单独拉出来,是因为考的很多,比如atoi,strstr,memcpy等等……在“程序员编程艺术”中,杂七杂八有相关的论述,最好自己系统整理一下。
好,这些足够我们的题海了。下面来讲一下,哪些属于题海中的重点

1. 最高优先级:面经。这个比什么都重要,为了节约招聘成本,同一家公司的题目,通常不会换的太勤快。

2. 次优先级:很经典的题目。什么定义为经典?前面我写了123456,假如某道题目能重复出现几次,那绝对是不朽经典(如atoi、LCS、LPS、单链表逆置……),经典的题目毕竟出的最多,一定要非常熟练。

3. 再次:稍微短一点(50行之内),稍微新一点的题目。面试官通常时间有限,没时间让你写个上百行,所以50行左右是最好的。

4. 最末:答案很长的题目。这种题目一般不出,要是出出来,一般就是压轴大戏,为了最后检测……通常长题目容易乱,分模块慢慢写,不着急。
最后,来放些高频算法题喽~
coding:
- JOIN: nested join, hash join, sort-merge join

- Number: Fibonacci, prime,随机取文件某一行

- String: strstr, wordcount

- Tree: height, lca, balance tree

- Heap: 查找最大的k个数

- DP: 最大连续子串和

- array: find a key in rotated array, 去除重复字符

- linkedlist: 是否有环,插入结点,删除重复结点 

- 递归回溯:变化很多,这方面需要大量练习
知识性:
多线程,mutex/semaphore

java GC

C++ virtual, smart pointer

regex使用

数据库:知道btree, 索引

search engine: 倒排表,拉链,稀疏索引,空间向量模型,tf*idf,

large scale data: hash, consistent hash, bloom filter, bitmap, 外排序,

partition

分布式:CAP理论,gossip,Paxos, GFS设计思想

network: socket, tcp3次握手, asyschnoized io, epoll, select, 惊群
设计型:
queue/stack实现

LRU

trie tree

设计游戏

四则运算求值
当然呢,有高频题就有低频题,Yo妹再附上一些低频题供大家参考,找找感觉。
语言细节

1. python yield什么意思,generator,如何操作系统命令popen跟os.system区别

2. 问我API是叫什么,作用是如何把一个path 和文件连起来,path+name,我后来才明

白是说path里面有可能最后没/,path="/ab" , name = "ef"

3. java实现多线程的三种方式

4. java跟c++模板的区别

高级算法

1. 图论:把一个有向图划分成几个区域,每个区域用一中颜色染色,强连通?

分布式理论

2 phase commit是啥

vector clock

一致性hash,分布式hash

数据库

数据如何备份,把mysql导入导出命令给写出来,load data...

信息处理:

如何消重,去除spam


数学

1. reject sampling, 计算期望


linux内核

1. linux的原语是怎么实现的

2. 软练和硬连的区别

3. kill -9 9是什么意思,会不会有些进程永远杀不死

4. ls -l /dev

brw-r----- 1 root operator 14, 0 Feb 29 01:48 disk0

解释每个字符什么意思,14是什么


计算机原理

CPU L1, L2, L3 cache, memory 速度

磁盘读写速度

SSD跟Sata磁盘区别
在微信平台中回复“帮助”可查看更多文章。
在微信平台中回复“服务”可了解职悠课程。
本文转载自:Careeyo.com(你的个人求职顾问),知乎
Careeyo独家整理修改,版权归原作者所有,若需引用请注明出处。
关于职悠 Careeryo!
作为Analystics和IT/CS行业的领先一对一求职培训机构,职悠来自世界五百强的350+在职导师不断帮助求职者斩获梦想公司的offer。
需要获得职悠帮助?请添加职悠客服--YoYo君微信:careeyo1。
职悠官网:www.careeyo.com
继续阅读
阅读原文