今天是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