IT行業(yè)是一個(gè)瞬息萬變的行業(yè),程序員是一個(gè)不進(jìn)則退的職業(yè)。我作為一個(gè)Android程序員,多年來一直保持隨時(shí)可以轉(zhuǎn)型其他技術(shù)領(lǐng)域的狀態(tài),保持對(duì)新技術(shù)敏感的嗅覺。
我先說說Android程序員不可能轉(zhuǎn)型的幾個(gè)方向,以下四個(gè)不靠譜方向的靠譜性遞減:
首先不會(huì)轉(zhuǎn)型iOS,iOS和Android工程師的工作內(nèi)容都是大同小異的。
其次不會(huì)轉(zhuǎn)型Windows Phone,好多Andr oid程序員就是受不了產(chǎn)品經(jīng)理嘮叨:“像QQ客戶端那樣做成和iOS一樣”才轉(zhuǎn)型的,怎么會(huì)轉(zhuǎn)型比Android還難做成和iOS一樣的WP?
再次不會(huì)轉(zhuǎn)型Windows和MacOS等桌面軟件,桌面開發(fā)周期長(zhǎng)、難度大、升級(jí)不易,這是一個(gè)已經(jīng)接近窮途末路的夕陽產(chǎn)業(yè)。
最后不會(huì)開JavaME或者Symbian的歷史倒車,除非他有本事讓每個(gè)用戶都買(就一個(gè)“買”字,同時(shí)包含“想買”和“買得到”的意思)停產(chǎn)多年的機(jī)型。
我觀察如今的技術(shù)形勢(shì),并親身探索了一個(gè)Android程序員轉(zhuǎn)型的幾個(gè)技術(shù)方向的可行性:
Android病毒和惡意應(yīng)用
最近肆虐全世界的WannaCry讓安全成了IT圈最熱的話題,開發(fā)膩了善意應(yīng)用的Android工程師最便捷的轉(zhuǎn)型方向就是開發(fā)Android病毒和惡意應(yīng)用。在4.x時(shí)代對(duì)Android對(duì)敏感權(quán)限還不是很敏感的時(shí)候,我就研究過給肉雞偽造短信記錄和讓肉雞給通訊錄里所有(或特定)聯(lián)系人發(fā)送短信的病毒。去年還研究過竊取友商App推送內(nèi)容、強(qiáng)殺友商App進(jìn)程、卸載友商App甚至讓友商App被卸載后就再也不能在這臺(tái)肉雞上安裝的惡意應(yīng)用(或應(yīng)用里的惡意功能)。
轉(zhuǎn)型建議:此外鎖定肉雞里的重要文件勒索用戶(Android上的WannaCry?)和竊取肉雞用戶的支付密碼的實(shí)現(xiàn)在技術(shù)上也像***8歲女童一樣簡(jiǎn)單,只不過事后逍遙法外很難。這個(gè)轉(zhuǎn)型方向只適合拿自己的手機(jī)當(dāng)肉雞玩玩,千萬不要用這些技術(shù)賺錢。
SDK
開發(fā)SDK本質(zhì)上仍然在為Android應(yīng)用開發(fā)軟件,只是不直接開發(fā)Android應(yīng)用。
每個(gè)Android程序員工作幾年后都積累了屬于自己的或大或小的類庫(kù),比如封裝好的LogUtils和ToastUtils等;也都或多或少研究過常用開源框架的底層原理,比如了解Picasso和EventBus等;還應(yīng)該對(duì)不開源的第三方服務(wù)有自己簡(jiǎn)單的二次封裝,比如我就封裝了一鍵實(shí)現(xiàn)支付寶和微信支付的moudle(免費(fèi)的Ping++?)。
轉(zhuǎn)型建議:盡管看見自己的鏈接出現(xiàn)在無數(shù)Android應(yīng)用的Gradle文件的compile后面,開發(fā)了無數(shù)軟件的一部分的成就感不會(huì)比開發(fā)完整的軟件差。但是幾乎沒有老板會(huì)為了支持你開發(fā)開源軟件發(fā)你工資。
JavaEE
Android程序員轉(zhuǎn)型Java在基礎(chǔ)知識(shí)方面是沒什么難度的,畢竟語言相通,特性相似。同時(shí)每個(gè)Android程序員在大學(xué)時(shí)J2EE課程學(xué)得都不會(huì)很差,不過有些知識(shí)是該忘掉的,比如Hibernate已經(jīng)落后于時(shí)代了,SpringMVC的全面使用才是Java后臺(tái)的大勢(shì)所趨。
轉(zhuǎn)型建議:建議不想每天改UI的剛?cè)胄胁痪玫腁ndroid工程師轉(zhuǎn)型,我有好幾個(gè)學(xué)弟就是參加工作后從Android轉(zhuǎn)型Java的,他們過得都不錯(cuò)。很多工作年限較長(zhǎng)的Android工程師本來就是JavaEE轉(zhuǎn)型來的,就別轉(zhuǎn)回去了。
手游
首先考慮不放棄Java語言和Android開發(fā)習(xí)慣的情況:最合適的就是能把游戲view直接插入普通layout里的AndEngine,前幾年大紅大紫的Flappy Bird就是用它開發(fā)的。AndEngine的開發(fā)方式和Android別無二致,且有豐富的開源demo。不過AndEngine沒有官方文檔,理論學(xué)習(xí)上有一定難度。我用AndEngine開發(fā)了我的畢業(yè)設(shè)計(jì),參加工作后也用AndEngine獲得了幾個(gè)獎(jiǎng),我珍藏著一本AndEngine的非官方文檔《Android游戲開發(fā)實(shí)踐指南》(全新未拆封),期待著有一天能回到2014年把它送給那個(gè)買不起它的畢業(yè)生。
提到了AndEngine就不得不提國(guó)產(chǎn)AndEngine——OGEngine,它是基于AndEngine衍生的游戲引擎,有詳細(xì)的純中文文檔和說漢語的技術(shù)支持楊城(筆名:小城),極適合開發(fā)Android TV游戲。OGEngine目前已停止更新,這個(gè)國(guó)產(chǎn)游戲引擎的悲劇在于推出時(shí)間太早,希望Android TV普及的時(shí)候卷土重來的OGEngine能讓中國(guó)在游戲引擎方面領(lǐng)跑全世界。
LibGDX是一個(gè)跨平臺(tái)的游戲開發(fā)框架,同樣使用Java作為開發(fā)語言,前文所說的AndEngine就是基于LiBGDX實(shí)現(xiàn)的。LibGDX最大的優(yōu)點(diǎn)就是極強(qiáng)的兼容性,不僅兼容Android和iOS,還兼容Windows、Linux、Max OS X等桌面系統(tǒng)。極強(qiáng)的兼容性還為開發(fā)提供了便利——不必打開Android模擬器,直接用電腦debug你的應(yīng)用。在LibGDX和Android之間相互轉(zhuǎn)型都很容易,知名的Android專家宋志輝、吳佳俊等都是從LibGDX轉(zhuǎn)型Android的。
如果不要Java語言,那就有Cosos2d-x可供選擇。《Cocos2d-x游戲開發(fā)實(shí)戰(zhàn)精解》的作者歐桐桐(筆名:OTT)認(rèn)為Android程序員一般對(duì)面向?qū)ο蟮闹R(shí)掌握的比較全面,上手Cosos2d-x比較容易,并且Cosos2d-x是中國(guó)人維護(hù)的,文檔全、資源多、教程多。OTT在得知我是和他一樣的藏書人士后還特地送我一本他的大作鼓勵(lì)我。
轉(zhuǎn)型建議:做好心理準(zhǔn)備,國(guó)內(nèi)手游行業(yè)比普通的移動(dòng)互聯(lián)網(wǎng)行業(yè)加班更瘋狂,建議剛?cè)胄袥]多久的Android工程師為了加班費(fèi)轉(zhuǎn)型,不建議30歲以上的Android工程師轉(zhuǎn)型。
HTML5
HTML5也是Android工程師改行的好方向,HTML5在移動(dòng)互聯(lián)網(wǎng)領(lǐng)域應(yīng)用非常廣泛,比如混合開發(fā)、手機(jī)站、小游戲、微信公眾號(hào)、微信小程序等。簡(jiǎn)單的手機(jī)站和對(duì)性能要求不高小游戲直接用從懶人模板(http://www.lanrenmb.com/)上找到的資源稍微修改一下即可,這里我只說說的混合開發(fā)應(yīng)用和的小游戲怎么開發(fā)。
最著名的HTML5移動(dòng)開發(fā)框架當(dāng)屬Facebook發(fā)布于2015年的React Native,這是一套跨平臺(tái)、動(dòng)態(tài)更新的 Javascript 框架,口號(hào)是“Learn once, write anywhere”。與之類似有同屬舶來的PhoneGap等。
國(guó)產(chǎn)的HTML5開發(fā)框架在國(guó)內(nèi)也百家爭(zhēng)鳴,常見的有HBuilder和AppCan,二者共同特點(diǎn)是都為了便于新手入門制作了專用的編譯器。2016年,在Qcon大會(huì)上宣布開源的Weex也異軍突起,來自阿里的它因?yàn)殚_發(fā)的軟件與原生App別無二致受到很多人的青睞。
開發(fā)對(duì)性能要求比較高的HTML5游戲,靠模板是不行的。2014年2月創(chuàng)立于北京的Egret是一套完整的HTML5游戲開發(fā)解決方案,其核心產(chǎn)品白鷺引擎(Egret Engine)憑借上手簡(jiǎn)便、性能強(qiáng)大已占據(jù)國(guó)內(nèi)超七成的手機(jī)頁游引擎市場(chǎng)份額。
Egret布道師徐聰(筆名:臭臭打不死人)還送我了Egret官方教程《Egret——HTML5游戲開發(fā)指南》和Egret吉祥物。
轉(zhuǎn)型建議:一般來說,除非手機(jī)頁游或商場(chǎng),大多數(shù)用HTML5開發(fā)的Android應(yīng)用就是胡鬧。這條路線幾乎是專為電商和小游戲行業(yè)準(zhǔn)備的,如果公司有這方面的需求,Android程序員可以憑借平時(shí)自學(xué)的這方面技術(shù)完成任務(wù)。
2015年底游戲外設(shè)王者雷蛇推出了VR游戲頭顯,2016年各大游戲廠商和小工作室爭(zhēng)先恐后開發(fā)VR游戲爭(zhēng)奪市場(chǎng),開啟了“中國(guó)VR元年”。雖然目前VR主要用在娛樂領(lǐng)域,被很多人視為玩具,但是VR所具有的價(jià)值卻遠(yuǎn)遠(yuǎn)超出“玩具”的范疇。
前文討論游戲引擎的時(shí)候沒說Unity-3d不是疏漏,而是要把Unity-3d放在這兒談。Unity-3d 是Unity公司開發(fā)的一個(gè)3D游戲開發(fā)工具,近年來的新版本不斷加強(qiáng)對(duì)VR硬件系統(tǒng)的支持。Android程序員轉(zhuǎn)型VR不僅可以實(shí)現(xiàn)自己從小就想讓游戲跳出四角方框的夢(mèng)想,還有Unity-3d所用的C#語言本來就是嚷著“我不是Java語言”的Java語言的學(xué)習(xí)優(yōu)勢(shì)。
轉(zhuǎn)型建議:VR現(xiàn)在正是一片藍(lán)海,只要自學(xué)能力夠強(qiáng),轉(zhuǎn)型VR就像2015年在合肥買房一樣明智。當(dāng)然前提是你能找到愿意出錢的老板或投資人。
大數(shù)據(jù)
移動(dòng)互聯(lián)網(wǎng)時(shí)代是一個(gè)科技發(fā)達(dá),信息流通的時(shí)代,大數(shù)據(jù)就是這個(gè)高科技時(shí)代的產(chǎn)物。馬云曾在演講中提到:未來的時(shí)代將不是IT時(shí)代,而是DT的時(shí)代。DT就是Data Technology(數(shù)據(jù)科技)的縮寫,大數(shù)據(jù)的合理利用與否成了很多行業(yè)成敗的關(guān)鍵。
移動(dòng)互聯(lián)網(wǎng)經(jīng)過這些年的發(fā)展,拿O2O和當(dāng)噱頭已經(jīng)唬不住投資人了。Hadoop也就自然而然受到了青睞,很多每4個(gè)月“生產(chǎn)”一批“兩年經(jīng)驗(yàn)”的“程序員”的培訓(xùn)機(jī)構(gòu)也問我:“Android和iOS現(xiàn)在不吃香了,你能幫我介紹幾個(gè)Hadoop講師嗎?”
轉(zhuǎn)型建議:與轉(zhuǎn)型Java后臺(tái)一樣,Android程序員轉(zhuǎn)型Hadoop也具備語言相通,特性相似的優(yōu)勢(shì)。目前各大培訓(xùn)機(jī)構(gòu)已經(jīng)如蠅逐臭爭(zhēng)相批量生產(chǎn)Hadoop程序員,如果你是因?yàn)橄萑肓怂麄兣嘤?xùn)的Android程序員造成的紅海才轉(zhuǎn)型的話,建議你不要轉(zhuǎn)型,提升自己的競(jìng)爭(zhēng)力才是王道。
前一陣子AlphaGo戰(zhàn)勝了人類世界的圍棋世界冠軍柯潔,轟動(dòng)了全世界。柯潔認(rèn)為AlphaGo是能夠打敗一切的圍棋上帝,這個(gè)說法我不敢茍同,畢竟它沒有和“天”對(duì)弈過,但存在能“勝天半子”的人類——祁同偉。即使AlphaGo不能打敗一切,也沒有人有理由認(rèn)為人工智能和深度學(xué)習(xí)不能成為IT屆的重要發(fā)展方向。
TensorFlow是谷歌基于DistBelief進(jìn)行研發(fā)的第二代人工智能學(xué)習(xí)系統(tǒng),具備極佳的靈活性和可延展性,在和人工智能相關(guān)的領(lǐng)域都有廣泛的應(yīng)用。TensorFlow是開源的,會(huì)大大降低深度學(xué)習(xí)在各個(gè)行業(yè)中的應(yīng)用難度,有遠(yuǎn)大的發(fā)展前景。
轉(zhuǎn)型建議:盡管我堅(jiān)信將來會(huì)T(ensor)F(low)的boys受女性歡迎程度不亞于TFboys,但TensorFlow暫時(shí)很不成熟,這個(gè)“將來”距今多久還是未知數(shù)。
Android系統(tǒng)
Linux作為目前大多數(shù)服務(wù)器的操作系統(tǒng),學(xué)習(xí)Linux的大多數(shù)人的目的是做一個(gè)運(yùn)維。然而把腦洞再開大一點(diǎn)的話,Android程序員精通了Linux之后可以開發(fā)一套屬于自己的Android系統(tǒng)?!禠inux大棚命令百篇》的作者吳鵬沖(筆名:Roc,和我一樣也是水滸迷)和《循序漸進(jìn)Linux》的作者高俊峰都送了一本自己的作品鼓勵(lì)我開發(fā)屬于自己的Android ORM。
這張照片攝于2016年3月30日我拿著《循序漸進(jìn)Linux(第二版)》回到母校的自習(xí)室里攻讀想成為像高老師一樣能定制自己的Android系統(tǒng)的Linux專家的路上(雙關(guān))
轉(zhuǎn)型建議:如果Android程序員準(zhǔn)備跳槽到生產(chǎn)手機(jī)等搭載Android系統(tǒng)的硬件的廠商的話學(xué)習(xí)Linux再合適不過了,否則就只能自己刷機(jī)玩了。
產(chǎn)品經(jīng)理
每個(gè)人都可能變成自己最討厭的人,我也不例外。我從《人人都是產(chǎn)品經(jīng)理》中學(xué)到了產(chǎn)品經(jīng)理的情懷,還從《從點(diǎn)子到產(chǎn)品》中學(xué)到了產(chǎn)品經(jīng)理的技術(shù)。還有幸趕上了今年3月《從點(diǎn)子到產(chǎn)品》的作者劉飛收徒。關(guān)于我轉(zhuǎn)型產(chǎn)品經(jīng)理失敗的情況是一個(gè)發(fā)生在我和劉飛之間的“挖隋煬帝墳?zāi)沟拈_發(fā)商名叫楊勇”的故事:
2016年初,我?guī)?a target="_blank">新人,沒有收劉飛(同名學(xué)弟)為徒
2017年初,劉飛帶新人,不肯收我為徒
轉(zhuǎn)型建議:產(chǎn)品經(jīng)理也是技術(shù)崗位,只不過寫的是給人看的需求文檔。如果一個(gè)Android程序員寫的代碼只能讓電腦看懂而不能讓負(fù)責(zé)維護(hù)的程序員看懂,那么就不要轉(zhuǎn)型產(chǎn)品經(jīng)理。
Android程序員轉(zhuǎn)型機(jī)會(huì)雖然多,但不要因?yàn)榭?a target="_blank">招聘網(wǎng)站上某個(gè)職業(yè)平均工資高就轉(zhuǎn)型,隨波逐流的弄潮兒必然會(huì)在浪潮之巔摔得好慘。培訓(xùn)機(jī)構(gòu)常說“Android不吃香了,移動(dòng)互聯(lián)網(wǎng)的寒冬來了”來吸引人報(bào)名學(xué)習(xí)速成的Hadoop和TensorFlow,其實(shí)遭遇寒冬的不是某個(gè)行業(yè),而是某些沒有打好基礎(chǔ)的人。
-
Android
+關(guān)注
關(guān)注
12文章
3937瀏覽量
127456 -
程序員
+關(guān)注
關(guān)注
4文章
952瀏覽量
29809
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論