本文主要論述的是Android程序員的進階之路,博主本人就是一名android開發攻城獅,所以這里講述的大多數是android開發攻城獅的技術進階之路,如有問題請多指正。
大家都知道程序員之中有有菜鳥程序員和大神之分,這里我這暫時把android程序員分為幾個層次:android初級程序員、android中級程序員、android高級程序員、android技術專家、CTO等等,不同的級別掌握的能力不一而定。更好的了解不同階段程序員的進階之路才能把握好自身提高的方向,有目標的提高才是最有效率的提高。
(一)android初級程序員
總結:能干活,有學習能力,能跟着團隊成員做項目;
技能:基礎的組件的使用,熟悉Java基本的語法,Gson,xml數據解析,第三方框架的使用,熟悉android的常用API,熟悉網絡框架或者API的使用,掌握數據庫相關知識點,熟悉android的四大組件、生命周期,熟練掌握界面布局,了解android項目目錄的組織架構等等;
要求:初級程序員一般都是從電腦小白成長起來的,當然了也有可能是web或者是其他方面的大牛轉換過來的,想要成為一個高逼格的初級android程序員需要多看多讀多寫多想,能夠看懂他人的代碼。能夠知道問題大概需要什么方式,對android系統已經有了初步的認識等等。
(二)android中級程序員
總結:能夠分析問題,能夠解決問題;
技能:了解android的簽名機制(實現原理,具體操作等等),打包機制(多渠道打包,打包流程等等),了解apk安裝文件壓縮(壓縮圖片,代碼壓縮,.so文件壓縮等等),事件分發,View繪制流程,webview相關知識點(與Native的交互,性能優化等),熟悉數據庫的使用(基本API,第三方ORM框架,ORM框架的實現原理等等),java反射原理與簡單實踐等,activity的啟動模式,activity,service,fragment,broadcastreceiver廣播生命周期,屏幕適配,AIDL與messager的簡單實用,自定義組件(自定義View與自定義ViewGroup),動畫(補間動畫,幀動畫,屬性動畫),通知欄消息,版本新特性等等等等;
要求:開始閱讀android方面的而源碼,不但能看懂別人的代碼還需要能夠修改別人源碼,對android的體系結構,組成方式,常見開源社區,技術要點能夠了然於胸。
(三)android高級程序員
總結:能夠解決問題,能夠發現問題;
技能:手動編寫框架,設計模式,代碼規范,項目進度,時間估算,啟動流程,性能優化,OOM,沒存溢出與泄露,JNI,腳本開發,activity啟動流程,android中的IPC機制(Binder原理),對iOS等其他移動開發現學現用等等;
要求:能夠造輪子,比如寫一個網絡框架,事件總線控件,特效View等,重點是能夠為產品造輪子。
(四)android技術專家
總結:對某一方面非常精通與專注;
技能:比如對android的對媒體模塊十分熟悉,閱讀過android多媒體模塊的源碼,能夠更改其中的不足與BUG等等;
要求:熟讀android源碼,對android的某一模塊有自身的看法並能夠有相應的修改能力,能夠知道團隊他人的日常產品開發等。
(五)CTO
總結:似乎已不再是程序員的范疇;
技能:專注技術大的方向的把控;