Java全棧學習路線、學習資源和麵試題一條龍

淵渟嶽發表於2022-02-20

肝了一個月,終於把Java學習路線、面試題資源和電子書資源都整理好了。

Java 從基礎到微服務的學習路線,其中還包括科班知識、學習建議、後續的學習引導和相應的學習資源(視訊、書籍、網站),還整理了Java 面試題,資源都在文末

寫這一篇文章的目的很明確,在個人能力的基礎上給小夥伴一個迴圈漸進的 Java全棧學習路線。為小夥伴布好道路,讓學習的路途儘可能的通暢。

在這裡點綴下個人對程式設計的三個層次的理解:

  1. 從學會使用(知其表)

  2. 到深入架構設計原理(知其理)

  3. 再到自研技術(思想鑄造)

而本文的學習路線只有前面兩個層次,關於“自研層面”屬於思想的再創作,恕我無能為力。

能力有限,如有不對,還望糾正。

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全棧佈道師

點贊走起?

原創不易,轉載指明出處,違者必究!!!

相關文章