玖哥是一個來自東北的Android攻城獅,如今定居被譽爲「大湖名城,創(chuan)新(xiao)高地」的合肥。知識面極廣,不只普遍涉獵IT相關知識,還熱愛文學,性格幽默,被譽爲「會搞Android的段子手」。他仍是一個藏書人士,擁有汗牛充棟的IT書籍,並且每本書都認真閱讀過,從不拿書當擺設。程序員
玖哥·Android攻城獅小程序
先說說Android程序員不可能轉型的幾個方向,如下四個不靠譜方向的靠譜性遞減:微信小程序
首先不會轉型iOS,iOS和Android工程師的工做內容都是大同小異的。安全
其次不會轉型Windows Phone,好多Andr oid程序員就是受不了產品經理嘮叨:「像QQ客戶端那樣作成和iOS同樣」才轉型的,怎麼會轉型比Android還難作成和iOS同樣的WP?服務器
再次不會轉型Windows和MacOS等桌面軟件,桌面開發週期長、難度大、升級不易,這是一個已經接近窮途末路的夕陽產業。微信
最後不會開JavaME或者Symbian的歷史倒車,除非他有本事讓每一個用戶都買(就一個「買」字,同時包含「想買」和「買獲得」的意思)停產多年的機型。app
玖哥觀察現在的技術形勢,並親身探索了一個Android程序員轉型的十個技術方向的可行性:框架
一、Android病毒和惡意應用運維
最近肆虐全世界的WannaCry讓安全成了IT圈最熱的話題,開發膩了善意應用的Android工程師最便捷的轉型方向就是開發Android病毒和惡意應用。在4.x時代對Android對敏感權限還不是很敏感的時候,玖哥就研究過給肉雞僞造短信記錄和讓肉雞給通信錄裏全部(或特定)聯繫人發送短信的病毒。去年還研究過竊取友商App推送內容、強殺友商App進程、卸載友商App甚至讓友商App被卸載後就不再能在這臺肉雞上安裝的惡意應用(或應用裏的惡意功能)。ide
轉型建議:此外鎖定肉雞裏的重要文件勒索用戶(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,其實遭遇寒冬的不是某個行業,而是某些基礎很差的人。
若是你也願意分享你的故事,請加51CTO開發者QQ交流羣 312724475聯繫羣主小官,期待你精彩的故事!