程式設計師這個職業會是另一個即將破裂的泡沫嗎?

嘿你好夏天發表於2017-12-08

原文: Are Programmers Headed Toward Another Bursting Bubble 作者:Tyler Elliot Bettilyon 翻譯:雁驚寒

摘要:IT和一些低階別的程式設計工作最終會消失嗎?這個工作是一個巨大的即將破裂泡沫嗎?本文作者對此做了詳細的分析。以下是譯文。

一位朋友最近向我提了個問題,這個問題我曾經在不同的論壇上聽到過,雖然問題的形式不太一樣:

“你認為IT和一些低階別的程式設計工作最終會消失嗎?這個工作看起來有點像一個巨大的即將破裂泡沫。我認為,科技和低水平電腦科學相關工作能夠“受人尊敬”以及保持高薪的唯一原因是這個行業中充斥著晦澀難懂的專業術語和公眾對計算機的無知,而這兩種情況在未來的10年裡都將消失。”

這個問題既跟技術工作的未來相關,也是對軟體工程領域誤解的一個常見例子。雖然這個行業裡確實有很多“晦澀難懂的專業術語”,但其中也存在著相當多的難題正等待著具備相應技能的人去解決。一些軟體相關的工作正在慢慢地消失,但真正具備一定經驗和知識的程式設計師們將繼續會受人尊敬,也能拿到較高的報酬。最近的 AI研究員薪水大爆炸 和相應人才的缺乏正是印證了這一點。

在不斷變化的技術環境中保持相關性可能是一個挑戰。看看當前那些用來取代程式設計師的技術,我們就能夠預測有哪些工作在將來可能會消失。此外,要預測薪酬和技能需求的變化,應該把未來會有越來越多的人學習程式設計這個情況考慮進去。正如Hannah所指出的那樣,“公眾對計算機的無知”使得會程式設計的人的工資很高,而公眾對計算機的瞭解會越來越深入。

持續向著商品化發展

對自動化取代人類的恐懼既不新鮮也沒有根據。在任何一個領域,特別是在技術領域,市場的力量都會推動企業走向自動化和商品化。 “ Gartner炒作週期報告 ”就是對這種現象進行情景化的一種方式。

程式設計師這個職業會是另一個即將破裂的泡沫嗎?
2017Gartner炒作週期 隨著時間的推移,一些特定的想法和技術最終必將走向自動化這個“生產力高地”。縱觀歷史,我們可以得出結論,自動化有能力摧毀特定的就業市場。在不同的行業,從作物收割到汽車裝配技,先進的技術將不斷增強甚至取代人力,進而降低成本。一位教授曾經在編譯原理課上這樣說:“以紡織業和鋼鐵行業為例:你是要創造機器,還是要操作這些機器?

在這個比喻中,“機器”是指計算機程式語言。這位教授真的在問:你想用JavaScript建立網站,還是要構建支援JavaScript的 V8引擎 嗎?

今天,網站的建立可以用WordPress或其他平臺來自動進行。而另一方面,V8正在成為越來越多解決開源研究問題的競爭對手。程式語言會突然流行起來,也會慢慢衰敗下去(現在還有多少Fortran相關的職位呢?),但總是會有人去創造下一個程式語言。 幸運的是,程式語言是用程式語言自己來編寫的。作為一名軟體業中的“機器操作員”,你將走上一條“機器創造者”的道路,而過去的鋼鐵工人並非如此。

層出不窮的程式語言、解釋程式和編譯器告訴我們,每一個破壞工作的機器也帶來了改進、維護這些機器的工作機會。儘管越來越多的 工作崗位已經不復存在 ,但人類歷史上還沒有出現過一個集體訴說“我們沒有任何工作可做”的時刻。

程式設計師這個職業會是另一個即將破裂的泡沫嗎?
擺放保齡球球瓶的人 商品化正面向我們所有人走來,而不僅僅針對軟體工程師。縱觀歷史,人類的勞動一直被非人類所取代,或者是所需的人數減少,以及所需掌握的技能要求降低。 自動駕駛的 汽車 和 卡車 這個當前最時髦的東西正說明了這一點。 如果創造和自動化這種迴圈反覆是生活中存在的事實,那麼接下來要回答的問題自然是:哪些工作和行業會面臨風險,而哪些不會?

