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