Android程序員的十大轉型之路

轉載自:https://blog.csdn.net/dongfeng9ge/article/details/73547005

IT行業是一個瞬息萬變的行業,程序員是一個不進則退的職業。我作爲一個Android程序員,多年來一直保持隨時可以轉型其他技術領域的狀態,保持對新技術敏感的嗅覺。

 

我先說說Android程序員不可能轉型的幾個方向,以下四個不靠譜方向的靠譜性遞減:

首先不會轉型iOS,iOS和Android工程師的工作內容都是大同小異的。

其次不會轉型Windows Phone,好多Andr oid程序員就是受不了產品經理嘮叨:“像QQ客戶端那樣做成和iOS一樣”才轉型的,怎麼會轉型比Android還難做成和iOS一樣的WP?

再次不會轉型Windows和MacOS等桌面軟件,桌面開發週期長、難度大、升級不易,這是一個已經接近窮途末路的夕陽產業。

最後不會開JavaME或者Symbian的歷史倒車,除非他有本事讓每個用戶都買(就一個“買”字,同時包含“想買”和“買得到”的意思)停產多年的機型。

 

我觀察如今的技術形勢,並親身探索了一個Android程序員轉型的幾個技術方向的可行性:

 

Android病毒和惡意應用

最近肆虐全世界的WannaCry讓安全成了IT圈最熱的話題,開發膩了善意應用的Android工程師最便捷的轉型方向就是開發Android病毒和惡意應用。在4.x時代對Android對敏感權限還不是很敏感的時候,我就研究過給肉雞僞造短信記錄和讓肉雞給通訊錄裏所有(或特定)聯繫人發送短信的病毒。去年還研究過竊取友商App推送內容、強殺友商App進程、卸載友商App甚至讓友商App被卸載後就再也不能在這臺肉雞上安裝的惡意應用(或應用裏的惡意功能)。

 

轉型建議:此外鎖定肉雞裏的重要文件勒索用戶(Android上的WannaCry?)和竊取肉雞用戶的支付密碼的實現在技術上也像強姦8歲女童一樣簡單,只不過事後逍遙法外很難。這個轉型方向只適合拿自己的手機當肉雞玩玩,千萬不要用這些技術賺錢。

 

SDK

開發SDK本質上仍然在爲Android應用開發軟件,只是不直接開發Android應用。

 

每個Android程序員工作幾年後都積累了屬於自己的或大或小的類庫,比如封裝好的LogUtils和ToastUtils等;也都或多或少研究過常用開源框架的底層原理,比如瞭解Picasso和EventBus等;還應該對不開源的第三方服務有自己簡單的二次封裝,比如我就封裝了一鍵實現支付寶和微信支付的moudle(免費的Ping++?)。

 

轉型建議:儘管看見自己的鏈接出現在無數Android應用的Gradle文件的compile後面,開發了無數軟件的一部分的成就感不會比開發完整的軟件差。但是幾乎沒有老闆會爲了支持你開發開源軟件發你工資。

 

JavaEE

Android程序員轉型Java在基礎知識方面是沒什麼難度的,畢竟語言相通,特性相似。同時每個Android程序員在大學時J2EE課程學得都不會很差,不過有些知識是該忘掉的,比如Hibernate已經落後於時代了,SpringMVC的全面使用纔是Java後臺的大勢所趨。

 

轉型建議:建議不想每天改UI的剛入行不久的Android工程師轉型,我有好幾個學弟就是參加工作後從Android轉型Java的,他們過得都不錯。很多工作年限較長的Android工程師本來就是JavaEE轉型來的,就別轉回去了。

 

手遊

首先考慮不放棄Java語言和Android開發習慣的情況:最合適的就是能把遊戲view直接插入普通layout裏的AndEngine,前幾年大紅大紫的Flappy Bird就是用它開發的。AndEngine的開發方式和Android別無二致,且有豐富的開源demo。不過AndEngine沒有官方文檔,理論學習上有一定難度。我用AndEngine開發了我的畢業設計,參加工作後也用AndEngine獲得了幾個獎,我珍藏着一本AndEngine的非官方文檔《Android遊戲開發實踐指南》(全新未拆封),期待着有一天能回到2014年把它送給那個買不起它的畢業生。

 

