曾經翻譯了一篇文章《現(xiàn)在云戰(zhàn)爭(真的)開始了》 最后埋了個坑渔伯,說要寫寫云時代到來后程序員該何去何從?時間倏一下就過去了兩個月肄程,要是再不及時填坑锣吼,久了可能就忘了。
變遷
如果云時代如我們今天所設想的那般蓝厌,云計算如水電氣一般成為互聯(lián)網的基礎設施玄叠,無所不在般的到來,那這的確又是一個巨大的技術時代變遷拓提,而感覺上一次我所經歷的技術變遷是從傳統(tǒng)的 IT 到互聯(lián)網读恃。
和別的行業(yè)不同,成為程序員不僅需要持續(xù)保持學習代态,更重要的是保持足夠快速的學習和適應能力寺惫。IT 技術的變化發(fā)展似乎就像一列火車,它按自己的時刻表轟隆隆向前蹦疑,你只能按它的節(jié)奏和速度去乘車西雀,并跟隨它向前奔行。
從我個人接觸的第一門編程語言 BASIC 算起歉摧,差不多有二十年了艇肴,我發(fā)現(xiàn)我每一次更換主編程語言似乎都對應著技術變遷腔呜。BASIC 算是我中學階段的編程啟蒙語言,后來到大學后開始學習 C 語言再悼,但大學快畢業(yè)參加實習時核畴,發(fā)現(xiàn)市場上需要更多使用類似 PB、Delphi 這類拖拽式集成開發(fā)工具來開發(fā)企業(yè) C/S 應用帮哈,那時正是 C/S 應用的紅火年代膛檀。
再后來實習完后我沒去工作,考了研究生娘侍。兩年后咖刃,進入銀行做金融交易類系統(tǒng),那時用的一種比較特殊的可以嵌入 SQL 語句的 C 語言憾筏,好像叫 Pro C(假如沒記錯的話)來做后端服務程序嚎杨。不過當時技術的發(fā)展變化是 B/S 結構開始逐步取代 C/S 結構的程序,Java 的 J2EE 有些開始側漏出王霸之氣氧腰,不斷攻城略地枫浙,當時另一家國有大行已經開始逐步用 Java 來取代 C 實現(xiàn)交易系統(tǒng)。那時很多技術人員都在懷疑 Java 的性能是否能支持這么大交易量的系統(tǒng)古拴,如今想必大家都不會有類似的顧慮了箩帚,而去年雙十一支付寶已經登頂全球最高并發(fā)的金融交易系統(tǒng)了。
而從進入研究生開始我就一直自學 Java黄痪,雖然工作頭一年維護和編寫了不少 Pro C 的程序紧帕。一年后,我跳槽了桅打,換到了電信行業(yè)是嗜,做運營支撐系統(tǒng),從此一直使用 Java 作為主編程語言到現(xiàn)在挺尾。在此期間為了做 Web 開發(fā)也用過 Javascript鹅搪,幾年前移動互聯(lián)網火起來時,還看過一下 iOS 的 Objective-C遭铺,但沒多久蘋果推出了 Swift丽柿,覺得還是專注點好,就放棄了魂挂。期間后端語言比較有亮點的是 Google 的 Go 語言航厚,但也就是剛出時了解了一下,一直保持觀望锰蓬。如今卻是想明白了幔睬,雖然程序語言經常推陳出新,代表了一些技術潮流的趨勢芹扭,但并不重要麻顶,也不需要隨時保持跟進赦抖。一定時期內你只需要精通一門主流語言,何謂主流去 TIOBE 看看排名就知道了辅肾,結合你的實際工作環(huán)境需求在一門主流語言上做到精通队萤。
如果云時代到來是否意味著我們編程開發(fā)模式的徹底變化?其實我現(xiàn)在已經不畏懼這個了矫钓,對于一個跟得上學習節(jié)奏要求的程序員來說要尔,任何語言或開發(fā)模式的變化未來你都可以快速的學會。有時候我們感覺技術變遷眼花繚亂新娜,似乎跟不上了赵辕,一些新東西新名詞完全沒聽說過,這太正常了概龄。環(huán)境每天都在變化还惠,雖然我們需要快速的技術變遷適應性,但并不是隨時隨地的適應性私杜。
有一種動物叫蠑螈蚕键,這個物種的歷史可夠悠久的了,是侏羅紀中期演化的兩棲類中的一類衰粹。
這種生物適應能力太強了:把它放在沒有光線的地方锣光,兩天之內它就可能把眼睛退化掉;如果再把它拿到有光線的地方铝耻,兩天之內它就會長出眼睛嫉晶;把它扔到水里它就退化掉肺長出鰓,把它撈出來放到陸地上它就退化掉鰓長出肺田篇。
這種生物雖然擁有強大的環(huán)境適應能力,從侏羅紀到現(xiàn)在有一兩億年了箍铭,但并沒因此向更高階進化泊柬,只是在原地變來變去,最終淪為了人類科學家的玩具诈火。所以程序員不需要像蠑螈這樣極速非凡的適應變化能力兽赁,對環(huán)境的變化反應敏感過度。
面對技術變遷冷守,程序員的有效適應性刀崖,是有意識的選擇與堅持。
價值
云時代拍摇,云計算成為了水電氣般的基礎設施亮钦,必然帶來程序員的進一步分化。今天我們面臨的很多分布式問題充活,都由基礎設施提供的各類服務給解決或屏蔽了蜂莉。就像今天我們開發(fā)程序也利用了很多操作系統(tǒng)提供的能力蜡娶,而操作系統(tǒng)或虛擬機或容器是現(xiàn)在我們依賴的基礎設施。
目前像提供操作系統(tǒng)這類基礎設施的公司并不會多映穗,所以很可能未來留存下來的能提供云基礎設施的公司也不會多窖张。而大部分的基礎技術問題都將由提供云基礎設施的公司來解決,所以今天糾結于做純技術開發(fā)還是業(yè)務開發(fā)的同學蚁滋,在云時代必然面臨明確的選擇分化宿接。
云時代的云公司,它們的核心業(yè)務和面臨的問題就是今天這些純粹的技術問題辕录,除了要能夠解決并封裝成服務睦霎,還需要不斷的降低成本和優(yōu)化效率,而在云上的降低成本和優(yōu)化效率這是真正意義上的技術價值的直接體現(xiàn)踏拜。亞瑪遜能夠連續(xù) 44 次降價來阻止競爭對手進入碎赢,正是技術綜合實力的體現(xiàn),未來必然只有少數(shù)云公司能夠把提供服務的成本控制在自由市場競爭的價格之下速梗,而一心追求技術之巔的程序員選擇進入這樣少數(shù)的云公司將成為必然肮塞。
而另一部分對業(yè)務更感興趣的程序員,更喜歡做業(yè)務開發(fā)姻锁,他們的價值又該如何體現(xiàn)枕赵?云公司封裝了業(yè)務開發(fā)面臨的核心技術難度,面向云開發(fā)已經成為絕大部分初創(chuàng)公司的選擇位隶,那么是否意味著面向云的業(yè)務開發(fā)程序員的價值將會下降拷窜?
前段時間看了一篇文章《IT人的巨流河》,這是一條如何向業(yè)務證明 IT 工作價值的巨流河涧黄。而我現(xiàn)在所能看到的是進入云時代后篮昧,業(yè)務開發(fā)的程序員最大的核心價值恐怕就是需要在這樣一條巨流河上建立橋梁。面向業(yè)務開發(fā)的技術人員需要去看清笋妥、理解業(yè)務的價值鏈條懊昨,并在這個鏈條上嵌入展現(xiàn)技術的價值。
如果說春宣,云時代的云公司們提供的基礎設施和技術服務將是一輛車的發(fā)動機酵颁,那么面向業(yè)務開發(fā)的程序員其實提供的就是變速箱。未來可供選擇的發(fā)動機可能不多月帝,那么車輛差異化能力的變速箱倒是很關鍵了躏惋。(好吧,其實我對汽車原理并不熟嚷辅,不知道這么比喻是否恰當)
無能怎樣變化簿姨,看清并抓緊整個價值鏈條的一環(huán)才能避免徹底的被邊緣化。
...
蒸蒸日上的行業(yè)或公司簸搞,就像一輛剛提的新車款熬,若你不過是在其中干著空濾的活深寥,還沒有點危機感么?