根据自己的实际情况做的安排,实时调整
- 2018年7月23日开始----每天刷2-3道leetcode,然后是看书
- 从自己笔试的情况来看,编码能力和算法能力太弱了,所以目前主要是看算法相关的书籍
怎么具体准备复习
- 大佬找工作的原话: 计算机的东西实在又是太多,程序设计、数据结构、算法设计、操作系统、体系结构、编译原理、数据库、软件工程等分支
- 编译的话太难(一千个码农里也没几个人能在纸上写一个最基础的递归下降LLParser)
- 软件工程、体系结构、数据库这些太水(不是说这些分支没用,而是它们很难考察,尤其对应届生来说这些都是些文字游戏,比如说面向对象的三要素五原则,有个鸟用
- 这么一排除,再把数据结构和算法设计一合并,就剩下程序设计、算法和操作系统。没错,这三项搞定,国内外IT公司通杀
- 程序设计:
- 把基础的数据结构的C语言实现在纸上写三遍以上,用我能想到的最精简最优化的方法
- 阅读CARM和TCPL,确保不会遗漏C语言的每个细节
- 重温之前自己做过的靠谱项目,并总结里面的关键难题和解决思路
- 重读Writing Solid Code、Elements of Programming、Practice of programming
- 阅读Science of Programming,做到可以证明自己的程序的正确性(前条件+后条件+不变式)
- 算法:
- 重读Algorithm Design Manual,重点阅读Dynamic Programming和Backtraverse
- 重读Programming Pearls和More Programming Pearls,并完成所有课后题
- 独立解决编程之美里面的题目(国内不少企业选题用的这本书)
- 完成Careercup里Amazon、Google和Microsoft这三个分类下面的前20页面试题
- 完成TopCoder的数十道D1L2~D2L1难度区间的算法题目
- 操作系统:
- 重读Modern Operating System,重温OS的核心概念
- 重读Computer Systems a Programmer's Perspective的关键章节,回顾里面的关键点
从七月底开始一直到十一月,花了接近四个月,很多东西都是一边面试一边准备:面试->发现盲点->修复盲点。
一些面试心得
- 记住, 第一印象很重要
- 我被教着这么做, 但从没有想过为什么 --- 这句话一般会留下一个非常坏的印象