原來我曾經寫過一篇《如何快速學習Java》的文章。后來也有朋友咨詢我“如何系統的學習Java”的問題。
這些朋友中,好多都是已經入了行,但不滿足于工作枯燥的“增刪改查”,或者“模板化”的SSM框架。而是有心成為Java技術專家,或者架構師。
對于朋友的提問,我本很樂意回答。然而這個答案絕非三言兩語能夠說清。所以,我就索性寫一篇文章來回答。
文章寫得有點匆忙,不完善,遺漏之處,我會逐漸完善。
學習計劃
首先,我把Java系統學習分成兩個階段。
第一階段:建立完整的的技術棧,成為一個有富于生產力的高級軟件工程師。
在這個階段要掌握一系列的基礎知識和工具。這些東西前后關聯,所以學習過程成線性順序,要從上往下進行。
下面是第一階段的學習路線:
第二階段:這個階段的目標是成為Java技術專家、架構師,因此必須在上一階段的技術上,往高處(例如設計模式、大數據)走,往深處(Spring源碼、Java虛擬機)走。
這個階段的知識,并不存在前后的關聯。在完成第一階段的學習之后,完全看工作的需要,以及個人的興趣,安排學習的優先級。
下面是第二階段的學習目標:
接下來,我就點一下這個學習計劃中的“關鍵點”。
Servlet
要成為一個優秀的Java web專家。無論是你用Spring MVC實現的普通REST接口,還是微服務。往深的走,都要深刻理解Servlet以及容器(例如Tomcat).
因此,在深度學習微服務,以及Spring MVC之前,一定要把Servlet學精,因為他是整個Java web的基石。所以,在成為軟件專家的路上,Servlet是最基本的墊腳石,務必重視。
SQL
在我作為程序員入行的時候,沒少在SQL語言下功夫,尤其是在SQL語言優化方面,包括在存儲過程中各種折騰。
但現在,SQL優化在開發過程中的優先級顯著降低,有幾個原因:
1.各種OR map框架(例如Hibernate、Mybatis)的出現,使SQL的工作量大大降低。
2.各種OR map框架本身也會對編寫的、自動生成的SQL進行優化。
3.當前的服務器架構,如果要提高性能,首先應該考慮架構的橫向擴展性,而不是在SQL上進行極端優化。
但現在也不是說可以完全“任性”的編寫SQL。只是說對于程序員,只要掌握最常見的SQL優化原則,做到工整就夠了。
緩存、隊列
緩存,隊列。業界都有了較成熟的方案,例如Redis,ActiveMQ等。在學習的過程中,第一步是掌握核心概念,以及他們要解決的問題。然后就要親自安裝,使用這些軟件,建立感性的認識。
其次就是在掌握核心概念的基礎上,掌握這些開源軟件的Java API,然后試著在此基礎上,編寫典型的Demo,從而在Java語言層面上徹底掌握。
至于有些朋友提到的把概念再“實現一遍”。不知道朋友指的是使用API,還是把緩存和隊列軟件,用Java語言實現一下。如果是后者,不是說不可以,關鍵是太費時間。同時,就業界實踐來說,不是特別必要。如果你真有興趣,把優先級放低一點,作為一個更長期的目標。
Linux
這個學習計劃是一個長期的,深入的學習計劃。最終是要成長為技術專家、或架構師。那么有必要適時的掌握下Linux。因為在實踐中,服務器往往委托于Linux服務器。而且將來,還有不少開源軟件只能在linux上運行。
因此,在開始學習緩存和隊列錢,需要先掌握了Linux的基本用法。然后再學習的過程中,就把這些開源軟件在Linux上運行。
這樣,在你學習Java的過程中,順便也把Linux學習了,這遠比你將來單獨學習Linux要有趣,印象要深刻。
微服務
微服務并不是一門具體的技術,而是一個設計理念,很多語言和框架都可以實現,例如Java中的Spring MVC等。
因此,如果已經掌握了Spring MVC、Spring boot。那么對微服務的掌握是水到渠成的事情。你要做的就是注意力放在微服務的應用場景上。
設計模式
設計模式是較為靠上的東西。如果Java基礎不是太好的話,很容易陷入空泛,眼高手低。
如果你的Java基礎太薄弱,例如沒有掌握“抽象類”。那么我建議你先把設計模式學習停一下,先把Java的基礎知識補充下,至少要學完《Java核心技術》第六章,也就是掌握完整的現象對象的概念。然后再回來學習設計模式。
在學習設計模式的時候,一定要動手。最起碼要把書中列舉的設計模式,用Java語言實現一下。如果你閱讀時是經典的GOF《設計模式》,其中的代碼(用C++描述),就不容易用Java實現。建議你可以參照《Head First設計模式》,其中的demo都是短小精悍,很適合用Java來實現。
這樣,一則有利于理解設計模式。二則在學習設計模式的過程中,也進一步增強對Java基礎知識的掌握。這種學習過程是一個相互促進的過程。
學習筆記很重要
特別重要的一點,學習的過程中,盡量的寫學習筆記,其中包括難點和重點。
因為,系統深入的學習Java必然是一個長期的,綜合的過程。到后期,一定會出現學著后面,忘了前面。如果你沒有學習筆記,又沒有實踐中積累的代碼,那么就會出現邊學邊忘的情況。
而有了學習筆記,可以給自己的學習留下了“蹤跡”,以后復習的時候用來參考,很會就能把早前學習的記憶“喚醒”。
而且,這些學習筆記在后來的工作中,還能成為自己的參考手冊,隨用隨查。
還有,那就是學習筆記還是一個特別好的面試寶典。因為既然你記下了筆記,這些東西往往經過你深度思考,深度消化的東西,也是你區別以其他工程師的卓越之初。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
一千萬美金等于多少人民幣?按照最新的換算比例來看,1美元約等于6.9719人民幣,1元約等于0.1434美元。但是需要注意的是,通常情況下貨幣的價值比較可以有三種,比較常用的是交換價值,也就是常說的匯率。但是人民幣和美元的匯率是波動的,需要兌換者時刻關注。截止至2021年6月19日美金與人民幣的兌匯率是1玩=6.4525人民幣,因此1000萬美金等于人民幣64525000元人民幣,但美金與人民幣的...
1、書名/作者/類別1./遺失的瑪雅/競技風流籃球序言雖說,競技是神圣的,但我仍然想冒天下之大不違去寫一下,我知道我自己的那水平是多臭,也不奢求有人能看我的東西,或許純粹為了打發時間吧了!籃球是神圣的,但我想有紅顏相伴或許有的是另一番籃球之景吧!即然是小說,自然有點夸張,主角自然很厲害,年輕的時候就早早退役,不是因為傷病而是苦于沒有對主角關鍵字:韋笑秦晉2./大秦炳炳/競技沒什么好介紹的,就是寫籃...
農行的結息交易是什么意思在每個季度最后一個月的21日,中國農業銀行會將本季度內賬戶活期存款利息轉入到用戶的賬戶中,并在下一日為用戶發送含有“結息交易”字樣的短信。中國農業銀行發送的結息交易短信只顯示利息金額,不顯示賬戶余額。借記卡中活期存款采用積數計息按季結息,每季末月的20日為結息日,按結息日營業機構的活期執行利率計算的稅后利息,并入本金起息。中國農業銀行已經暫停收取利息...