近期看了一篇文章,大意是軟件開發(fā)者即將成為下一代的藍(lán)領(lǐng)工人。查了一下wikipedia,藍(lán)領(lǐng)工人的含義是:
In English-speaking countries, a?blue-collar worker?is a?working class?person who performs non-agricultural?manual labour. Blue-collar work may involve skilled or unskilled?manufacturing,?mining, sanitation, custodial work,?oil field?work,?construction,?mechanical?maintenance,?warehousing,?firefighting, technical installation and many other types of physical work. Often something is physically being built or maintained.
想象一下,就是在生產(chǎn)線上的裝配工人,建筑工地的水泥工,油漆工。這一群工種不需要創(chuàng)造力,只需掌握某一種技能(如:給iPhone上一顆螺絲釘),而這種技能有很強(qiáng)的可替代屬性?,F(xiàn)在Tesla工廠很少使用汽車裝配工人,完全機(jī)器化的廠房預(yù)示了這些“Blue-collar”可能會很快消亡。
好了,程序員怎么會成為下一代的藍(lán)領(lǐng)呢?提起程序員這個(gè)詞,可能首先會想到《社交網(wǎng)絡(luò)》中的扎克伯格,打小就把軟件賣給IBM的比爾蓋茨,堪稱創(chuàng)造了商業(yè)神話的天才們。然而,書本上的,電影中的只愿告訴我們最戲劇化的故事,現(xiàn)實(shí)卻是那么平淡和無趣。之前媒體上經(jīng)常提到一個(gè)詞匯:范式轉(zhuǎn)移(Paradigm Shift)。從工業(yè)時(shí)代到信息時(shí)代,程序員很可能就是新生的“工人”群體。
首先,大家的受教育程度普遍增加,與計(jì)算機(jī)相關(guān)的領(lǐng)域知識不再像過去那樣難以理解,加上對于軟件開發(fā)的市場需求有增無減,那么,有大批量新生力量涌入這個(gè)市場。不管是美國對于STEM(Science, Technology, Engineering, Maths)的政策扶持,還是大量打著“30天速成移動開發(fā)”的機(jī)構(gòu)涌現(xiàn),“程序員群體”在數(shù)量上即將壯大為一個(gè)“工人群體”。
其次,程序員所做的事情真的那么神秘?真的難以理解嗎?像Mr. Robot美劇中,主角僅憑一己之力,在一個(gè)屏幕上敲打很多神秘字符,一場網(wǎng)絡(luò)入侵就這么平息了?,F(xiàn)實(shí)中,隨著軟件開發(fā)供給端人數(shù)越來越多,分工必然越來越細(xì),伴隨著越來越細(xì)的分工,一個(gè)程序員的工作可能就是保證一個(gè)登錄頁面正常運(yùn)行,如果有問題,直接百度啊。也許這就能解釋HackerNews中有人會問:Do we really need a CS degree to get a Software Developer job? (我們真的需要一個(gè)計(jì)算機(jī)科學(xué)學(xué)位來為軟件開發(fā)工作做準(zhǔn)備嗎?) 從這個(gè)意義上來講,這就和“藍(lán)領(lǐng)工作”太相似了,學(xué)好一門技能,然后養(yǎng)家糊口。
在現(xiàn)在的互聯(lián)網(wǎng)商業(yè)社會,技術(shù)是一種實(shí)現(xiàn)商業(yè)目的的工具,在量級比較小的公司,靠技術(shù)本身不太可能創(chuàng)造壁壘,換言之,我們都在學(xué)習(xí)和應(yīng)用技術(shù),只要找到學(xué)習(xí)能力好,對商業(yè)愿景稍微認(rèn)同的人,這事情都能做成。“藍(lán)領(lǐng)工人”和“碼農(nóng)”大部分都處在執(zhí)行層。
這意味著:軟件開發(fā)的工作更多會和“重復(fù)性勞動”,“步驟化”以及“結(jié)構(gòu)化”聯(lián)系在一起。當(dāng)然了,這些屬性意味著這種工作在不久的將來是可以被替代的。這種跡象,在“第X代編程語言”和“Serverless”等概念身上看到些影子。真正熱愛這個(gè)行業(yè)的人,我們應(yīng)該怎么提升自己的價(jià)值,保證高“不可替代性”?
1. 有廣度;“廣”意味著基本功扎實(shí),基本功肯定不是“30天速成”能教給自己的,技能的學(xué)習(xí)無非是照貓畫虎,而基本功需要長時(shí)間琢磨理解以及反復(fù)嘗試,我理解的基本功包括:算法與數(shù)據(jù)結(jié)構(gòu),計(jì)算機(jī)網(wǎng)絡(luò),計(jì)算機(jī)系統(tǒng),數(shù)據(jù)庫等。靜下心來想想,這個(gè)市面上出現(xiàn)了很多流行的技術(shù)詞匯,有了這些基本功,面對這些新鮮詞匯至少心不慌。
2. 有深度;“深”意味著在這個(gè)市場中的相對優(yōu)勢,從市場機(jī)制來講,也只有你的某項(xiàng)能力優(yōu)于市場平均水平才有議價(jià)的可能性。任何一個(gè)技術(shù)方向,我敢說只要一個(gè)學(xué)習(xí)能力差不多,也有一定好奇心的人,Google幾個(gè)關(guān)鍵詞,總能很快入門。真正的專家和小白的區(qū)別就在于經(jīng)驗(yàn),而經(jīng)驗(yàn)這東西就是在一個(gè)問題領(lǐng)域不斷折騰后才有的,肯定不能速成。
上面說的是一些硬實(shí)力,當(dāng)然還有很多軟實(shí)力,這些軟實(shí)力不分行業(yè),比如:交流溝通能力,有效計(jì)劃和執(zhí)行的能力,成熟的心智模式(瞬間重溫了一下Teaching As Leadership)。舉個(gè)例子:之前做老師的時(shí)候,我分享過一個(gè)老師一天可能要作出上百個(gè)微決策,而做決策是需要花精力的,而不斷決策不斷反思會幫助一個(gè)老師更好地成長;同樣作為程序員,我們應(yīng)該給自己更多作出獨(dú)立決策的機(jī)會,決策 -> 執(zhí)行 -> 反思。這種在復(fù)雜環(huán)境下的決策和權(quán)衡能力,是很難被某項(xiàng)技術(shù)替代的。
事實(shí)上,軟件開發(fā)行業(yè)會變得門檻越來越低,但同時(shí)天花板越來越高,但在數(shù)量上呈一個(gè)三角形。能夠被替代的永遠(yuǎn)都是底層的單一技術(shù)輸出者。不由得給自己立下一個(gè)小目標(biāo):夯實(shí)自己的廣度,精深某一方面的技能,刻意培養(yǎng)自己的軟實(shí)力。