2019年學習計劃

2019年學習計劃

寫在前面:

經過制定2018年下半年學習計劃,以及實踐的這一過程,對於學習計劃有了自己的更進一步的理解,這篇2019年學習計劃將比2018年學習計劃更加成熟更加腳踏實地。

每個時期的學習目標

雖然是2019年的學習計劃,但是是從2月份開始的,因爲我剛好是從去年新年的時候正式踏入編程之路,所以將新年作爲每一年的起始點。

  • 2月份
    • 將剩下的《SpringCloud微服務實戰》一書讀完,並從頭回顧此書內容,自己構建一個完善的微服務體系,從實踐中鞏固知識。
  • 3-5月份
    • 到3月份,我一直期待的MercyBlitz小馬哥的一本書《SpringBoot編程思想》應該已經發布了,聽說有800頁?我將在未來3個月內計劃如下:
      1. 花1-2個月時間通讀一遍《SpringBoot編程思想》。
      2. 剩下一個月首先寫一個SpringBoot系列的博文,鞏固知識點。
      3. 此時對SpringBoot有一定了理解了,相信對前面學過的SpringCloud也能有相應的理解,此時最適合寫一個SpringCloud系列的博文。
  • 6-10月份
    • 這個時期注重於分佈式架構的研究,主要學習一些分佈式中間件或是框架的使用,例如zookeeper、dubbo、分佈式事務、MQ、Netty、Redis、Nginx、MongoDB、Docker、分庫分表。其中會針對一些知識點寫博文來鞏固知識點,但不知道時間允不允許我全部都寫一遍過去。
  • 11-12月份
    • 這個時期我希望能回頭鞏固一些Java基礎,首先先回頭回顧《Java編程思想》,爭取再回顧一遍,然後拜讀《碼出高效:Java開發手冊》一書,根據時間,選擇性閱讀《Effective Java》、《重構 改善既有代碼的設計》。

循序漸進的學習計劃

如果有看過之前我寫的2018年下半年學習計劃的讀者,可以發現本篇的學習計劃更加結構化、體系化、層次化。在以前的學習計劃中,我注重於每個月完成一個小目標,例如一個月學完Redis中間件的使用,下個月學習JVM,再下個月學習併發編程,我認爲這是不現實且不好的學習計劃,學習應該循序漸進,就像本篇的計劃一樣,由於我在2018年學習了一段時間的Spring,所以首月我就開始學習SpringCloud了(當然,此時我有SpringBoot的基礎,但不繫統),然後就是系統學習SpringBoot,這其中都是有關聯的,在這一整個時期將關於Spring的一起系統的學習,而不是這一點那一點,而且學習是要有層次性的,學習SpringCloud需要前置學習SpringBoot,學習SpringBoot需要前置學習Spring,這一循序漸進且集中系統的學習計劃纔是可取的。

在系統學習完Spring體系之後,由於接觸了SpringCloud,接觸到許多分佈式系統架構的思想,我將繼續研究分佈式系統架構,這時候才能開始學習中間件的使用,並付諸於分佈式實踐中去,此時也有許多框架的學習,由於前置閱讀了Spring源碼,所以這裏閱讀源碼將更得心應手。

在學習完分佈式架構的一系列知識之後,此時Java語言一定有了一定的基礎,此時再回頭鞏固語言基礎,我相信是一個較好的過程,在後面的時間裏,如果時間富裕,我希望繼續再研究併發編程、深入理解JVM,這就是一個好的循序漸進的學習計劃。

如何學習

王陽明:知而不行,是爲不知,行而不知,可以至知

我特別喜歡這句話,體現了王陽明的著名思想“知行合一”說:“知是行的主意,行是知的工夫。知是行之始,行是知之成”。其實大意不離於“行”字,只有真正實踐了,纔是你的知識,只有實踐你纔會有自己的理解。所以,好的學習過程不僅要知道理論知識,還要付諸行動。其中的方式有很多,首先理論知識可以從視頻入門,書籍博客文章深入。行動可以從寫博文、寫代碼等等進行。其中“行”是最重要的。

總結知識點

  1. SpringBoot
  2. SpringCloud
  3. 中間件
    • zookeeper
    • MQ
    • Redis、MongoDB
    • Nginx
    • Docker
  4. 分佈式治理框架(dubbo)
  5. NIO框架(Netty)
  6. 分佈式架構技術(分佈式事務、分庫分表)
  7. Java基礎再度鞏固

以上關於分佈式架構方面的一些知識點不確定夠不夠時間學完,但還是一樣的觀點,先列出目標,付諸行動就完事了。後續有時間再淺要了解一點併發、JVM相關知識,預計是放到2020年的計劃中去。

相關書籍

  1. 《SpringBoot編程思想》
  2. 《SpringCloud微服務實戰》
  3. 《Java編程思想》
  4. 《碼出高效:java開發手冊》
  5. 選擇性閱讀:《Effective Java》、《重構 改善既有代碼的設計》

如果有好的中間件或是分佈式的書籍後續會補上。

給JAVA初學者的一些建議

有時候會有人問我,有什麼比較好的資料學習Java?學習Java的資料說實話網上真是一堆一堆的,我認爲最重要的是興趣和熱愛,它可以將被動學習轉換成主動學習,這比再好的學習資料還要關鍵。所以我這裏不推薦什麼資料,只想說一些我一路走來的感想:

  • 基礎最重要:上一篇學習計劃總結中有提到,比如知識等級分爲A -> B -> C -> D,而很多高級知識大部分是A -> D的層次,也就是說你如果不會B、C,學習高級知識將會十分吃力且效率極低,這時候有基礎的同學(懂B、C)學習高級知識的A -> D效率是很高且很快能理解的。這裏的A、B、C、D可以自行腦補現實生活中的例子(例如小學、初中、高中、大學),知識都是循序漸進的,天才只是理解ABC的時間花的很少,纔會直接理解D的知識,看起來學習很快,直接懂D,其實還是一個過程了。其次,技術一直在更新換代,從以前的SSH變到SSM再到現在的潮流SpringBoot,變化太快了,甚至大部分互聯網公司都已經進化到分佈式架構,我們需要抓住一些不變的東西來學,再去學變化的,循序漸進的來,就比如,Spring框架是不變的,學習Spring一定不虧,它是框架的框架。亦或是Java基礎,語言是不會變的,應該更着重於基礎的學習,例如語法、併發、JVM等,基礎學好了再去學習更多技術,學習的也會非常快,觸類旁通,這樣纔是好的學習方式,你的摩天大樓纔會非常穩固。
  • 找到你的前置技能:這個思想我在上一篇總結與這篇計劃中反覆提及,不要急於求成,利益心太重,SSM都沒怎麼用過,一上來就要學SpringBoot,如果只是啓動一下是很容易的,但如果要學習它,你必須知道你的前置一定是Spring,但Spring的前置是什麼呢?不能一上來就看源碼吧…它的前置就是設計模式,面向對象(它的前置是什麼?臥槽大概是Java語法基礎吧?不要問我,你自己心裏最清楚,學會找到它!)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章