如何高效的學習開源專案?
前言
一個好的開源專案可以提高我們的開發效率,同時它也是一個很好的學習資源,參照大牛的編碼風格和原理實現可以幫助我們養成良好的編碼習慣,學習到優秀的程式碼實踐。那麼我們應該如何高效的學習開源專案呢?
學習方法
學習學習再學習,好的學習方法可以讓我們事半功倍,我經過長期對開源專案的學習,總結出了一套學習開源專案的方法----自頂向下
,大致思路就是先掌握基本的功能、原理和關鍵設計之後再去看原始碼---看原始碼的目的是為了學習其程式碼的寫作方式以及關鍵技術的實現
。
細分的話可以分為五個步驟:
step1-安裝
通過安裝獲取以下關鍵資訊:
- 這個系統的依賴元件,而依賴的元件是系統設計和實現的基礎
- 安裝目錄也可以提供一些使用和執行的基本資訊
- 系統提供了哪些工具方便我們使用
step2-執行
特別關注:命令列和配置檔案
主要提供了兩個關鍵資訊,得以讓我們窺視系統內部執行機制和原理:
- 系統具備哪些能力
- 系統將會如何執行
step3-原理研究
專門針對原理進行系統性研究
怎樣才算系統性呢?
主要體現在如下幾個方面:
- 關鍵特性的基本實現原理
- 優缺點對比分析
原理研究的手段:
- 通讀專案的設計文件
- 閱讀網上已有的分析文件
- Demo 驗證
step4-測試
step5-原始碼研究
原始碼研究的主要目的是學習原理背後的具體編碼如何實現,通過學習這些技巧來提升我們自己的技術能力
帶著明確目的去研究原始碼,做到有的放矢,才能事半功倍,這也是原始碼研究要放在最後的原因。
這五個步驟的難度是逐漸遞增的,一般我們只需要掌握前面三個步驟就可以掌握一個開源專案了,後面兩個步驟等學有餘力再花精力去學習。不要貪多求快,與其學習若干個開源專案,不如先將一個開源專案搞通透,隨著學習的開源專案越來越多,會發現學習起來越來越快,因為很多開源專案的原理實現是有相同部分的,當然這都是需要花大精力去完成的。
學如逆水行舟,不進則退,作為技術人,技術就是我們的屠龍刃,技術就是我們的過橋梯,可以幫助我們實現人生的夢想,以術證道,掌握人生的智慧,才能讓我們活得更加灑脫。
相關文章
- 如何高效地學習開源專案
- 談談如何高效學習開源專案
- Halo 開源專案學習(一):專案啟動
- 20 個值得學習的 Vue 開源專案Vue
- 學習開源專案,不能選擇性眼瞎
- 有哪些值得學習的 Go 語言開源專案?Go
- 如何高效管理 React Native 專案中的圖片資源React Native
- 一個優秀的Android開源框架學習專案ForgetSkyWanAndroidAndroid框架NaN
- GitHub排名TOP30的機器學習開源專案Github機器學習
- 開源一個機器學習文字分析專案機器學習
- 推薦 | 機器學習開源專案 Top 10機器學習
- Halo 開源專案學習(七):快取機制快取
- 如何快速自學開源專案?試試我的訣竅
- Github 上 Star 最多的個人 Spring Boot 開源學習專案GithubSpring Boot
- 推薦一些值得學習的開源專案和框架框架
- 適合 Go 新手學習的開源專案——在 GitHub 學程式設計GoGithub程式設計
- 適合 JS 新手學習的開源專案——在 GitHub 學程式設計JSGithub程式設計
- Learn-Laravel -- 學習資料和開源專案集Laravel
- Halo 開源專案學習(六):事件監聽機制事件
- Halo 開源專案學習(五):評論與點贊
- Halo 開源專案學習(三):註冊與登入
- 機器學習專案是如何開發和部署的?機器學習
- 如何高效學習
- 如何打造規範的開源專案workflow
- 適合 C++ 新手學習的開源專案——在 GitHub 學程式設計C++Github程式設計
- 如何高效的學習python?python學習技巧Python
- 2018年最值得關注學習的25個JavaScript開源專案JavaScript
- 2018年10月Top 10機器學習開源專案機器學習
- Halo 開源專案學習(四):釋出文章與頁面
- 開源專案如何健康長久的發展?
- 如何給開源專案發起提案
- 如何給開源專案做貢獻
- 開源專案audioFlux: 針對音訊領域的深度學習工具庫UX音訊深度學習
- Halo 開源專案學習(二):實體類與資料表
- 開源工具能讓專案管理更高效?2024年開源管理軟體大揭秘!開源工具專案管理
- 【教程】如何從零開始構建深度學習專案?深度學習
- 專案管理丨如何做出高效可行的專案計劃專案管理
- 一個檔案的開源專案,開啟你的開源之旅