為什么你招聘不到程序員,以及軟件如何定義現實世界

jopen 8年前發布 | 17K 次閱讀 程序員

為什么你招聘不到程序員,以及軟件如何定義現實世界

文/霍炬

2015 年,互聯網創業從火熱到“寒冷“,但有一件事全年都沒有變化,就是大家都覺得招聘不到程序員。我沒有確切的數字知道 2015 年這一年程序員的薪資增長的比例,但是我確切的知道,在 2015 年,一個有3~4 年工作經驗的年輕程序員,在北京和上海能拿到的薪水已經接近 2010 年盛大創新院給我的薪水了。要知道,2010 年盛大為了創建創新院,給出的是業界頂級的薪水,而且那時候我已經有 8 年的工作經驗了。這不過是 5 年前的事,今天,3 年工作經驗的程序員薪水已經到了這個水平。在中國,大概唯一增長率可以比的上北上廣房產的,就是程序員的薪水了。

很多人人根本拒絕相信這件事,不僅僅這個行業之外的人,甚至連這個行業之內的人也覺得非常不可思議。但所有人不得不面對的一個事實是:當你需要程序員的時候,會發現根本招聘不到程序員。那個“所有都準備好了,只差一個程序員就可以開工了” 完全不是笑話,我知道無數個項目,都是真的就差一個程序員了。

但是,他們就是招聘不到這個急需程序員。

還有很多人的看法是,過幾年程序員就好招聘了,現在只是泡沫時期罷了。甚至還有人認為,過幾年我們就不需要程序員了,因為有更多的工具可以幫助生成軟件。不好意思,這兩種想法都不是 2015 年才有的,從 1995 年,甚至 1985 年,這兩種看法就存在了。30 年來,泡沫起了一輪又一輪,破了一輪又一輪,自動化工具也確實出了一個又一個,更多的平臺也被建立起來,確實某種程度人,一些人可以“不需要寫程序”,也能 *開始* 進行互聯網創業。但是,幾十年來程序員的需求始終是上升的,符合需求,能寫出可用代碼的程序員從來沒好招聘過,這個職業一直處于一種古怪到近乎瘋狂的供不應求階段。回頭來看,就算是 2008 年金融危機的大崩潰時刻,全世界范圍內,程序員好招聘也只持續了半年。美國 H1b 簽證只有 2008 年沒用滿,之后每一年都要抽簽才能獲得,無數中國和印度的程序員急盼簽證。

“不需要寫程序就可以進行互聯網創業”,這個倒是某種意義上是實現了。不過并不是有自動生成軟件的工具,而是各種應用平臺發展起來了。比如,一個專心內容創業的人,用微信公眾帳號就可以開始,一行程序都不用寫。但是不要忘記,這些平臺背后,仍然是無數程序員的工作成果。就算是用微信公眾平臺開始了創業,如果規模發展的大一點,終究還是要寫一些程序的,要么是自己的 App/社區,要么是 HTML5 做的各種活動,或者是用微信 SDK 接口做的各種自動化功能。總之,早晚你還是要寫點程序的。如果換個角度看,像微信公眾平臺這類應用,只不過是把過去沒有寫程序能力的人拉了上來可以有個開始,等其中的強者被篩選出來之后,他們又回到要雇程序員的境地。這么一看,這些平臺不僅沒有減少程序員的職位,反而擴大了需求。如果沒有公眾平臺,可能很多創業者壓根到不了需要程序員支持這一天,也賺不到錢去養活一個程序員,現在,他們中的成功者終于可以活到這一天,加入競聘程序員的行列了…

這個世界對程序員的需求幾十年沒降低,按照我的觀點,甚至未來幾十年也不會降低,薪酬也只會持續上升。各種社交平臺上,也會見到各種惡毒嘲笑諷刺程序員的人和段子(基本來自傳統行業,他們大概覺得自己一輩子也不需要好好的和程序員打交道吧),這些人顯然是不相信我這個看法的。無論相信不相信,眼前的情況就是這樣的。為什么程序員會這么難招聘,背后的原因是什么?要回答這個問題,我一般會推薦對方看一篇文章,叫做《軟件正在吞噬整個世界》,這是 2011 年美國著名風投 Andreessen Horowitz 創始人 Marc Andreessen 寫的文章。今天看來,這篇文章的意義顯然被低估了,Andreessen 寫過很多文章,但這無疑是最重要的一篇,也是對未來的指向最清晰的一篇。但別說 2011 年,就算是今天,也很少有人真正理解它的重要性。這篇文章并不長,看完我這篇,推薦找來再讀一遍,相信你會有新感受。

我一直非常推崇這篇文章的看法和遠見,但是,我覺得他用的“吞噬”(Eating)這個詞并不好,它沒有能精確體現真實情況,我更愿意使用的詞是“定義”(defining)。“軟件定義現實世界”,這算是我發明的一個新詞。我這篇文章要寫的,就是關于軟件是何如定義現實世界的。

今年 3 月份的時候,我在杭州和一個朋友聊天,我們叫她夕總,是做傳統行業的。她很驚訝程序員為什么這么難招聘。我給她大致描述了越來越多的行業開始使用軟件來替代傳統人力勞動的狀況。她恍然大悟的說:“啊,我知道了,我家小區過去是個老大爺負責收停車費,現在變成了完全自動刷卡進入。所以,很多個老大爺被軟件替代了,軟件又需要程序員來開發和維護?” 這個例子找的非常準確,從一個具體的案例來看,就是這樣的。她敏銳的抓住了現實世界最基層的情況。我也繼續用這個例子做為背景說下去。

圖片:以前是這樣的

為什么你招聘不到程序員,以及軟件如何定義現實世界

圖片:以后都是這樣的了…

為什么你招聘不到程序員,以及軟件如何定義現實世界

當我們用一套停車場管理系統,替代了停車場管理員(那個老大爺)之后,整件事情改變了什么?它并不僅僅是節約了一個老大爺的人力成本這么簡單,僅僅節約人力成本的價值并不大,因為基層體力勞動的人力成本是相當有限的,節約 20 個老大爺的工資,也未必能比得上一個程序員的工資支出。

比節約一個人的人力成本更重要的是,我們用軟件來規范了停車場的行為,即所謂“定義”。在使用軟件之前,停車場管理員是有很大權利的,很多人都知道,給停車場管理員塞一包煙,他可能就會少收你 20 塊錢停車費。甚至很多停車場管理員會直接把停車費塞到自己口袋里面,如果你沒要停車發票的話。停車場的運營是沒辦法監督這種行為,要監督,就需要付出巨大的人力,甚至冒很大風險。有了軟件系統之后,一切都不一樣了。不再需要去監督這種往自己口袋里面塞錢的行為了,只要軟件沒有能被他們找到的漏洞,一切都變成了非常規范的行為。開車來的車主進入停車場的時候取卡,系統拍下車牌照,出停車場的時候自動計時收費,付錢之后停車場出口才打開,車才能離開。這個過程可以完全沒有人力參與,就算是保留那個停車場老大爺的職位來做應急工作,他的行為也是嚴格被軟件規范的。不交錢,停車場出口不打開,車就沒法離開停車場,這是一條被明確定義了的基本規則,除非暴力去破壞停車場設施,否則,一切都是被軟件管理的,人改變不了什么。從此,整個過程中不會再有錢的損耗,停車場運營方會獲得更多收益。這些收益中的一部分,就變成了軟件公司的利潤,軟件公司利潤的一部分,變成了程序員工資。

這就是軟件企業為何有巨大盈利,程序員工資為什么這么高的原因。僅從這個例子看,軟件沒有創造新的價值,但是在若干傳統行業中,軟件奪回了一部分人本來不應該拿到的錢,把這些錢重新變成了利潤,程序員分享了這部分利潤。在這個停車場的例子中,按道理說,停車場管理員的收入只應該是一份工資,不包括偷偷塞到口袋里面的停車費,但是如果沒有軟件,這種行為是沒法阻止的,一定會有很大一筆錢流到不應該獲得它們的人手里。另外一方面看,在車主這邊,他們的行為也被定義了。過去很多人是愿意接受 10 塊錢買一包煙,省 20 塊錢停車費這種設定的。但在軟件管理之下,這種利益交換沒機會發生了。在這個停車場的案例中,參與業務的兩方行為都被軟件重新規范和定義了。

整個過程可以這樣看:在軟件企業的幫助下,現實世界的資金流向被重新分配了。這就是“軟件定義現實世界”。軟件重新定義了社會規則,定義了人的行為。當然,目前軟件還只是體現了業務人員的意愿,在這個階段,更確切的說法是:軟件幫助人們重新定義社會規則。

