曾經翻譯了一篇文章《如今雲戰爭(真的)開始了》 最後埋了個坑,說要寫寫雲時代到來後程序員該何去何從?時間倏一下就過去了兩個月,要是再不及時填坑,久了可能就忘了。程序員
若是雲時代如咱們今天所設想的那般,雲計算如水電氣通常成爲互聯網的基礎設施,無所不在般的到來,那這的確又是一個巨大的技術時代變遷,而感受上一次我所經歷的技術變遷是從傳統的 IT 到互聯網。編程
和別的行業不一樣,成爲程序員不只須要持續保持學習,更重要的是保持足夠快速的學習和適應能力。IT 技術的變化發展彷佛就像一列火車,它按本身的時刻表轟隆隆向前,你只能按它的節奏和速度去乘車,並跟隨它向前奔行。後端
從我我的接觸的第一門編程語言 BASIC 算起,差很少有二十年了,我發現我每一次更換主編程語言彷佛都對應着技術變遷。BASIC 算是我中學階段的編程啓蒙語言,後來到大學後開始學習 C 語言,但大學快畢業參加實習時,發現市場上須要更多使用相似 PB、Delphi 這類拖拽式集成開發工具來開發企業 C/S 應用,那時正是 C/S 應用的紅火年代。微信
再後來實習完後我沒去工做,考了研究生。兩年後,進入銀行作金融交易類系統,那時用的一種比較特殊的能夠嵌入 SQL 語句的 C 語言,好像叫 Pro C(假如沒記錯的話)來作後端服務程序。不過當時技術的發展變化是 B/S 結構開始逐步取代 C/S 結構的程序,Java 的 J2EE 有些開始側漏出王霸之氣,不斷攻城略地,當時另外一家國有大行已經開始逐步用 Java 來取代 C 實現交易系統。那時不少技術人員都在懷疑 Java 的性能是否能支持這麼大交易量的系統,現在想必你們都不會有相似的顧慮了,而去年雙十一支付寶已經登頂全球最高併發的金融交易系統了。併發
而從進入研究生開始我就一直自學 Java,雖然工做頭一年維護和編寫了很多 Pro C 的程序。一年後,我跳槽了,換到了電信行業,作運營支撐系統,今後一直使用 Java 做爲主編程語言到如今。在此期間爲了作 Web 開發也用過 Javascript,幾年前移動互聯網火起來時,還看過一下 iOS 的 Objective-C,但沒多久蘋果推出了 Swift,以爲仍是專一點好,就放棄了。期間後端語言比較有亮點的是 Google 的 Go 語言,但也就是剛出時瞭解了一下,一直保持觀望。現在倒是想明白了,雖然程序語言常常推陳出新,表明了一些技術潮流的趨勢,但並不重要,也不須要隨時保持跟進。必定時期內你只須要精通一門主流語言,何謂主流去 TIOBE 看看排名就知道了,結合你的實際工做環境需求在一門主流語言上作到精通。編程語言
若是雲時代到來是否意味着咱們編程開發模式的完全變化?其實我如今已經不畏懼這個了,對於一個跟得上學習節奏要求的程序員來講,任何語言或開發模式的變化將來你均可以快速的學會。有時候咱們感受技術變遷眼花繚亂,彷佛跟不上了,一些新東西新名詞徹底沒據說過,這太正常了。環境天天都在變化,雖然咱們須要快速的技術變遷適應性,但並非隨時隨地的適應性。分佈式
有一種動物叫蠑螈,這個物種的歷史可夠悠久的了,是侏羅紀中期演化的兩棲類中的一類。高併發
這種生物適應能力太強了:把它放在沒有光線的地方,兩天以內它就可能把眼睛退化掉;若是再把它拿到有光線的地方,兩天以內它就會長出眼睛;把它扔到水裏它就退化掉肺長出鰓,把它撈出來放到陸地上它就退化掉鰓長出肺。工具
這種生物雖然擁有強大的環境適應能力,從侏羅紀到如今有一兩億年了,但並沒所以向更高階進化,只是在原地變來變去,最終淪爲了人類科學家的玩具。因此程序員不須要像蠑螈這樣極速非凡的適應變化能力,對環境的變化反應敏感過分。性能
面對技術變遷,程序員的有效適應性,是有意識的選擇與堅持。
雲時代,雲計算成爲了水電氣般的基礎設施,必然帶來程序員的進一步分化。今天咱們面臨的不少分佈式問題,都由基礎設施提供的各種服務給解決或屏蔽了。就像今天咱們開發程序也利用了不少操做系統提供的能力,而操做系統或虛擬機或容器是如今咱們依賴的基礎設施。
目前像提供操做系統這類基礎設施的公司並不會多,因此極可能將來留存下來的能提供雲基礎設施的公司也不會多。而大部分的基礎技術問題都將由提供雲基礎設施的公司來解決,因此今天糾結於作純技術開發仍是業務開發的同窗,在雲時代必然面臨明確的選擇分化。
雲時代的雲公司,它們的核心業務和麪臨的問題就是今天這些純粹的技術問題,除了要可以解決並封裝成服務,還須要不斷的下降成本和優化效率,而在雲上的下降成本和優化效率這是真正意義上的技術價值的直接體現。亞瑪遜可以連續 44 次降價來阻止競爭對手進入,正是技術綜合實力的體現,將來必然只有少數雲公司可以把提供服務的成本控制在自由市場競爭的價格之下,而一心追求技術之巔的程序員選擇進入這樣少數的雲公司將成爲必然。
而另外一部分對業務更感興趣的程序員,更喜歡作業務開發,他們的價值又該如何體現?雲公司封裝了業務開發面臨的核心技術難度,面向雲開發已經成爲絕大部分初創公司的選擇,那麼是否意味着面向雲的業務開發程序員的價值將會降低?
前段時間看了一篇文章《IT人的巨流河》,這是一條如何向業務證實 IT 工做價值的巨流河。而我如今所能看到的是進入雲時代後,業務開發的程序員最大的核心價值恐怕就是須要在這樣一條巨流河上創建橋樑。面向業務開發的技術人員須要去看清、理解業務的價值鏈條,並在這個鏈條上嵌入展示技術的價值。
若是說,雲時代的雲公司們提供的基礎設施和技術服務將是一輛車的發動機,那麼面向業務開發的程序員其實提供的就是變速箱。將來可供選擇的發動機可能很少,那麼車輛差別化能力的變速箱卻是很關鍵了。(好吧,其實我對汽車原理並不熟,不知道這麼比喻是否恰當)
無能怎樣變化,看清並抓緊整個價值鏈條的一環才能避免完全的被邊緣化。
...
蒸蒸日上的行業或公司,就像一輛剛提的新車,若你不過是在其中幹着空濾的活,尚未點危機感麼?
寫點文字,畫點畫兒。
微信公衆號「瞬息之間」,碰見了不妨就關注看看。