肝了一個月,終於把Java學習路線、面試題資源和電子書資源都整理好了。
Java 從基礎到微服務的學習路線,其中還包括科班知識、學習建議、后續的學習引導和相應的學習資源(視頻、書籍、網站),還整理了Java 面試題,資源都在文末。
寫這一篇文章的目的很明確,在個人能力的基礎上給小伙伴一個循環漸進的 Java全棧學習路線。為小伙伴布好道路,讓學習的路途盡可能的通暢。
在這里點綴下個人對編程的三個層次的理解:
-
從學會使用(知其表)
-
到深入架構設計原理(知其理)
-
再到自研技術(思想鑄造)
而本文的學習路線只有前面兩個層次,關於“自研層面”屬於思想的再創作,恕我無能為力。
能力有限,如有不對,還望糾正。
0.知識廣度和深度
對於從事技術開發行業,着重的是技術的應用,技術知識使用起來才能實現它的價值。技術知識的廣度就像金字塔的底部,深度就像金字塔的高度,金字塔的底面積大小將決定金字塔的高低,知識面的廣度決定深度,深度將決定你在這行業能不能混的好的基礎,如果你是做技術的話。
廣度:可通過不斷學習新技術來拓寬;
深度:基於已有知識深入研究其奧妙。
在這學習路線一開始就先拓寬技術知識面,着重技術的基礎使用;后續再深入學習,學習其中的架構設計原理,理解設計者的核心思想,從而提高知識的深度,不至於只知其表不知其理。深入學習后漸漸地就會感受到編程思想帶來的質變,是編程能力提高最關鍵的一步,也是邁進“自研層面”的第一步。
每階段都配有學習網站和相應書籍,還有階段項目鞏固所學知識。
1.第一部分:Java基礎
必須理解面向對象編程,並掌握Java基礎知識怎么使用,通過Java編程語言實現一些功能。比如:實現程序和文本的讀寫(內存和磁盤的交互),簡單的多人聊天室(客戶端和服務端的交互)。
領悟兩點:
第一點:有了這些基礎,你可以嘗試看看源碼(比如:String類的源碼),部分源碼看得懂了,可能比較費勁。
第二點:所有的服務端編程語言都具備IO流、網絡編程、多線程等等這些基礎能力,掌握一門編程語言基礎對於學習其他編程語言基礎那就簡單多了。
2.第二部分:MySQL基礎
掌握命令的方式操作MySQL 的基礎使用;通過JDBC 技術實現對MySQL數據庫數據的增刪查改。
3.第三部分:JavaWeb
前面兩部分是學習Java應用的開發,這部分開始學習Java的web系統開發,主要學習JavaWeb 基礎和前端基礎知識。學習完這部分,可以基於JavaWeb開發網站、管理系統等,比如:基於JavaWeb的后台管理系統、音樂網站。但是目前直接使用JavaWeb 基礎技術開發web系統的很少,一般都是使用框架技術快速開發安全又美觀的系統。所以接下來學習主流框架技術。
4.第四部分:主流框架和技術
框架技術主要分為前端和后端框架,目前國內前端以Vue全家桶為主,整合各種框架來完成前端開發;后端以SSM框架技術為主,整合其他框架來完成后端開發。開發框架的主要作用是避免重復造輪子,提高開發效率,降低運維難度,降低人員成本,降低項目風險等等。
學到這里應該知道一些網站架構模式:分層模式,集群模式,緩存模式。
-
分層模式:常見的有MVC,MVVM,7層的網絡通信協議等等。
-
集群模式:多台服務器部署相同的應用構成一個集群,並通過負載均衡設備共同對外提供服務,提高可用性和並發數。
-
緩存模式:使用緩存技術提高系統性能。
學習這些模式的使用帶來新的問題
-
集群模式帶來的新問題,如:有/無狀態服務。
-
緩存模式帶來的新問題,如:緩存穿透。
-
通過緩存模式解決集群模式帶來的新問題,如:會話記錄。
先學會框架的使用,再通過閱讀源碼、相關文檔來掌握框架中使用到的編程思想、編程技巧和架構設計,最后在開發的過程中是否能使用上這些編程思想、編程技巧和架構設計。
5.第五部分:回顧並進階
這部分主要是進階之前的學習內容和學習更多技術,這都是分布式功能實現需要用到的基礎技術。當業務服務變得越來越復雜,部署的服務也越來越多,服務之間錯綜復雜,難於管理時,就需要自動化的東西替代人類勞動力去解決這一系列問題,所以下個部分內容就是學習分布式服務治理和微服務知識。
6.第六部分:微服務篇
學習各種各樣的技術來解決分布式帶來的新問題,這些技術的實現都是為了治理錯綜復雜的業務服務,並提高業務響應速度,服務可用性,性能,擴展性和安全性等等。
7.編程基礎的擴展--科班知識(內功)
這一部分的學習是枯燥的,是要掉頭發的,但又是必須學習的。關於必學的內容都放前面了,尤其是軟件工程、計算機網絡、操作系統、數據結構和算法。
8.學習更多
不斷學習成長,往更高處走。這只是拋磚引玉,真的要深入學這幾本書還真不夠。比如架構設計,要從程序員走向架構師,這必須得學;想了解更多有關“雲技術”,可以到阿里等各大雲平台的開發者社區學習等等。這個就看自己的選擇了。
9.學習的一些建議
以上是個人的一些建議。在這里給愛拖延的小伙伴一個行之有效的建議:別干想,行動起來。
10.面試篇
面試資源主要都是來源於網絡,做了分類整理,也將部分不易於閱讀的處理了(很費時間……)
比如:
處理前:朦朧和擋住了部分內容
處理后:
11.總結
從Java基礎到微服務的學習路線和相應的電子書,都已經分享到GitHub,
GitHub鏈接:https://github.com/yuantingyue/JavaLearningRoutes-Books
后續會不斷完善學習路線和學習資源,分享更多的知識和更多資源,一起成長,共勉🤝
想獲得最新消息可關注WX公眾號:Java全棧布道師
點贊走起👉
原創不易,轉載指明出處,違者必究!!!