0: 數據結構算法前端
數組、鏈表、堆、棧、隊列、Hash表、二叉樹等;mysql
算法思想:遞推、遞歸、窮舉、貪心、分治、動態規劃、迭代、分枝界限;nginx
排序查找web
B+/B-數、紅黑樹、圖等;redis
圖的深度優先搜索、圖的廣度優先搜索、拓撲排序、Dijkstra算法(單源最短路徑)、霍夫曼編碼、展轉相除法、最小生成樹等算法
1: JAVA基礎:sql
理解i/o、socket、多線程、集合等基礎框架(Collection以及各類List、Set、Queue、Map的實現以及繼承關係,實現原理CollectionsArrays); shell
要熟練使用各類數據結構和算法,數組、哈希、鏈表、排序樹等等;數據庫
熟悉jvm運行機制及內存管理,Jvm虛擬機原理、調優,懂得jvm能寫出性能更好的代碼;JVM內存模型、類加載機制以及性能優化; apache
有多線程開發項目經驗(線程池,線程安全,線程鎖),對Java中concurrent包下的線程池、隊列、鎖有基本的瞭解和使用經驗;
網絡和併發編程有豐富的經驗;
池技術也是要掌握的,對象池、鏈接池、線程池都要會;
Java反射技術,寫框架必備的技術;
Java各類集合對象的實現原理,瞭解這些能夠讓你在解決問題時選擇合適的數據結構,高效地解決問題,寫出代碼;
2: 框架:
熟悉SpringMvc, Spring Boot, Spring Cloud ,Spring MVC ,mybatis,hibernate框架,並知道原理;
3:Linux
Linux系統以及常見操做,shell等
4: 中間件:
熟悉分佈式、緩存、消息、搜索等機制,有分佈式系統、集羣架構設計;
熟悉常見的中間件、分佈式解決方案及其原理:分佈式緩存、SOA、消息中間件,負載均衡、鏈接池等;
還有隊列中間件也要會操做,如消息推送,能夠先把消息寫入數據庫,推送放隊列服務器上,由推送服務器去隊列獲取處理
,這樣就能夠將消息放數據庫和隊列裏後直接給用戶反饋,推送過程則由推送服務器和隊列服務器完成,好處異步處理、緩解服務器壓力,解藕系統。
5: web相關:
好比tcp協議,建立鏈接三次握手和斷開鏈接四次握手的整個過程,不瞭解就無法對高併發網絡應用作優化,
http協議,session和cookie的生命週期與關聯;熟悉系統集羣、負載均衡、反向代理、動靜分離,網站靜態化;
懂得分佈式存儲系統nfs,fastdfs,tfs,Hadoop瞭解他們的優缺點,適用場景,以及分佈式緩存技術memcached,redis,提升系統性能必備。
工具nginx必備技能超級好用,高性能,基本不會掛掉的服務器,功能多多,解決各類問題;
熟悉大併發量、高性能優化、大數據等處理技術;
熟悉Apache、Ngnix、Tomcat等主流Web服務器的基本配置和進程監控,熟悉集羣及負載均衡技術,熟悉主流應用服務器的架構體系;
熟悉Hadoop、Spark等分佈式計算框架,對開源機器學習,推薦系統有了解者優先;
熟悉apache、nginx、tomcat、redis、MQ 等服務器的配置和調優
瞭解TCP/IP、HTTP等協議
熟悉分佈式系統的設計和應用,熟悉緩存、消息、負載均衡等機制和實現;
熟練使用Tomcat、Jetty、Nginx等應用服務器;
熟悉經常使用的互聯網技術,包括但不限於MySQL、NoSQL、RPC、MQ、緩存技術、微服務架構等;
6: 數據庫:
Mysql必備,最基礎的數據工具,主要是免費且好用,對它基本的參數優化,慢查詢日誌分析,主從複製的配置,至少要成爲半個mysql dba;
熟練掌握常見SQL、NoSQL數據庫原理、數據庫設計、查詢編寫和優化;
熟悉數據庫原理以及經常使用性能優化技術;
有在大數據、集羣、複製和相關的數據訪問設計經驗;
在DB、系統和應用上有性能優化經驗;
7: 前端: