又到了回首過去,展望將來的時刻。最近密集的企業裁人消息促使咱們從新思考一個問題:如何規劃咱們的將來。前有「程序員幹到 35 歲就沒人要了」,後有「iOS 開發沒人要了」,真是慘呢。 前端
有人統計後發現,過去每一年年末都有人說是寒冬,只是一個月經說法。程序員
也有強者說,我以爲「寒冬」是弱者的說辭,我仍是很好找工做的呀。面試
我以爲上面兩個邏輯都是欠妥的:編程
我之前用小拳拳錘你胸口,你說疼。我如今用錘子錘你胸口,你說哎呀,疼!!!你之前說疼的時候不怎麼疼,那如今也不疼。後端
至於「寒冬」是由於你不夠強的邏輯有句老話叫作「站着說話不腰疼」。按照這個邏輯只有南北極才能叫冬天了,非得全部人都以爲冷才能叫冬天?微信
我以爲招聘的數據能夠最直觀的體現如今的行情。100 offer 的數據顯示:相比於 2017 年,2018 年 Android 程序員人均面邀數減小 40%,iOS 程序員降幅更高達 57%。網絡
近乎腰斬,都打五折了你說是否是大減價?一個行業處在上升的時候,市場上的技術人員確定是稀缺的。業務須要有人作,不可能等兩年能招到經驗豐富的人才啓動項目。因此初期會有大批的初級從業者涌入,招聘市場的反饋又確定會慢一拍。不斷的有新人涌入,並且後面的新人的數量也在不斷增長(我國培訓機構的效率真的是沒得說)。供需真正到達平衡點的時候,招聘上游培訓班的人並不知道,還在持續產出。所以在某個時期市場上出現了大量的新手過剩。這是當時廣爲流傳的「iOS沒人要了」的原由。 架構
一個崗位一天收到幾百封簡歷的事情你們可能都有耳聞,我說一個我身邊看到的例子,但願能讓你們對當時的狀況有一個更好的理解。當時有一我的朋友的朋友想學習 iOS 開發,因而就加了我微信想問諮詢。他在一個 2.5 線城市的一個醫院藥房上班,以他的專業能力在這個行業作下去也沒有什麼上升空間。他一直想找一個機會換一條賽道。當時移動互聯網也正是風口,他又看到那些招聘機構的廣告,培訓幾個月月薪 8000 以上,不乏上萬。對於一個傳統行業的人來講,這是一個很誘人的機會。他找個人緣由是糾結是去上海上一個線下的培訓班仍是直接上那種線上的培訓班。我說你連程序是什麼都沒概念,花更多的錢去到線下也不會獲得什麼本質的提高。先報個初級班先了解一下什麼是編程再考慮要不要去線下。他只是那批找不到開發工做的人的一個縮影,他們期待有一個機會能夠經過幾個月的努力,月薪上萬改變人生的軌跡。「浮躁」這個詞能夠特別好的表示那個時期的狀態。也說明了程序員真的不是一個徹底沒有門檻的職業。當時確定有大批的新人找不到工做,而後另謀出路,可是對於真正有志於作編程工做的人影響並不大。仍是很容易在這些魚龍混雜的人裏脫穎而出,因此當時雖然一邊是論壇上找不到的工做的人的抱怨,另一邊社區裏卻充滿了「快活」的氣氛。併發
不久以後一大批跟風創業公司倒閉,這些公司的程序員固然也失業了。因而「iOS」開發沒人要了又有了傳播場景。可是依然是大浪淘沙,若是一個程序員沒有放棄對技術的追求,他仍是能夠很快找到下家。可是原本只是由於運氣好找到一個高薪的工做的人,天然是要被市場淘汰的。 死掉的人不會開口說話,咱們在網絡上不怎麼看到我轉行了不幹 iOS 開發了,不是這件事沒發生。是轉行的這羣人沒到網上說,或者他們說了沒進入到咱們的圈子裏。咱們沒看到,可是它在確確實實的發生着。冷靜的算一算就知道每一波都至少淘汰了幾萬人。app
那麼如今是怎樣的狀況呢?18 年上半年的智能手機出貨量同比比去年降低了 10% 左右。移動互聯網能滲透的地方都已經滲透了,移動市場的用戶數已經接近飽和了。更重要的信號是:iPhone 第一次賣不動了。雖然從喬幫主去世以來,你們都說蘋果要完,然而伴隨着一次次的「真香」後蘋果的市值上了萬億。不過隨着 XS 的價格再一次上漲,此次是真的賣不動了。並且在中國的營收降低了一半!!!
過去幾年裏移動互聯網也沒出現新的獨角獸了。原本也許各類「共享」類 app 算一個,可是如今已經明顯都失敗了。互金的 P2P 反而倒閉了一大批。資本都是逐利的,在市場初期能夠接受虧損,由於認爲後期有盈利的可能。如今行業格局已經肯定了,一個公司賺不了錢就是賺不了錢。
那麼最後面臨的狀況是,你被裁人了,雖然你有着不錯的技術能力,可是你也未必能找到一個能與之匹配的下家。之前由於不斷有新公司的出現,與之對應就不斷有新崗位放出來。如今市場上新的公司少了,對應的坑也就少了。你要去的更好的位置早就有人坐着了,除非有人退出了纔會招一我的補上來。
我來量化一下這種感受:如今在拉勾上搜杭州 25 - 50 K 的 iOS 崗位只有 4 頁。扣掉一些只是掛着佔位的企業,其實你真正能夠投的崗位大概就是 30 個崗位。這些崗位再根據你的我的喜愛挑一些公司面試,再到你經過公司的面試,最後你的選擇餘地實際上是頗有限的。你還要考慮到隨着時間的推移,知足技術專家能力要求的人會愈來愈多,可是崗位並不會隨着增多,崗位是根據市場增加走的。
我以爲將來大概就是如今桌面軟件的場景。電腦依然在賣,桌面軟件的開發也有市場。可是你會發現過去幾年裏,用來用去都是那麼幾個軟件。每一年又有多少讓人驚喜的桌面軟件出現呢?只不過移動開發的基本面比桌面更大一點。
算命常常會說若干年後你會有一場大劫,可是你如今能夠花 998 讓他作一個法事,這樣能夠幫你渡過那個劫。我以爲這句話也適用大多數 iOS 開發:數年後你會有一次主動或者被動的離職。前面我說了,由於市場飽和若是繼續這樣下去不作點什麼找到滿意的工做的機率不過高。下面是個人幾個想法。
立足於如今有的專業,再去奪取一些其餘人的底盤把蛋糕作大是一個有效的思路。這就是爲何各端的人發展到穩定的階段都但願有跨平臺的能力的緣由。
JS 是一上手簡單的腳本語言,各個平臺上又有現成的 JS 引擎。上層使用 JS 描述邏輯,各端提供 native 能力給 JS 引擎,是一個至關可行的跨平臺的方案。這也是如今主流的應用層跨平臺技術模型。但在 RN 發佈了多年後,你們意識到了這個模型的根本性弱點:1. JS 做爲一門動態腳本語言,有着天生的性能缺陷。2. JS 引擎在各端有着不一樣的實現,若是底層的 JS 引擎 bug 上層的框架除了避開沒什麼辦法,甚至調試起來都很困難。
因此下一個替代性的框架應該是能把程序編譯成二進制文件的靜態語言,各個端的引擎有着強有力的控制能力。Flutter 採用的正是這個技術架構。看好 Flutter 另外一個緣由是 Flutter 符合谷歌的利益。Flutter 若是要成功,須要谷歌在在各端提供完善的支持,這不是一個小工程。須要數年的不斷投入,若是廠家不能從這個技術中得到利益那麼這個技術必定發展不長久。谷歌須要一個能夠本身控制的開發環境將來可使用在自家操做系統 Fuchsia 上。
作個和蘋果的對比,使用 Swift 能夠開發 iOS 上的應用,也能夠基於 AppKit 開發 macOS 上的應用。UIKit 是基於 iOS 提供的 UI 框架,如今爲了統一 iOS 和桌面的開發體驗,蘋果將來會推出 UIKit for mac。這樣可使用一樣的 UI 框架、語言開發兩個平臺的應用。對於谷歌也有着這樣的可能,基於 Flutter 能夠是移動端的 UI 框架,也能夠是將來 Fuchsia 上的 UI 框架。
Flutter 相比基於 JS 引擎的框架有着更廣闊的前景,能力也更強。我建議你們多關注一下 Flutter 的技術發展,將來說不定是一個頗有用的技能點。
這裏的全棧指的不是什麼什麼都會一點的紙糊全棧,是一專多精的那種。
類比音樂表演裏的兩種角色:
咱們追求的不是一人樂隊,不是一個項目裏我寫點後端,再寫點前端。而是更高的要求,能理解各個技術棧如何鏈接,可以解決系統性的問題。而不是把本身侷限在一個小的細分領域裏。
2018 年,機器學習終於過了概念的頂點。事實是檢驗真理的惟一標準,技術不能只留在紙面上,流行最後仍是要基於可以確實的提升生產力。雖然機器學習不是宣傳般的包治百病的靈丹妙藥,可是不能否認機器學習在一些領域有着極高的利用價值。
如今機器學習的使用場景必定是與某個細分領域結合,由於不存在一個通用的人工智能模型。必定是某個業務的從業人員意識到有一個問題用機器學習能夠解決的更好,而後使用某個機器學習框架解決問題。是一個自底向上的模式,而不會是自上而下式的。所以在作好了自身的業務領域後,能夠多關注一下如何把機器學習的技術結合到現有業務中。
有一些場景機器學習的模型必定會跑在移動設備上,不管是基於 CoreML 仍是 TensorFlowLite。將來機器學習成爲 app 核心的賣點後,對這個技術有所瞭解也必定會爲你加分很多。
以上的建議不是說如今就要作出一個決定,採起怎樣的行動。只是一個拋磚引玉:若是幾年後 iOS 不景氣,你會如何作呢。因此趁如今還有時間,規劃一下本身的將來的方向。