安卓開發中個人能力的進階程序
有一天小吳突然說:我做Android開發的時間也不短了,不管你說什麼東西都能跟你說道說道,但如果繼續深入聊一些細節的東西,我就會很吃驚:“哎?這個我之前怎麼沒注意到過?”,可怕的是這種情況發生的概率並不在少數,這是為什麼呢?
如果你也有類似的感覺,那麼就說明你也碰到學習瓶頸期了。
處在瓶頸期說明我們對自己的能力範圍無法進行精準評估,導致我們自己也不知道哪一塊是完全掌握的哪一塊還是有欠缺的。
所謂的進階
既然已經知道了我們處在瓶頸的原因,就可以著手準備我們的學習計劃,也就是Android開發進階了。
在文章開頭的分析中我們知道了自己的弱點其實就是認知不足,所以我們需要定製一個能夠評估自己掌握程度的標準。
由於Android開發所涉及的知識面實在太廣,我們不得不先劃分幾個籠統的模組,然後在每個模組內部繼續細分更小的模組,依此類推形成一個樹狀體系。
知識體系架構
結合目前我的處境,我覺得我可以將所有的知識大致分為三類模組:
業務能力
業務能力就是日常開發時會接觸到的各種各樣的知識,這類知識並不需要了解的有多麼深刻,例如你只需要知道在載入bitmap時通過設定option可以調整顯示比例從而優化記憶體,而不需要知道它是如何調整比例的。雖然沒有要求深度但要求廣度。需要了解的知識儘可能的越多越好,越全面越好。
技術深度
光有豐富的業務能力還不夠,出色的開發人員一定是對技術深度有追求的,對技術瞭解的比較深刻後在開發中可以充分的讓資源物盡其用。學習這類知識不能急於求成,不能吝嗇時間成本,爭取學一樣就學的透徹,例如HashMap類,閱讀原始碼勾勒出所有的實現細節,然後在歸納整理。
架構能力
這部分的知識算是個人能力的展現,如果前兩類知識積累到一定程度後,很自然的就可以憑藉著個人的對所學知識的充分運用,自己設計出一些創新或者偽創新的工具或者開發架構方法。
具體實施方法
讀到這裡的你如果有認真思考的話你就會發現,真正的問題並不是我們少學了什麼東西,而是我們不清楚自己少學了什麼東西。
以樹形結構對知識進行分類歸納能夠儘可能全面的覆蓋到所有的知識點,上節中提到的三個模組就是龐大的樹形結構中的幾個次根結點。
在樹形結構中每個節點代表一個知識點,其子節點是對該知識點內又具體劃分了模組,目的是更容易分類。
學習的過程就是不斷的把新接觸到的知識消化並置於樹中合適的位置。
把以前掌握的知識整理分類歸納是非常必要的,攘外必先安內,學習亦是如此。
現在網上有好多整理好的目錄,非常不建議直接拿來用,一是涵蓋範圍不全面,二是非自己整理的會缺少大局觀的認知。
所以強烈建議自己動手去整理,整理時需要兩個步驟:
樹形結構目錄
這個目錄就像上圖一樣即可,推薦使用類似百度腦圖等工具,比較方便一點。
筆記
每一個樹形節點都是一個資料夾,裡面儲存著對應分類的知識筆記,推薦類似有道雲筆記之類的工具。
文章後面整理了一些三類的知識點,但沒有進行詳細分類,僅供參考。
業務能力進階
Android&Java API的熟練使用
Android Studio的熟練使用
除錯程式
單元測試
Android官方支援庫的使用
主流開源框架的熟練使用
apk編譯流程
gradle的使用
Android版本的更新內容
技術深度進階
JVM執行原理(方法,變數)
Java 多執行緒相關
Java 常用API原始碼分析
Android 系統原理及原始碼分析
主流開源框架原始碼分析
架構能力進階
效能監控與優化
Mock框架搭建
專案架構設計與實行
設計模式