對於一門新技術或者開源項目如何從頭開始學習?相信每一個人都有不一樣的想法和看法,下面談談我我的的想法和實踐git
不管你學習的新知識是什麼,首先能夠簡單的百度 google一下,好比我想要學習netty,那麼就搜索 "netty 介紹",讀完事後,必定要去官方網站看一下。通常的開源項目都放在github上,且有一個readMe.md文件,我建議你必定要去讀一遍。由於官網上的文檔信息必定是最全最新的,全部其餘網站的資料,幾乎都是從官網上搬運過去的,且頗有可能相關資料已通過時。github
不管怎樣,對於一門新知識的學習,建議你必定要去官網上看一下文檔數據庫
這裏的「重量級知識」是指有難度,有深度,且相對不容易掌握的知識,例如elasticsearch、netty、Java多線程、JVM底層,這些知識的學習是須要時間沉澱的,不可能一蹴而就。api
這些知識,每每不是簡單掌握用法、API便可,否則頗有可能會埋坑,且在未來某個時間爆發。多線程
就拿我親身經從來說,之前咱們有個項目須要使用elasticsearch,且該項目很是緊急,我和另外一個同事以前都沒有任何elasticsearch相關經驗,咱們從網上簡單瞭解並學習相關elasticsearch api事後,就直接在項目中使用,而咱們判斷elasticsearch是否正確使用的依據,就是 業務 「CRUD」 相關功能是否正常。app
受益於elasticsearch開箱即用,我和同事順利的完成了相關任務,可是隨着我深刻學習elasticsearch,我發現咱們寫的代碼存在很多問題elasticsearch
雖然咱們順利的完成了任務,可是咱們的代碼存在不少問題,且在數據量大的狀況下,很致命。(後來已修復)maven
一件事情,每每有兩面性,像elasticsearch開箱即用功能,很是容易上手,簡單部署一下,再調用相關API,就能實現 「CRUD」,可是便利的背後倒是一大堆問題,若是你不深刻學習elasticsearch,包括它的分片、mapping、索引別名、分詞器、routing、template、filter過濾器、聚合、JVM內存設置、集羣、冷熱數據、副本、kibana、logstash等等。即便如今你的代碼沒有任何問題,可以運行,未來在某個時刻,你必定會爲你的行爲買單!性能
所以,對於這些「重量級知識」,我建議你必定要深刻學習,而且長時間積累,造成體系。並把一些重要的知識點和坑記錄下來,以避免忘記。單元測試
就拿我學習elasticsearch而言,由於咱們項目嚴重依賴elasticsearch,且數據量很多,所以過年期間我專一於elasticsearch。且後續不斷積累相關知識,個人學習步驟以下
首先看官方文檔,且在學習的過程當中,一直穿插着在看官方文檔 ,因爲elasticsearch知識點不少,官網的文檔也很是多,剛開始學習的時候,僅僅看官網文檔,進展很慢,由於一些elasticsearch術語、行話不是很瞭解,因此是一邊看視頻、博客、公衆號、一邊看官方文檔。
若是你想要深刻學習elasticsearch,我強烈推薦你去看 銘毅天下的博客、公衆號、知識星球。 這個博主專一於elasticsearch領域,且已經經過了elasticsearch官方認證工程師。 百度搜索 「銘毅天下」 便可
至此,個人elasticsearch相關領域的知識,已經從最初的簡單使用 api 到如今 已深刻理解elasticsearch相關核心知識。
我在學習elasticsearch的過程當中,不斷積累相關重點知識和坑,並造成必定知識體系,方便我後期查閱。
我建議你最好也將相關知識記錄下來,最後造成必定體系。
這裏的「輕量級知識」是指難度較低,且深度較淺,並容易掌握的知識。相似於druid數據庫鏈接池、easyExcel等等
就拿我學習easyExcel舉例。之前處理excel相關數據的時候,使用的都是poi,可是最近發現同事在使用easyExcel,這引發了個人好奇心,到網上查閱相關資料,發現easyExcel相比poi、jxl有很多優勢,且有完善的中文文檔和社區(其實就是qq羣和釘釘羣,有問題能夠到羣裏面提問),因而我也嘗試使用easyExcel來處理excel相關數據。
第一步: 我到github easyExcel首頁,讀完整個readMe.md 文檔(全是中文),建議你必定要讀完,以避免錯太重要信息。
第二步: 經過文檔信息,我知道easyExcel是個maven工程,而且有着完善的單元測試,我隨即clone()最新的代碼到本地
第三步: 經過文檔信息,找到核心單元測試 ReadTest、WriteTest,並跑完這兩個類全部的測試方法
第四步: 讀取docs目錄下相關easyExcel相關信息
這裏不得不提一下,easyExcel的單元測試用例,寫的很是好,而且很完善,基本上全部和excel相關的處理,你基本上均可以找到相關的測試用例代碼。每個單元測試,你均可以成功運行,且還有代碼註釋和實際的控制檯輸出,若是你想深刻了解底層邏輯,還能夠debug代碼。
每個測試用例都有詳細的註釋:
每個測試用例都有詳細的輸出:
經過easyExcel的單元測試用例,僅僅一個下午的時間,我就徹底掌握了easyExcel處理excel相關的方法。
對於這類「輕量級知識」,經過官方文檔信息和單元測試用例來學習,真的很是省時省力。若是你是經過博客或百度查閱一個個知識點,真的很花時間,且資料極可能已通過時。