有這麼一位Java大牛程序員
他是前 Oracle 首席工程師,負責過北京Java核心類庫、國際化、分發服務等技術團隊的組建。你們都知道,Java 就是 Oracle 公司的,他對Java的理解會不同凡響。他把Java程序員的成長路線劃分爲新手、高級新手、勝任者、精通者和專家,讓你們少走彎路。
創一個小羣,供你們學習交流聊天
若是有對學JAVA方面有什麼疑惑問題的,或者有什麼想說的想聊的你們能夠一塊兒交流學習一塊兒進步呀。
也但願你們對學JAVA可以持之以恆
JAVA愛好羣,
若是你想要學好JAVA最好加入一個組織,這樣你們學習的話就比較方便,還可以共同交流和分享資料,給你推薦一個學習的組織:快樂學習JAVA組織 能夠點擊組織二字,能夠直達
1、新手面試
若是你是新手階段,全面、紮實地掌握語言的基本要素是當務之急。在這個階段是有無限可能的,所以並不建議徹底用專欄做爲Java語言入門的課程,而是更應該找到更基礎的、系統的Java書籍或者課程。數據庫
騰訊首席架構師:Java程序員四個階段成長路線,少走彎路
你能夠從專欄的基礎模塊,看到Java領域長期的熱點話題(十年前面試就會問,一直問到今天),好比:編程
2、高級新手安全
工做了幾年,成天忙於業務代碼,很容易困惑下一步的方向在哪裏,至關多的程序員長期停留在高級新手的階段。一個常見的表現就是發展成爲了「面向搜索引擎」編程工程師,擅長快速利用開源項目或者以往成果,完成一些「OK」的工程任務。這本無可厚非,職業路線不少,未必每一個人都想成爲底層專家。架構
騰訊首席架構師:Java程序員四個階段成長路線,少走彎路
第4講 | 動態代理是基於什麼原理?
第5講 | 對比Hashtable、HashMap、TreeMap有什麼不一樣?
第6講 | Java提供了哪些IO方式?NIO如何實現多路複用?
第7講 | 什麼狀況下Java會產生死鎖?如何定位、修復?
第8講 | Java常見的垃圾收集器有哪些?併發
我建議你即便將來你不在一線編碼,或者將來再也不使用Java,一樣的思惟習慣和積累也是頗有幫助的。app
3、勝任者分佈式
那如何才能算是擺脫了高級新手的階段呢?或者換句話說,如何成長爲團隊的核心成員?這取決於你能背多大的鍋、填多大的坑,好比你已經能夠:工具
獨立負責作GC調優,即便沒有歷史經驗,也能給出有說服力的方案。
在JVM領域有充足的技術經驗和知識儲備。
全面評估評估後臺變慢等問題的複雜度、風險點、解決的可能性。
對於所謂本質的思考和理解,能聽懂深刻的抽象觀點。
騰訊首席架構師:Java程序員四個階段成長路線,少走彎路
而且,除了Java/JVM,還要掌握更完整的技能樹,例如分佈式系統設計、數據庫隔離級別選型等。另外,我也推薦你看看專欄裏這些內容:
第9講 | 談談經常使用的分佈式ID的設計方案?Snowflake是否受冬令時切換影響?
第10講 | 談談MySQL支持的事務隔離級別,悲觀鎖和樂觀鎖的原理和應用場景?
4、精通者和專家
若是你已經精通Java語言或者是特定領域的專家了,那這個專欄對你的幫助可能體如今不一樣角度,能夠看成特定領域的、不一樣視角吧。例如,在這個階段,精通者或專家可以:
提煉併發工具類的通常性指導方法。告訴團隊如何寫出安全的Java代碼,防範看似安全下隱藏的風險。借鑑Java/JVM中的一些技術,從基礎能力上提升自身平臺的能力。例如,PHP 7中引入的JIT,帶來了極大的性能提高,第35講中對JIT的介紹,就有了新的用武之地。如何經過Container-Aware技術,提升Kubernetes集羣中JVM負載的可靠性。創造某一類問題的解決方法。例如,彷佛Java工程師動不動就是Happen-Before,除了耍酷,能不能從更高的高度看待:JMM是如何實現了編譯器工程師、JVM工程師、Java開發者甚至不一樣廠商之間的一致性規範?如何創造性地避免了早期C++內存模型在不一樣廠商之間的混亂?