我總結了進入這三家公司你所需掌握的技能:
阿里巴巴篇
紮實的計算機專業基礎,包括算法和數據結構,操作系統,計算機網絡,計算機體系結構,數據庫等
具有紮實的Java編程基礎,理解IO、多線程等基礎框架
熟練使用Linux系統的常用命令及shell有一定了解
精通多線程編程,熟悉分佈式,緩存,消息隊列等機制;熟悉JVM,包括內存模型、類加載機制以及性能優化
精通spring mvc、orm框架(ibatis或hibernate)、模板引擎(velocity)、關係型數據庫設計及SQL
具備良好的面向對象編程經驗,深入理解OO、AOP思想,具有很強的分析設計能力,熟悉常用設計模式
有大型分佈式、高併發、高負載、高可用性系統設計和穩定性經驗
熟悉面向對象設計開發,熟悉各種常用設計模式,並有在具體的應用場景落地經驗
熟悉Spring、iBatis,等開源框架及消息,存儲等常用中間件。 有通讀過開源框架源碼
熟悉基於Oracle或者Mysql的設計和開發、Linux操作系統
熟悉SOA,有平臺化實施經驗者,有大數據量、高併發系統和大型網站構建經驗
分佈式系統應用架構設計與研發經驗,精通Java EE、SOA、OSGI等相關技術
對各種開源的框架如Spring、Hibernate等有深入的瞭解,對框架本身有過開發或重構者可優先考慮
具有大型電子商務網站、O2O行業、C端產品系統架構設計經驗
百度篇
熟悉常見設計模式,掌握java流行的開源框架SpringMVC/Spring Boot/Spring Cloud,熟練使用至少一種 ORM 框架
熟練掌握基本的數據結構和算法,有系統分析和設計的實踐經驗
熟悉Rest,HTTP,Socket、webservice、HTTP協議,具備併發、多線程的編程經驗
對Mysql、Redis、MongoDB 等數據庫有研究或者項目經驗
具有大型互聯網服務設計及開發經驗
熟悉JVM,對JVM有一定理解,並能藉助相關工具進行JVM性能調優
熟悉常見的開源分佈式中間件、緩存、消息隊列等,熟悉nginx,MySQL,Redis,mongodb 等常用的開源軟件
熟悉 MySQL 數據庫設計和優化,有 NoSQL 數據庫使用經驗
具有大數據存儲或者高性能計算平臺架構、設計及開發等方面經歷
具有大型互聯網服務設計及開發經驗
騰訊篇
精通Web後臺開發語言至少一種(PHP、Java、.Net、C++),有一定的架構能力和良好代碼規範
熟悉linux/unix系統與開發環境
熟悉TCP/IP協議,socket編程
熟悉mysql以及SQL語言
有高性能大容量服務系統設計開發經驗
精通面向對象設計,精通J2EE開發,java web開發
全面並且紮實的軟件知識結構(操作系統、軟件工程、設計模式、數據結構、數據庫系統、網絡安全);
具備良好的分析解決問題能力,能獨立承擔任務和有系統進度把控能力
精通MySQL或Mongo DB,熟悉緩存技術memcached、redis
有大型分佈式、高併發、高負載、高可用系統設計、開發和調優經驗
B/S結構系統分析及設計經驗,有構建可伸縮、可擴展、高可用系統經驗
有良好的開發習慣,熟悉Maven, Jenkins, JUnit等工具
精通MVC/REST架構、模板引擎、中間件的原理與應用
熟悉MySQL數據庫,瞭解MySQL索引優化、查詢優化和存儲優化
以上這些都是我去這三家公司面試回來後總結出來的技能要點,如果有興趣可以繼續往下觀看我提供的學習路線,可以幫助你順利進入這三家公司:
(Java程序員的進階之路如下)
1.閱讀源碼
2.1分佈式架構
2.2分佈式架構
2.3分佈式架構
3.微服務架構
4.併發編程
5.性能優化
6.DevOps
7.項目實戰
文章中涉及到的技術點我都分享在羣 692-845-439裏,錄製成視頻供大家免費下載,希望可以幫助在這個行業發展的朋友和童鞋們,在論壇博客等地方少花些時間找資料,把有限的時間,真正花在學習上,所以我把這些資料,分享出來。相信對於已經工作和遇到技術瓶頸或者寫博客碼友,在這份資料中一定都有你需要的內容。