提到了AndEngine就不得不提國產AndEngine——OGEngine,它是基於AndEngine衍生的遊戲引擎,有詳細的純中文文檔和說漢語的技術支持楊城(筆名:小城),極適合開發Android TV遊戲。OGEngine目前已停止更新,這個國產遊戲引擎的悲劇在於推出時間太早,希望Android TV普及的時候捲土重來的OGEngine能讓中國在遊戲引擎方面領跑全世界。

 

LibGDX是一個跨平臺的遊戲開發框架,同樣使用Java作爲開發語言,前文所說的AndEngine就是基於LiBGDX實現的。LibGDX最大的優點就是極強的兼容性,不僅兼容Android和iOS,還兼容Windows、Linux、Max OS X等桌面系統。極強的兼容性還爲開發提供了便利——不必打開Android模擬器,直接用電腦debug你的應用。在LibGDX和Android之間相互轉型都很容易,知名的Android專家宋志輝、吳佳俊等都是從LibGDX轉型Android的。

 

如果不要Java語言,那就有Cosos2d-x可供選擇。《Cocos2d-x遊戲開發實戰精解》的作者歐桐桐(筆名:OTT)認爲Android程序員一般對面向對象的知識掌握的比較全面,上手Cosos2d-x比較容易,並且Cosos2d-x是中國人維護的,文檔全、資源多、教程多。OTT在得知我是和他一樣的藏書人士後還特地送我一本他的大作鼓勵我。

 

轉型建議:做好心理準備,國內手遊行業比普通的移動互聯網行業加班更瘋狂,建議剛入行沒多久的Android工程師爲了加班費轉型,不建議30歲以上的Android工程師轉型。

 

HTML5

