
在16年底我寫過(guò)一篇談未來(lái)的文章《2016年末閑談iOS開發(fā)的未來(lái)》,當(dāng)時(shí)剛參加完秋季的Qcon,整理了一下寫了出來(lái)。到現(xiàn)在17年的春,過(guò)去四個(gè)月,社區(qū)里討論氣氛已經(jīng)從《從入門到放棄》變成了《從入門到轉(zhuǎn)行》、《從上架到上吊》。

你們這些人啊,中國(guó)有一句古話叫做富貴險(xiǎn)中求。不要見風(fēng)就是雨,這么來(lái)皮皮蝦也遭不住。

移動(dòng)開發(fā)市場(chǎng)很穩(wěn)定
我們先從需求方看起。移動(dòng)開發(fā)市場(chǎng)其實(shí)在過(guò)去半年里并沒(méi)有太大的變化(就像股票一樣,跌20%也算是正常的波動(dòng)區(qū)間)。運(yùn)營(yíng)的朋友喜歡用“下半場(chǎng)”、“回歸理性”這樣的詞來(lái)形容。
早期這個(gè)市場(chǎng)從無(wú)到有,趕上中國(guó)一批手機(jī)換代潮,大家都是野蠻成長(zhǎng)。當(dāng)一個(gè)市場(chǎng)在增長(zhǎng)時(shí),就算你做的不好,也可能因?yàn)槭袌?chǎng)總量在增加而活下來(lái)。又剛好趕上國(guó)家大力號(hào)召創(chuàng)業(yè)潮,給人一種到處是金子的感覺(jué)。我和扎克伯克之間只差一個(gè)點(diǎn)子,那我在沙縣小吃吃混沌的時(shí)候有了個(gè)點(diǎn)子,就只差一個(gè)程序員了。
但是商業(yè)本來(lái)就是逐利的,萬(wàn)惡的資本主義先進(jìn)性和我們社會(huì)主義當(dāng)然不能比。所以這些沒(méi)有商業(yè)模式的公司持續(xù)一段時(shí)間后終將退出舞臺(tái),就像前些年的跑馬燈大功放山寨機(jī)一樣,只是快了一些。
在16年里已經(jīng)沒(méi)有一個(gè)平臺(tái)級(jí)的產(chǎn)品出現(xiàn)了。原本從web時(shí)代就有產(chǎn)品轉(zhuǎn)移到app的就不列舉了,比如優(yōu)酷土豆。舉幾個(gè)例子:
- 餓了么在11年拿的A輪
- 滴滴在12年拿的A輪
- 斗魚在14年底拿的A輪
直播是因?yàn)閯偤脛偵现袊?guó)的網(wǎng)絡(luò)升級(jí),帶寬明顯變高,價(jià)格也變低。不過(guò)說(shuō)起來(lái)秀場(chǎng)這種模式原來(lái)在pc也存在已久。
我只是想說(shuō)明,移動(dòng)市場(chǎng)已經(jīng)不是風(fēng)口了。什么樣的市場(chǎng)才能算是風(fēng)口呢?我覺(jué)得就像雷軍說(shuō)的,豬都能飛。顯然,現(xiàn)在豬飛不起來(lái)了。不然你飛個(gè)我看看。
但是中國(guó)目前大約有7億的智能手機(jī)用戶,這個(gè)流量已經(jīng)夠大了。只是增長(zhǎng)有限。這些用戶的計(jì)算能力依然通過(guò)手機(jī)實(shí)現(xiàn)(有些計(jì)算可能在云端,手機(jī)只是一個(gè)連接設(shè)備)。如果你看清了這個(gè)事實(shí)就能明白現(xiàn)在行業(yè)處于健康發(fā)展?fàn)顟B(tài)。并不是像某些行業(yè)在坍塌式的衰退。
好像都找不到工作啊
有的時(shí)候遇到問(wèn)題真的要先想清楚是你的問(wèn)題,還是這個(gè)世界的問(wèn)題。
我現(xiàn)在到拉勾上搜一下10-15k的職位,把職位數(shù)量列出來(lái):
| 上海 | 北京 | 杭州 | |
|---|---|---|---|
| iOS | 104 | 152 | 70 |
| Android | 156 | 252 | 89 |
| PHP | 228 | 349 | 134 |
| 前端開發(fā) | 500+ | 500+ | 268 |
| Java | 500+ | 500+ | 500+ |
我覺(jué)得如果公司發(fā)展健康的話,10-15k的這部分程序員應(yīng)該是中堅(jiān)力量。有的公司可能業(yè)務(wù)簡(jiǎn)陋,堆幾個(gè)5k程序員就夠了,這種職位沒(méi)有參考意義。
假設(shè)你在上海是個(gè)iOS程序員想換一個(gè)工作,你有104個(gè)職位可以選。只是沒(méi)有幾年前有好多個(gè)offer可以選,但是我覺(jué)得這也是一個(gè)可以接受的水準(zhǔn)。當(dāng)然還是沒(méi)有前端和java吃香。當(dāng)然如果你在三線城市選擇做移動(dòng)開發(fā)確實(shí)是情懷值max,我敬你是條漢子。
那么我如果是一個(gè)新手呢?這個(gè)行業(yè)正常發(fā)展,就肯定也會(huì)需要對(duì)應(yīng)數(shù)量的新人,當(dāng)然這個(gè)比例是多少我無(wú)法估計(jì)。只是原來(lái)可能及格線是60分,現(xiàn)在標(biāo)準(zhǔn)提高到了80分。只是需要過(guò)濾掉后面的人。那是不是變難了很多?
如果你只是為了就業(yè)你就找最容易就業(yè)的崗位啊,比如前端和Java,賺錢還考慮什么姿勢(shì)喜好。
如果你就是想做移動(dòng)開發(fā),寧愿選擇一條稍微難一點(diǎn)的路。移動(dòng)開發(fā)就算入門難度提高了,IT行業(yè)的付出收入比還是比其他行業(yè)高。你可以看下同個(gè)公司同樣待遇的運(yùn)營(yíng)或者其他崗位需要什么樣的要求。你也可以參考下其他系的同學(xué),比如新聞、外語(yǔ)要獲得一個(gè)類似的工作需要付出多少努力。講真他們畢業(yè)時(shí)也就是有個(gè)工作就滿足了,哪里敢奢求什么皮皮蝦。之前培訓(xùn)三個(gè)月就出來(lái)月薪就上萬(wàn)也這就是了趕上了多少年一遇的黃金時(shí)代,哪能每天都是黃金時(shí)代。就知足吧,程序員這個(gè)職業(yè)幾乎不看出身,你可以是大專,可以是沒(méi)考上大學(xué),可以是三流本科,只要花足夠多的時(shí)間去提高自己。你要是真像那些考研的人那么努力依然不用擔(dān)心就業(yè)的問(wèn)題。
正題:移動(dòng)開發(fā)的大前端時(shí)代
現(xiàn)在我們來(lái)談下app開發(fā)的趨勢(shì)。
在過(guò)去的半年多了,最大的變化就是js to native(rn & weex)開始逐漸變的強(qiáng)勢(shì)。印象中rn是15年10月左右的開放的安卓sdk。為什么要強(qiáng)調(diào)安卓的sdk呢?因?yàn)楸緛?lái)這個(gè)技術(shù)的主要優(yōu)勢(shì)就是提高開發(fā)效率,原來(lái)兩個(gè)端的代碼只需要寫一份。熱更新這件事對(duì)于大多數(shù)團(tuán)隊(duì)而言只是錦上添花,并不是選擇這個(gè)技術(shù)的主要原因。
在經(jīng)過(guò)一些團(tuán)隊(duì)的實(shí)踐后,無(wú)論是RN和Weex在實(shí)際項(xiàng)目中的使用已經(jīng)沒(méi)有太大的風(fēng)險(xiǎn)。雖然還是有諸多不盡如人意的地方,但是現(xiàn)在看那些用了這些技術(shù)的公司,比如攜程、去哪、QQ、阿里似乎都沒(méi)有回頭的意思。
摘錄一些一線公司的招聘上面寫的要求或加分項(xiàng):
- 有React Native或者Weex的實(shí)戰(zhàn)經(jīng)驗(yàn)
- 掌握一些前端開發(fā)技術(shù),HTML/JavaScript/CSS等
- 有ReactNative開發(fā)經(jīng)驗(yàn)或者興趣
- 負(fù)責(zé)iOS APP原生及跨平臺(tái)相關(guān)的關(guān)鍵模塊定義和開發(fā)
- 有跨平臺(tái)開發(fā)經(jīng)驗(yàn)和工具開發(fā)經(jīng)驗(yàn)者優(yōu)先
- 了解HTML5,JS相關(guān)技術(shù)者優(yōu)先
雖然現(xiàn)在還只是一部分公司在嘗試使用這個(gè)技術(shù),然而我認(rèn)為他們開始在主營(yíng)業(yè)務(wù)大部分應(yīng)用這個(gè)技術(shù)已經(jīng)說(shuō)明了這個(gè)技術(shù)體系的成熟,只是早期在最佳實(shí)踐或者一些工具鏈會(huì)有所欠缺,但是這不會(huì)影響這個(gè)趨勢(shì),只是快慢而已。
有句話叫語(yǔ)言決定世界觀,我把這個(gè)階段稱為大前端時(shí)代。
因?yàn)闃I(yè)務(wù)代碼主要由js構(gòu)成,而這部分一開始的動(dòng)力來(lái)自傳統(tǒng)前端。但是從大一點(diǎn)的角度看,離開了服務(wù)器和桌面都可以稱為前端也沒(méi)有不妥。不過(guò)看到有的公司稱為“大無(wú)線”,這個(gè)叫法也好理解,不過(guò)猜測(cè)可能直接帶“前端”會(huì)讓原來(lái)一些native的開發(fā)者不適應(yīng)所以這樣稱呼吧。
接著我們來(lái)思考一個(gè)問(wèn)題:假設(shè)js to native是半壁江山,那么代碼是前端寫還是app程序員寫?
這里要意識(shí)到一個(gè)點(diǎn)就是:JS Native不能完成native所有的功能。也許是性能的原因,也可以是其他一些客觀的原因。比如逐幀動(dòng)畫,在RN體系下肯定就是要native,不然掉幀掉成狗。再比如一些第三方的sdk,可能人家就是寫好的native給你,你需要native調(diào)用。
在大前端的時(shí)代下,一個(gè)合格的開發(fā)者顯然是 js + iOS / Android ??梢允且粋€(gè)熟練的前端學(xué)習(xí)一點(diǎn)native,或者是native程序員會(huì)js。如果考慮到現(xiàn)在公司狀況進(jìn)行轉(zhuǎn)型,一個(gè)合理的路線是app開發(fā)者開始學(xué)習(xí)以js為主要開發(fā)語(yǔ)言的開發(fā)狀態(tài)。
如果此時(shí)公司業(yè)務(wù)沒(méi)有增長(zhǎng)保持現(xiàn)狀,因?yàn)檫@套技術(shù)提升了開發(fā)效率,肯定要進(jìn)行“人員優(yōu)化”,淘汰掉不能適應(yīng)新體系的程序員。其實(shí)就算按照勞動(dòng)法的規(guī)定,賠償N+1,假設(shè)你做了2年,也就是賠你3個(gè)月的工資。如果公司想省這筆錢,就會(huì)故意把你調(diào)到不相干的部門,比如你是iOS,就讓你去后端寫php,讓你難受自己辭職或者以你后端工作績(jī)效不合格逼走你。當(dāng)然了。以我國(guó)管理者的智慧,想逼程序員走的方法肯定是很多。
當(dāng)然比這更值得思考的是:從這里離開以后你又要從哪里開始呢?不過(guò)是更舉步維艱。聰明的做法是順著時(shí)代的浪潮。而不是固執(zhí)的被拍死在沙灘上。
轉(zhuǎn)...轉(zhuǎn)...轉(zhuǎn)行?
我有一句話不知當(dāng)講不當(dāng)講。。。

