大前端時代下 App 開發者的生存之道
在16年底我寫過一篇談未來的文章 《2016年末閑談iOS開發的未來》 ,當時剛參加完秋季的Qcon,整理了一下寫了出來。到現在17年的春,過去四個月,社區里討論氣氛已經從《從入門到放棄》變成了《從入門到轉行》、《從上架到上吊》。
你們這些人啊,中國有一句古話叫做富貴險中求。不要見風就是雨,這么來皮皮蝦也遭不住。
移動開發市場很穩定
我們先從需求方看起。移動開發市場其實在過去半年里并沒有太大的變化(就像股票一樣,跌20%也算是正常的波動區間)。運營的朋友喜歡用“下半場”、“回歸理性”這樣的詞來形容。
早期這個市場從無到有,趕上中國一批手機換代潮,大家都是野蠻成長。當一個市場在增長時,就算你做的不好,也可能因為市場總量在增加而活下來。又剛好趕上國家大力號召創業潮,給人一種到處是金子的感覺。我和扎克伯克之間只差一個點子,那我在沙縣小吃吃混沌的時候有了個點子,就只差一個程序員了。
但是商業本來就是逐利的,萬惡的資本主義先進性和我們社會主義當然不能比。所以這些沒有商業模式的公司持續一段時間后終將退出舞臺,就像前些年的跑馬燈大功放山寨機一樣,只是快了一些。
在16年里已經沒有一個平臺級的產品出現了。原本從web時代就有產品轉移到app的就不列舉了,比如優酷土豆。舉幾個例子:
- 餓了么在11年拿的A輪
- 滴滴在12年拿的A輪
- 斗魚在14年底拿的A輪
直播是因為剛好剛上中國的網絡升級,帶寬明顯變高,價格也變低。不過說起來秀場這種模式原來在pc也存在已久。
我只是想說明, 移動市場已經不是風口了 。什么樣的市場才能算是風口呢?我覺得就像雷軍說的,豬都能飛。顯然,現在豬飛不起來了。不然你飛個我看看。
但是中國目前大約有7億的智能手機用戶,這個流量已經夠大了。只是增長有限。這些用戶的計算能力依然通過手機實現(有些計算可能在云端,手機只是一個連接設備)。如果你看清了這個事實就能明白現在行業處于健康發展狀態。并不是像某些行業在坍塌式的衰退。
好像都找不到工作啊
有的時候遇到問題真的要先想清楚是你的問題,還是這個世界的問題。
我現在到拉勾上搜一下10-15k的職位,把職位數量列出來:
上海 | 北京 | 杭州 | |
---|---|---|---|
iOS | 104 | 152 | 70 |
Android | 156 | 252 | 89 |
PHP | 228 | 349 | 134 |
前端開發 | 500+ | 500+ | 268 |
Java | 500+ | 500+ | 500+ |
我覺得如果公司發展健康的話,10-15k的這部分程序員應該是中堅力量。有的公司可能業務簡陋,堆幾個5k程序員就夠了,這種職位沒有參考意義。
假設你在上海是個iOS程序員想換一個工作,你有104個職位可以選。只是沒有幾年前有好多個offer可以選,但是我覺得這也是一個可以接受的水準。當然還是沒有 前端和java吃香 。當然如果你在三線城市選擇做移動開發確實是情懷值max,我敬你是條漢子。
那么我如果是一個新手呢?這個行業正常發展,就肯定也會需要對應數量的新人,當然這個比例是多少我無法估計。只是原來可能及格線是60分,現在標準提高到了80分。只是需要過濾掉后面的人。那是不是變難了很多?
如果你只是為了就業你就找最容易就業的崗位啊,比如前端和Java,賺錢還考慮什么姿勢喜好。
如果你就是想做移動開發,寧愿選擇一條稍微難一點的路。移動開發就算入門難度提高了,IT行業的付出收入比還是比其他行業高。你可以看下同個公司同樣待遇的運營或者其他崗位需要什么樣的要求。你也可以參考下其他系的同學,比如新聞、外語要獲得一個類似的工作需要付出多少努力。講真他們畢業時也就是有個工作就滿足了,哪里敢奢求什么皮皮蝦。之前培訓三個月就出來月薪就上萬也這就是了趕上了多少年一遇的黃金時代,哪能每天都是黃金時代。就知足吧,程序員這個職業幾乎不看出身,你可以是大專,可以是沒考上大學,可以是三流本科,只要花足夠多的時間去提高自己。你要是真像那些考研的人那么努力依然不用擔心就業的問題。
正題:移動開發的大前端時代
現在我們來談下app開發的趨勢。
在過去的半年多了,最大的變化就是js to native(rn & weex)開始逐漸變的強勢。印象中rn是15年10月左右的開放的安卓sdk。為什么要強調安卓的sdk呢?因為本來這個技術的主要優勢就是提高開發效率,原來兩個端的代碼只需要寫一份。熱更新這件事對于大多數團隊而言只是錦上添花,并不是選擇這個技術的主要原因。
在經過一些團隊的實踐后,無論是RN和Weex在實際項目中的使用已經沒有太大的風險。雖然還是有諸多不盡如人意的地方,但是現在看那些用了這些技術的公司,比如攜程、去哪、QQ、阿里似乎都沒有回頭的意思。
摘錄一些一線公司的招聘上面寫的要求或加分項:
- 有React Native或者Weex的實戰經驗
- 掌握一些前端開發技術,HTML/JavaScript/CSS等
- 有ReactNative開發經驗或者興趣
- 負責iOS APP原生及跨平臺相關的關鍵模塊定義和開發
- 有跨平臺開發經驗和工具開發經驗者優先
- 了解HTML5,JS相關技術者優先
雖然現在還只是一部分公司在嘗試使用這個技術,然而我認為他們開始在主營業務大部分應用這個技術已經說明了這個技術體系的成熟,只是早期在最佳實踐或者一些工具鏈會有所欠缺,但是這不會影響這個趨勢,只是快慢而已。
有句話叫語言決定世界觀,我把這個階段稱為大前端時代。
因為業務代碼主要由js構成,而這部分一開始的動力來自傳統前端。但是從大一點的角度看,離開了服務器和桌面都可以稱為前端也沒有不妥。不過看到有的公司稱為“大無線”,這個叫法也好理解,不過猜測可能直接帶“前端”會讓原來一些native的開發者不適應所以這樣稱呼吧。
接著我們來思考一個問題:假設js to native是半壁江山,那么代碼是前端寫還是app程序員寫?
這里要意識到一個點就是:JS Native不能完成native所有的功能。也許是性能的原因,也可以是其他一些客觀的原因。比如逐幀動畫,在RN體系下肯定就是要native,不然掉幀掉成狗。再比如一些第三方的sdk,可能人家就是寫好的native給你,你需要native調用。
在大前端的時代下,一個合格的開發者顯然是 js + iOS / Android 。可以是一個熟練的前端學習一點native,或者是native程序員會js。如果考慮到現在公司狀況進行轉型,一個合理的路線是app開發者開始學習以js為主要開發語言的開發狀態。
如果此時公司業務沒有增長保持現狀,因為這套技術提升了開發效率,肯定要進行“人員優化”,淘汰掉不能適應新體系的程序員。其實就算按照勞動法的規定,賠償N+1,假設你做了2年,也就是賠你3個月的工資。如果公司想省這筆錢,就會故意把你調到不相干的部門,比如你是iOS,就讓你去后端寫php,讓你難受自己辭職或者以你后端工作績效不合格逼走你。當然了。以我國管理者的智慧,想逼程序員走的方法肯定是很多。
當然比這更值得思考的是:從這里離開以后你又要從哪里開始呢?不過是更舉步維艱。聰明的做法是順著時代的浪潮。而不是固執的被拍死在沙灘上。
轉…轉…轉行?
我有一句話不知當講不當講。。。
沒有金剛鉆別攬瓷器活。
我有一個朋友,有次一起吃飯我問他最近在干嘛。他說在看python,我說怎么想到看python了。他說看了python打算轉行去做大數據或者機器學習,感覺這個比較來錢。其實很多盲目涌入的開發者就是這樣的素質。我只想告訴你們,如果21天就能搞大數據了,那你怎么不去報個一周的速成培訓班?原來培訓iOS還要幾個月呢。
多年前有一個暢銷書,中文翻作《大數據時代》,英文名叫《big data》。
這本書寫于2012年。其實摩爾定律已經算是失效了,回想一下桌面端的CPU的計算能力與五年前的2012年相比并沒有太大的進步。作為開發人員請想一下,從大數據這個概念被社會理解,到我們開發中真正開始大規模的應用在身邊的企業中(Map/Reduce 在 06 年被引入hadoop項目),中間過了多久?即便現在扣掉體量巨大的公司一般規模的公司里又需要幾個大數據工程師?有iOS和安卓想憑幾個視頻幾個21天上手轉行拿高薪的多嗎?
現在開始熱的VR,大家都覺得是下一代計算平臺,問題是,這個你等的到嗎?你又怎么為一個沒有統一技術標準和框架的平臺做準備?如果你有這個能力,你根本就不用擔心就業的問題。大多數人不具備這樣的能力。
當然轉行也可以是一個務實的選擇,如果你愿意的話:離統一世界只差500年的JS,最好的語言php,還有:
來自:http://ios.jobbole.com/93021/