今天是2月27号,距离亚马逊的面试还有17-20天的准备时间,利用这两周多的时间,起码要将OOD的知识总结,system design的基础知识,javascript基础概念从头过一遍,还有其他的基础知识,每天刷起码15-20道算法题目。
https://www.diycode.cc/topics/220 文章很好
关于刷算法:
刷题一定要注意java知识点的强化。
1. 简单的部分:Binary Search, Subset, two pointers, data structure(stack,queue,priority queue,heap,hashmap,hashtable)
2. linkedlist,树,深度优先,宽度优先搜索,图,分治算法,拓扑排序
3. 并查集,动态规划,字典树,bit操作,线段树
按时间下一周周中的重点还是九章里面的题以及amazon tag下面的题:
周一binary search & Binary Tree和分治 全部弄懂
周二,周三小部分二叉树,字典 tree,线段树,深度优先搜索,宽度优先搜索
周三,周四小部分深度优先搜索,宽度优先搜索,linkedlist
周四,周五各种数据结构,动态规划经典题目,和并查集一定要看!
周六,周日amazon的题目再做一遍用周一到周五实践的方法
每天起码要刷15-20道题而且必须按照这个进度来,刷题时间:5pm-10pm。
关于面向对象设计
关于OOD上班中午时间看,刷题类的时候看,晚上看OOD。 通过CC150看
会用Singleton和Factory这两个。
Abstraction
Polymorphism
Inheritance
Encapsulation
围绕着四个概念
数据结构的设计和设计模式的设计:
CtCI(Cracking the Code Interview)
http://blog.csdn.net/testcs_dn/article/details/46820157
http://zz563143188.iteye.com/blog/1847029
把head first的singleton和factory看了
关于system design:
https://www.evernote.com/shard/s576/sh/7e58b450-1abe-43a8-bf82-fbf07f1db13c/049802174415b418a2e65f75b744ab72
http://homecox.com/bbs/view.php?f=30&t=37
Hiring Manager很重要,一定要注意这个,要把对方的背景和组搞清楚。
其他基础知识:
Programming Language
Java 8 特性,说说static和final,garbage collection
什么是reference
nums==null 和 nums.length==0 有什么区别
Operating System
进程和线程有什么区别
什么是锁mutex
什么是信号量
什么是栈溢出
不同存储结构的速度量级(磁盘、SSD、内存、L1 cache)
什么是IO
Object Oriented Design
什么是继承
什么是单例Singleton
什么是工厂模式 Factory
Network
什么是Socket
TCP/IP三次握手
什么是HTTP
什么是API
在输入框里输入google.com之后会发生什么
TCP 和 UDP有什么区别
Database
mySQL:设计场景,问foreign key、inner join /outer join
多对多的关系怎么设计(比如好友关系)
SQL 与NoSQL的区别
什么是Transaction
什么是ACID