HTML5也是Android工程師改行的好方向,HTML5在移動互聯網領域應用非常廣泛,比如混合開發、手機站、小遊戲、微信公衆號、微信小程序等。簡單的手機站和對性能要求不高小遊戲直接用從懶人模板(http://www.lanrenmb.com/)上找到的資源稍微修改一下即可,這裏我只說說的混合開發應用和的小遊戲怎麼開發。

 

最著名的HTML5移動開發框架當屬Facebook發佈於2015年的React Native,這是一套跨平臺、動態更新的 Javascript 框架,口號是“Learn once, write anywhere”。與之類似有同屬舶來的PhoneGap等。

 

國產的HTML5開發框架在國內也百家爭鳴,常見的有HBuilder和AppCan,二者共同特點是都爲了便於新手入門製作了專用的編譯器。2016年,在Qcon大會上宣佈開源的Weex也異軍突起,來自阿里的它因爲開發的軟件與原生App別無二致受到很多人的青睞。

 

開發對性能要求比較高的HTML5遊戲,靠模板是不行的。2014年2月創立於北京的Egret是一套完整的HTML5遊戲開發解決方案,其核心產品白鷺引擎(Egret Engine)憑藉上手簡便、性能強大已佔據國內超七成的手機頁遊引擎市場份額。

 

Egret佈道師徐聰(筆名:臭臭打不死人)還送我了Egret官方教程《Egret——HTML5遊戲開發指南》和Egret吉祥物。

 

轉型建議:一般來說,除非手機頁遊或商場,大多數用HTML5開發的Android應用就是胡鬧。這條路線幾乎是專爲電商和小遊戲行業準備的,如果公司有這方面的需求,Android程序員可以憑藉平時自學的這方面技術完成任務。

 

VR

2015年底遊戲外設王者雷蛇推出了VR遊戲頭顯,2016年各大遊戲廠商和小工作室爭先恐後開發VR遊戲爭奪市場,開啓了“中國VR元年”。雖然目前VR主要用在娛樂領域,被很多人視爲玩具,但是VR所具有的價值卻遠遠超出“玩具”的範疇。

 

前文討論遊戲引擎的時候沒說Unity-3d不是疏漏,而是要把Unity-3d放在這兒談。Unity-3d 是Unity公司開發的一個3D遊戲開發工具,近年來的新版本不斷加強對VR硬件系統的支持。Android程序員轉型VR不僅可以實現自己從小就想讓遊戲跳出四角方框的夢想,還有Unity-3d所用的C#語言本來就是嚷着“我不是Java語言”的Java語言的學習優勢。

 

轉型建議:VR現在正是一片藍海,只要自學能力夠強,轉型VR就像2015年在合肥買房一樣明智。當然前提是你能找到願意出錢的老闆或投資人。

 

大數據

移動互聯網時代是一個科技發達,信息流通的時代,大數據就是這個高科技時代的產物。馬雲曾在演講中提到:未來的時代將不是IT時代,而是DT的時代。DT就是Data Technology(數據科技)的縮寫,大數據的合理利用與否成了很多行業成敗的關鍵。

 

移動互聯網經過這些年的發展,拿O2O和當噱頭已經唬不住投資人了。Hadoop也就自然而然受到了青睞,很多每4個月“生產”一批“兩年經驗”的“程序員”的培訓機構也問我:“Android和iOS現在不吃香了,你能幫我介紹幾個Hadoop講師嗎?”

 

轉型建議:與轉型Java後臺一樣,Android程序員轉型Hadoop也具備語言相通,特性相似的優勢。目前各大培訓機構已經如蠅逐臭爭相批量生產Hadoop程序員,如果你是因爲陷入了他們培訓的Android程序員造成的紅海才轉型的話,建議你不要轉型,提升自己的競爭力纔是王道。

 

人工智能和深度學習

前一陣子AlphaGo戰勝了人類世界的圍棋世界冠軍柯潔,轟動了全世界。柯潔認爲AlphaGo是能夠打敗一切的圍棋上帝,這個說法我不敢苟同,畢竟它沒有和“天”對弈過,但存在能“勝天半子”的人類——祁同偉。即使AlphaGo不能打敗一切,也沒有人有理由認爲人工智能和深度學習不能成爲IT屆的重要發展方向。

 

TensorFlow是谷歌基於DistBelief進行研發的第二代人工智能學習系統,具備極佳的靈活性和可延展性,在和人工智能相關的領域都有廣泛的應用。TensorFlow是開源的,會大大降低深度學習在各個行業中的應用難度,有遠大的發展前景。

 

轉型建議:儘管我堅信將來會T(ensor)F(low)的boys受女性歡迎程度不亞於TFboys,但TensorFlow暫時很不成熟,這個“將來”距今多久還是未知數。

 

Android系統

Linux作爲目前大多數服務器的操作系統,學習Linux的大多數人的目的是做一個運維。然而把腦洞再開大一點的話,Android程序員精通了Linux之後可以開發一套屬於自己的Android系統。《Linux大棚命令百篇》的作者吳鵬衝(筆名:Roc,和我一樣也是水滸迷)和《循序漸進Linux》的作者高俊峯都送了一本自己的作品鼓勵我開發屬於自己的Android ORM。

 

這張照片攝於2016年3月30日我拿着《循序漸進Linux(第二版)》回到母校的自習室裏攻讀想成爲像高老師一樣能定製自己的Android系統的Linux專家的路上(雙關)

 

轉型建議:如果Android程序員準備跳槽到生產手機等搭載Android系統的硬件的廠商的話學習Linux再合適不過了,否則就只能自己刷機玩了。

 

產品經理

每個人都可能變成自己最討厭的人,我也不例外。我從《人人都是產品經理》中學到了產品經理的情懷,還從《從點子到產品》中學到了產品經理的技術。還有幸趕上了今年3月《從點子到產品》的作者劉飛收徒。關於我轉型產品經理失敗的情況是一個發生在我和劉飛之間的“挖隋煬帝墳墓的開發商名叫楊勇”的故事:

2016年初,我帶新人,沒有收劉飛(同名學弟)爲徒

2017年初,劉飛帶新人,不肯收我爲徒

 

轉型建議:產品經理也是技術崗位,只不過寫的是給人看的需求文檔。如果一個Android程序員寫的代碼只能讓電腦看懂而不能讓負責維護的程序員看懂,那麼就不要轉型產品經理。

 

Android程序員轉型機會雖然多,但不要因爲看招聘網站上某個職業平均工資高就轉型,隨波逐流的弄潮兒必然會在浪潮之巔摔得好慘。培訓機構常說“Android不吃香了,移動互聯網的寒冬來了”來吸引人報名學習速成的Hadoop和TensorFlow,其實遭遇寒冬的不是某個行業,而是某些沒有打好基礎的人。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章