沒(méi)有金剛鉆別攬瓷器活。
我有一個(gè)朋友,有次一起吃飯我問(wèn)他最近在干嘛。他說(shuō)在看python,我說(shuō)怎么想到看python了。他說(shuō)看了python打算轉(zhuǎn)行去做大數(shù)據(jù)或者機(jī)器學(xué)習(xí),感覺(jué)這個(gè)比較來(lái)錢。其實(shí)很多盲目涌入的開發(fā)者就是這樣的素質(zhì)。我只想告訴你們,如果21天就能搞大數(shù)據(jù)了,那你怎么不去報(bào)個(gè)一周的速成培訓(xùn)班?原來(lái)培訓(xùn)iOS還要幾個(gè)月呢。
多年前有一個(gè)暢銷書,中文翻作《大數(shù)據(jù)時(shí)代》,英文名叫《big data》。

這本書寫于2012年。其實(shí)摩爾定律已經(jīng)算是失效了,回想一下桌面端的CPU的計(jì)算能力與五年前的2012年相比并沒(méi)有太大的進(jìn)步。作為開發(fā)人員請(qǐng)想一下,從大數(shù)據(jù)這個(gè)概念被社會(huì)理解,到我們開發(fā)中真正開始大規(guī)模的應(yīng)用在身邊的企業(yè)中(Map/Reduce 在 06 年被引入hadoop項(xiàng)目),中間過(guò)了多久?即便現(xiàn)在扣掉體量巨大的公司一般規(guī)模的公司里又需要幾個(gè)大數(shù)據(jù)工程師?有iOS和安卓想憑幾個(gè)視頻幾個(gè)21天上手轉(zhuǎn)行拿高薪的多嗎?
現(xiàn)在開始熱的VR,大家都覺(jué)得是下一代計(jì)算平臺(tái),問(wèn)題是,這個(gè)你等的到嗎?你又怎么為一個(gè)沒(méi)有統(tǒng)一技術(shù)標(biāo)準(zhǔn)和框架的平臺(tái)做準(zhǔn)備?如果你有這個(gè)能力,你根本就不用擔(dān)心就業(yè)的問(wèn)題。大多數(shù)人不具備這樣的能力。
當(dāng)然轉(zhuǎn)行也可以是一個(gè)務(wù)實(shí)的選擇,如果你愿意的話:離統(tǒng)一世界只差500年的JS,最好的語(yǔ)言php,還有:

歡迎關(guān)注我的微博:@沒(méi)故事的卓同學(xué)