誰把誰自動化了?

AWS、Heroku和其他類似的託管平臺已經永遠改變了系統管理員和DevOps工程師這樣的角色。網際網路企業過去完全需要有自己的伺服器管理員,包括:精通Linux的人,會配置Apache或NGINX服務的人,一個不僅會在物理上連線伺服器、路由器和所有其他物理元件,還能夠配置路由表以及所有讓伺服器在網際網路上可訪問的軟體的人。儘管由人來操作更加專業一點,但AWS正在淘汰其中的一些技能,特別是那些無需多少經驗水平以及物理側方面的工作。雖然亞馬遜(包括Netflix和Google)在網路基礎設施方面擁有豐富的專業知識,但在中小型企業中這方面的需求要少得多。

SalesForce、Tableau和SpotFire等“商業智慧”工具也逐漸開始侵佔原本由軟體工程師佔據的空間。這些系統減少了對企業內部資料庫管理員的需求,但同時也增加了把SQL作為通用技能的需求。它們減少了對企業內部報表製作技術的需求,但是增加了對“整合工程師”的需求,因為他們能讓資料自動地從企業流向第三方軟體平臺。之前由Excel和Spreadsheets主導的領域越來越多地被像Python或R這樣的指令碼語言所主導,並朝著用SQL進行資料管理的方向發展。有些工作已經消失,但是對程式設計人員的需求總體上還在增加。

資料科學這個實際的案例在一定程度上跟軟體商品化非常類似。 Scikit.learn,Tensorflow和PyTorch都是通用軟體庫,開發者使用這些庫可以很容易地構建機器學習應用程式,而無需從頭構建演算法。實際上,人們可以使用很多不同的機器學習演算法來執行資料集,而這些演算法可以有許多不同的引數集,並且使用者無需深入理解演算法是如何執行的(雖然這麼做並不明智,但這是有可能的)。我可以打賭,商業智慧公司將在未來的幾年內將這些演算法整合到自己的工具中。

資料科學在很多方面就像是5-8年前的網頁開發。這是一個蓬勃發展的領域,只要懂得一點知識你就能入門。隨著網站開發培訓班的關閉,資料科學培訓班如雨後春筍般地冒了出來。Kaplan曾經購買了原來的網路開發培訓班(Dev Bootcamp)並啟動了資料科學培訓班(Metis),現在決定 關閉DevBootcamp,但繼續維持Metis的運營 。

內容管理系統是讓企業自動遠離對軟體工程師需求的流行工具之一。 SquareSpace和WordPress是當今最受歡迎的CMS系統。這些平臺的存在顯著降低了那些只具備一點點前端Web開發技能的開發者的價值。事實上,現在製作網站和上網的障礙已經大大降低,沒有任何程式設計經驗的人每天都在釋出網站。他們不是在為網際網路提供數十億人訪問的互動網站,而是為自己的企業搭建網站,為客戶提供他們所需要的資訊。一個包含如何找到企業以及如何與企業聯絡的可愛登陸頁面,對於當地的餐館、酒吧或零售店來說已經完全足夠了。

如果企業的主要業務並不是“網際網路業務”,那麼,在網際網路上搭建一個網站並不簡單。因此,曾經一度非常繁榮的網站承建商這個行業,雖然它們能幫你在網際網路上快速建立起一個簡單的網站,但也開始變得越來越不賺錢。

最後,在這種情況下,無視計算機的物理特性就是一種自大。用Mike Acton的話來說:“ 軟體並不是平臺,硬體才是平臺 ”。軟體相關人員至少要學習一點計算機架構和電氣工程知識才是明智的。消費級量子計算機的出現將會改變軟體工程的一切。

量子計算機還很遙遠,但人們對GPU以及並行化趨勢的興趣正日益增長。 CPU速度的提高已經停滯了好幾年,但機器學習和“大資料”的飛速發展不可抑制。隨著處理大型資料集的需求越來越多,OpenMP、OpenCL、Go、CUDA和其他一些並行處理語言和框架將成為主流。為了在短期內提高競爭力, 全方位的並行化是將成為主流 ,這不僅僅體現在作業系統上,還體現在基礎設施和視訊遊戲等領域中。

每個人都在學習程式設計

網站無處不在。 2017年的Stack Overflow調查報告 指出,約有15%的專業軟體工程師都在“網際網路/網路服務”公司工作。據勞工統計局預測,網路開發崗位人數的增長速度將繼續高於平均水平( 2014年至2024年平均水平為24% )。由於該行業的的知名度較高,人們紛紛關注起“技能差距的彌補”上。程式設計培訓班現在幾乎只教網站開發,而網站開發線上課程也已經搶佔了Udemy、Udacity、Coursera和其他一些線上課程的市場。

網站開發技術的自動化程度越來越高、大量入門級網站開發程式設計師的湧入,使得有人預測網站開發對於軟體開發人員來說將成為一個 “藍領”市場 。有人進一步指出,推動該市場的藍領化是 大型科技公司的一個戰略 。而其他一些人則說,我們正在為另一個即將破裂的泡沫而努力。

對特定技術的需求發生變化並不是新聞。 語言和框架的發展總會遇到 上升期和下降期 。目前的網站開發(“JS為王”)會重走2000年初的網站開發之路(還記得Flash嗎?)。 在決定給自己貼上“React開發者”這個標籤之前,請記住,曾經有人認為自己是“Flash開發者”。把自己的事業限制在一個特定的語言、框架或技術上就像是一場賭博。當然,要預測哪些技術能保持相關性是相當困難的,但是如果你想迎難而上,那麼我建議你以“ Lindy效應 ”為依據,並選擇像C語言這樣已經經受住了時間考驗的東西。

未來一代年輕人的技術素養肯定更高,這是X一代甚至千禧一代的人們所不具備的。同時,CMS工具也會變成更好,以方便年輕人更好的利用這些工具。這樣,更多的年輕人會進入這個行業,從而導致低水平IT和網路開發技能的價值大大地降低。另外,高中也會開始提供電腦科學和程式設計方面的課程,一些受過良好教育的高中生可能會進入勞動大軍,在畢業後立即成為一名程式設計實習生。

另外的一大批程式設計新軍是MBA和資料分析師。曾經的職位描述中要求會用Excel,而現在開始改為會用SQL,或者是熟練使用SQL。諸如Tableau、SpotFire、SalesForce和其他一些基於Web的度量系統將取代電子表格成為報告生成的主要工具。如果這種情況持續下去,那麼就會有更多的資料分析師去學習SQL,因為這比將資料匯出到電子表格中處理更簡單。

那些想要轉入IT行業或者想在崗位上更進一步的人來說,在網上學習資料庫和統計類程式語言是一個不錯的選擇。在有了這些新技能之後,他們就可以把機器學習和統計庫方面的庫結合來,把自己定位為資料科學家。

最後,獲得電腦科學和軟體工程學位的人數正逐年攀升。例如,普渡大學宣稱,他們電腦科學課程的申請數量 在五年內翻了一翻 。康奈爾大學也報導了 電腦科學畢業生數量大爆炸 的新聞。鑑於軟體的增長和普及,這一趨勢並不令人驚訝。對於年輕人來說,他們很難想象計算機在我們未來生活中充當的角色將越來越小,所以為什麼不研究一些能夠保住我們飯碗的東西呢。

稀缺和期望

在這個行業中,現在有一個很普遍的觀點,認為在大學四年的電腦科學課程中學到的知識大多是沒什麼大用處的。我在培訓班、線上開發商店,以及一些大人物 例如Eric Elliott的作品 中都看到過類似的觀點。當然,反對意見也很多,有人甚至說: “所有的程式設計師都應該有碩士學位” ”。

我的想法跟Eric Elliott一樣,我認為對於程式設計來說,還是有更多其他的路可以選的,而4年的大學生活可能也不是某些人最佳的選擇。同時,我也同意威廉·貝恩的觀點,即跨學科領域應用的基礎技能對於職業生涯的長期發展來說是至關重要的,而且在大學課程之外還很難找到相關的知識。我 以前曾經寫過 有關一個有抱負的工程師在漫長的職業生涯中應該學習哪些基礎技能。

不同規模不同形式的程式設計學校到處都是,並且他們的廣告詞讓人無法拒絕。在那裡,你無需涉及底層細節、演算法和資料結構,即可學會程式設計。然而,雖然史丹佛大學的畢業生確實會與來自Hack Reactor的畢業生爭奪一些工作,但這僅限於在一兩個子行業裡。程式設計學校和培訓班的學生目前還沒有進入嵌入式系統、密碼與安全、機器人,網路基礎設施或人工智慧等行業的研究和開發工作中去。然而,在像網頁開發這樣的領域中,這方面的發展十分迅速。

一些與程式設計相關的技能已經開始從“稀缺技能”轉向“期望標準”。推動科技發展的大公司,例如亞馬遜、Google、Facebook、Nvidia、Space-X等等,通常不會招聘對JavaScript只是基本瞭解的人。 AWS每天為數十億使用者提供服務,為了支撐這種負載,AWS基礎架構工程師需要深入瞭解網路協議和計算機體系結構,並擁有多年的相關經驗。與其他學科一樣,IT業中也有業餘愛好者和工匠。

這些著名的公司正致力於解決研究性的問題,以及構建某種真正能夠突破邊界的系統。然而,即使在基本的程式設計技巧越來越普及的情況下,他們仍然很難招到合適的人來填補空缺。能夠編寫演算法來預測基因序列變化的人將會受到這些公司的追捧,在未來的價值將非常高。能夠給衛星、航天器和機械自動化程式設計的人將繼續受到企業的高度重視。這些領域並不適合成為像前端網路開發那樣的“三個月速成班計劃”。

電腦科學脫胎於“計算機”這個詞,一些人預計,到2025年人們對它會有天生的理解。很可惜,計算機的普及並沒有造就出真正理解數學、電腦科學、網路基礎設施、電氣工程等學科的新一代。計算機素養與計算機的研究是不一樣的。儘管數學已經存在,但統計學素養較高的人仍然比較少,電腦科學也一樣。 Euclid發明了多種演算法 ,其中有一個演算法在每次傳送HTTPS請求的時候都會用到。但事實上,每次我們使用HTTPS登入網站的時候,並不會自動了解這些協議的工作原理。

雙峰薪水分佈圖

成熟專業領域的薪水分佈圖往往有兩個波峰:相對較少的人賺取了相當多的錢,他們中大多數人的薪水都很高,但在收入的前1%中卻看不到他們的身影。美國國家法律安置協會(National Association for Law Placement)收集的資料 證明了這種情況 。大部分法學畢業生的工資在4500美元到65000美元之間,雖然工資很高,但很難跟“頂尖專業人士”聯絡在一起。

程式設計師這個職業會是另一個即將破裂的泡沫嗎?
擁有法學學位的人的收入分佈圖,來自於美國國家法律安置協會 我們往往會認為,所有的法律專業畢業生都有可能成為一家律師事務所的合夥人,而事實上他們有很多的職業方向:律師助理、文員、公共辯護、法官、企業法律服務、合同寫作等等。電腦科學專業的畢業生也有很多的道路可以選擇,從網頁開發到嵌入式系統。由於基本的程式設計技能仍然是“期望”,而不是“具備”,因此,我猜測程式設計這個職業的收入分佈圖也會出現類似的情況。

雖然總會有一批IT界人士花費大量的資金來推動技術的發展,同時也會有越來越多的IT中產階級人士為新的以計算機為中心的經濟提供支援。網頁開發人員的平均收入肯定會隨著時間的推移而下降。也就是說,“程式設計師”的職位總數只會繼續增長。對於那些正在重新定義可能性的程式設計師來說,他們將繼續獲得頂級工資。

一個程式設計師學習平臺分享給你們,讓你在實踐中積累經驗掌握原理。主要方向是JAVA工程師。如果你想拿高薪,想突破瓶頸,想跟別人競爭能取得優勢的,想進BAT但是有擔心面試不過的,可以加我的Java學習交流群:282711949。

注:加群要求

1、大學學習的是Java相關專業,畢業後面試受挫,找不到對口工作可以

2、在公司待久了,現在過得很安逸,但跳槽時面試碰壁。需要在短時間內進修、跳槽拿高薪的

3、參加過線下培訓後,知識點掌握不夠深刻,就業困難,想繼續深造

4、已經在Java相關部門上班的在職人員,對自身職業規劃不清晰,混日子的

5、有一定的C語言基礎,接觸過java開發,想轉行的

相關文章