這只是個開始。我們站的高一點看這個已經被軟件接管了的停車場。你會發現,關于它的細節都被隱藏了,你只知道它存在著接口(Interface)。所謂接口,就是對資源的一種抽象,我們知道它提供什么,比如在這里例子中,可能是停車場有多少空車位,已經停有多少車,每天有多少收益,停車場的位置在哪…等等,具體的細節,被裝進了一個黑箱子里面,我們不再關心它。比如,一個軟件管理的停車場還有沒有看車老大爺,這就算細節,在這種視角下,我們不再關心這個人是否存在,也不關心他在做什么,因為已經用軟件定義好了他的行為,這時候我們只關心提供結果的接口即可。

在軟件世界中,知道了接口,就可以使用這一份資源。從此,我們把這個停車場可以看作軟件世界里存在的一個單元(Unit),剛才說了,它的現實狀況已經被裝進黑箱子屏蔽掉了。如果你只有一個這樣的單元,它只能用來規范基本行為,但如果你在相鄰街道再有一個這樣的“停車場單元”,這時候就能開始有一些新的變化了。比如,停車場單元A已經幾乎停滿了,但停車場單元B還空著一半車位,這時候就可以通過軟件來調整資源,讓車主盡量往停車場B停。具體手段有很多,比如通過智能手機發送一條消息,告訴正在開來的車主,停車場A要排隊 10 分鐘,停車場B排隊 1 分鐘就可進入。自然可以分流一部分人到停車場B。甚至是把停車場B的停車價格降價 10%,吸引更多人前往。這些實時的,根據資源剩余情況的動態配置,利用傳統手段是不可能做到的。一方面是傳統手段沒法快速反饋信息,另外一方面,傳統方式的審批決策流程過長,要降價總要有個負責人批準一下吧?從而讓實時的動態調整變得不可能。但在一個被軟件定義的世界里面,是可以做到的。在這種模式下,如果我們再屏蔽掉具體的引導辦法(降價,排隊時常通知之類),甚至可以把A和B兩個停車單元合并成一個看,即,在軟件層面上,我們有了一個更大的停車場單元。

再繼續下去,如果有更多的資源具有了接口,他們之間還可以發生什么交互?比如,兩個停車場旁邊有兩個規模和品質相似的餐館A和餐館B,它們也具有了接口,軟件世界里面,我們抽象出餐館單元A和B,知道它們的座位有多少空余,知道今天廚房有什么材料,知道價格…那么,停車單元A報告自己已經滿了的時候,這時候餐館B是不是愿意暫時降價 10% 來吸引更多客源?如果餐館B通過降價,成功把自己空余的資源賣掉了,他是否愿意分享一部分利潤給停車場,以及分享一部分利潤給幫助進行資源配置的軟件運營方?

這些都是會在未來發生的事情。越來越多的現實世界資源通過一個接口,接入軟件世界,成為一個抽象的單元,它們會直接發生相互的作用,這就是我們多年所說的“智能化”。所有的這一切,最終都需要軟件實現。把一個現實資源抽象成接口這件事,在軟件行業稱之為“虛擬化”,一個 60 年代軟件行業就使用的概念。通常這個詞被用于云計算行業,云計算產業在真正的物理計算機上虛擬出了計算機、路由器、內存…把這些資源彈性分配給需要的用戶使用。但實際上,現實世界的一切都是可以通過這種方式被虛擬化的。這就是未來被軟件定義的現實世界。對于這樣的世界,如果找一個更容易理解的例子,最適合的是游戲。未來的一切都像即時戰略游戲所表現的那樣,如果你玩過星際爭霸,大概會記得拿鼠標點一下,派出一個 SCV 去采礦,用鼠標點一下工廠,坦克就開始被生產出來。在這個過程中,操作者只需要知道點鼠標下達指令,之后收獲指令的結果。點一下鼠標,幾分鐘之后得到一輛坦克,至于工廠里面具體如何生產一輛坦克,SCV 如何獲得礦石,這些細節被屏蔽掉,不用在關心。將來現實世界,傳統行業的一切都會變成這樣,甚至連下達指令的(玩游戲)的這個操作者早晚也會被軟件替代。

我并不是在寫科幻小說,在今天,很多行業已經實現了類似的效果。比如航空業,這個行業里面很多部分已經是高度虛擬化的了,他們已經可以用一個指揮系統調動各種地勤和支持資源去完成航空行業運轉的各種流程。當然,他們也需要好多程序員來開發和維護這個系統…

說到這里,推薦一部非常符合這個主題的動畫片,叫做《夏日大作戰》,這部 2009 年的動畫用圖形化和更易懂的方式描述了這種未來的場景,非常好看。這是 2010 年,當時還在九城工作的布布推薦我的,我們都非常喜歡它,也一致認為這就是未來。(布布這個人也在笑來關于比特幣的文章里面出現過,他跟笑來說不要挖礦,要花錢去買比特幣…是一個非常傳奇的家伙)

圖片:夏日大作戰

為什么你招聘不到程序員,以及軟件如何定義現實世界

我們再站高一點,看之前描述的場景。現在我們有了若干的資源單元,他們分布在不同的行業,這些單元已經被軟件定義好了,我們看作是黑箱。在軟件之下,又定義了無數具體工作人員的行為。剛才的例子里面,除了停車場管理員,還有廚師,服務員…沿著這個思路繼續想,還會有給餐館進貨,供應原材料的供應商,維修停車場設施的公司…所有這些,會會被虛擬化成軟件世界中的一個單元。然后是各種被提供服務的人(所謂用戶),他們有接收信息的方式,大到計算機,小到智能手機,或者各種嵌入式系統,比如特斯拉電動車駕駛艙里面的那塊大屏幕…一個使用手機的用戶,或者一輛特斯拉,同樣都可以被抽象成一個帶有接口的資源單元。所有資源單元的行為,都是被軟件定義的,他們之間的交互方式和可能產生的結果,同樣是被軟件定義和調配的。這其中的每一層,每一部分,都需要大量程序員的工作。越來越多的現實資源被虛擬化,也就產生了更多的交互和更多的可能性,這些一樣需要程序員去實現。今天,人類社會被虛擬化成軟件的資源還只有極少的部分,我沒有具體統計的數字,但大家只要想想自己每天的現實生活所需所用,至少能有個大概的感知,恐怕被虛擬化的資源連1% 都不到。未來的空間有多大?幾乎是無限量的大。

現實世界能被虛擬化到什么程度呢,我之前幾次推薦過科幻小說《雪崩》里面描述了未來的世界只剩下三種職業:娛樂業、程序員和 Pizza 快遞員。這本寫于 90 年代初的小說,早年看起來非常震撼,今天看起來…覺得他還不夠極端。因為現在我們已經確知了,Pizza 快遞員的工作會被無人機改變,娛樂業會被 VR/AR 改變。最后干脆現實世界只剩下了程序員這一種職業…軟件并沒有吞噬掉現實世界,而是重新定義了現實世界的所有資源。

圖片:雪崩封面

為什么你招聘不到程序員,以及軟件如何定義現實世界

所以,今天一切關于軟件/互聯網泡沫的看法都是過時的。現實世界的虛擬化已經快到了相當的程度,我們真的需要大量的程序員,未來仍然需要,有多少都不夠用。因為程序員職業缺口太大了,早就不是有錢就能招聘到的了,甚至一個程序員因為公司要打卡,就會選擇另外一家企業,因為他們可選擇的余地實在太大了。很多企業遠遠沒意識到問題的嚴重性,而聰明的企業,已經在忙著做“企業技術文化”工作了。如果你不是 BAT,又不是一個很酷的新公司,程序員們根本對你沒有興趣,到這個境地,花別人一倍的錢也未必能雇到人,所以就需要做技術文化工作,去宣傳我們也是很酷的,我們也是能改變世界的…從而不至于在這種競爭中落后。

最近一段時間,我周圍很多其他行業的朋友都跑來問我,是不是他們應該學寫一點程序。我通常都回答,只要你有興趣,學的下去,那就當然應該。就算不能成為職業程序員,在這個軟件定義一切的行業里面,理解程序如何產生,理解程序員如何工作,那就一定會有一份更好的職業機會等著你。為什么不學呢?

以上這些,就是難以雇到程序員這種狀況產生的基本面,因為這個職業缺口確實太大了,未來這種職業缺口不僅不會減少,毫無疑問還會繼續擴大下去,甚至可以夸張一點的說,人類世界現代化的速度,很大程度被程序員數量不夠制約…

來自: mp.weixin.qq.com

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!