剖析Android移動開發程序員的職業發展之路
做Android移動開發已經有三年時間,其中甘苦自知,對Android開發和對Android程序員的職業發展有一些自己的感悟,在這裏願與大家分享和討論。
Android移動開發程序員晉級的三個“相對條件”
第一:興趣
這事不展開說了,每個程序員都知道,做碼農,如果不能樂在其中,是很痛苦的一件事,因此,入行需謹慎。
第二:靜氣
如果你新入行,菜鳥級,你的工作主要是改bug,不停的接受改bug的任務,總之,都是小事,這時,也許你會焦慮,我的對策是:馬上定一個目標學習計劃,主動學習,因爲大學裏的知識體系基本無用,Android不難,三個月會有小成。
第三:平臺
自行車再快,也沒有寶馬快。努力固然重要,平臺也很關鍵,因爲那裏有很多大牛人可以迅速帶你成長,如果你現在還沒有一個好的平臺,你就泡一些大牛出沒的論壇,看幾本好書,找機會換到寶馬平臺上去。提示:換平臺的時機很重要,您至少得有大衆的實力,寶馬平臺才考慮接收你吧。
職業發展的路線規劃:
Android移動開發程序員的職業發展路徑在我看來,基本上有兩條:技術專精路線和技術轉產品路線。
路線1的晉升軌跡:Android初級開發程序員---中級---高級--軟件架構師--系統架構師--項目經理--首席技術官
路線2的晉升軌跡:Android初級開發程序員---中級---高級--軟件架構師--系統架構師--產品經理--產品總監
規劃圖來源:6座網 www.6sit.com Android移動開發工程師職業發展規劃圖
路線描述:
路線1:技術爲王的職業發展路線
入門初級階段:掌握Java基本知識(或任何其他面嚮對象語言),需要掌握Android SDK軟件開發工具包,多看Android相關的文檔,IDE (例如Eclipse),這些是必不可少的。順便學習一下JavaScript腳本基礎。掌握這些基本上已經可以算是入門了。
晉升中級階段:想晉升爲到高級Android工程師至系統架構師的職位,很重要的一點就是學習研究源代碼,直接查閱Android的源代碼(這是看李寧老師的書得到的啓發),源代碼很容易從網上獲得。同時,Android很大程度上是基於Linux內核的,所以學習 Linux的相應API以及各種操作也是十分必要的。還有,常用混合移動開發框架(例如:AppCan)。編譯原理,高併發網站架構設計等技能。
高層發展階段:再往上想發展到項目經理,還需要掌握Android 軟件安全分析技術、軟件開發常用測試、界面交互式系統設計,同時要補充些項目管理方面的知識,比如:軟件項目風險管理常用團隊協作開發工具需求分析設計設計模式。
要做到公司首席技術官的位子,更多的是從架構考慮,包括:數據庫系統優化、Windows Server服務器架設管理、網絡安全技術與解決方案(Cisco)、海量數據庫解決方案、大型服務器負載均衡優化技術等等。這是個需要絕對實力的職位。也是我的終極目標。
路線2:由技術向產品方向轉型的職業發展路線
由技術向產品方向轉型是很常見的,每個公司都有,成功的例子很多,一個好的程序員更容易成爲一個好的產品經理,比如:周鴻禕,雷軍。但在考慮轉型的時候,要問一下自己爲什麼轉型,走向產品,拼的就不再是單純的技術能力了,做產品要懂人情,會管理,要事事練達,這裏邊的性格因素你要考慮。
初、中期還是要儲備技能,我不建議在初級直接轉到產品,這等於放棄了你的優勢,還是要靜下心來把技術學會,老話講,欲速則不達。
一旦有轉型的規劃,就要提前學習產品經理的必會技能,如:用戶體驗設計、Axure rp快速原型設計工具、公關營銷策劃技巧、數據挖掘、需求分析設計、品牌傳播、用戶心理體驗、軟件需求說明文檔寫作、數據分析,哈,不少吧。
所需技能:
路線1(技能專精)所需技能:
常用混合移動開發框架
常用嵌入式數據庫
Android SDK軟件開發工具包
Web GIS開發
Android嵌入式系統程序開發技術
Java程序設計基礎
數據結構
JavaScript腳本基礎
HTML5開發技能
常用團隊協作開發工具
編程語言基礎
需求分析設計
設計模式
UML建模語言
軟件工程系統知識
編譯原理
路線2(轉型產品)所需技能:
用戶體驗設計
Office辦公軟件應用
軟件需求說明文檔寫作
品牌傳播
數據挖掘
公關營銷策劃技巧
界面交互式系統設計
數據分析
Axure rp快速原型設計工具
用戶心理體驗
績效量化考覈量化管理
需求分析設計
受衆心理學
思維導圖
執行力
人際交往與溝通能力
總結:
其實還有第三條路線,就是自己創業,但不管哪個方向,對自己的未來提前客觀的做出職業發展規劃是有必要的,還是那句老話,機會是留給有準備的人的。