軟件工程師的衰落與程序員的崛起

全文共4711字,預計學習時長14分鐘

來源:cu.manmanbuy

 

我周圍大多數人都是軟件工程師或計算機科學家,大多經驗豐富且接受過嚴格的計算機科學教育。當然,這隻能成就一個計算機科學,卻不一定能成就編程。許多經驗豐富的同事都痛惜年輕同事技能和教育水平的下降。

 

同時我也發現,入門級編程學習者在工作和課堂上的技能和教育方面有所轉變。似乎軟件工程作爲一門學科和職業已經讓位給了“黑客”和“牛仔”開發人員,但他們對實際的計算機科學知之甚少。事物發生變化了嗎?如果有,怎麼辦?

 

 

歷史101

 

如果追溯到計算機科學的起源,它還不叫計算機科學,學校甚至還沒有設置計算機科學系。計算機科學作爲一門學科是數學和(或)工程學的一個下設學科。第一個計算機科學系於1962年在普渡大學成立,15年後,大學計算機科學系才相繼推出。在20世紀80年代,計算機科學在很大程度上仍被認爲是數學或一般工程的一個子領域。然而,早在20世紀40年代,我們就有了計算機程序員。這些早期的開拓者是誰,他們做過什麼的呢?

 

奧古斯塔·阿達·金,勒芙蕾絲伯爵夫人; 也叫阿達·洛夫萊斯.計算機科學家之母.

 

最早的程序員是數學家。那時通常不稱爲程序員,而稱作分析員、工程師、數學家,或者被稱作“冰箱裏那些真正聰明的女人”(最早的程序員大多是女性,大多數電腦都在“冷庫”裏)。這些“程序員”必須在數學和(或)工程方面受過廣泛的正規教育。與我們今天所認爲的程序員相比,早期的程序員更像科學家。隨着時間的推移,到20世紀60年代末,這一領域發展壯大,進行計算機編程的人們被稱爲軟件工程師。這些人接受過高等教育(仍然主要是女性),通常擁有數學高級學位。這種情況持續了一段時間。

 

瑪格麗特·漢密爾頓, 第一個真正的軟件工程師;最偉大的工程師之一.

 

到了20世紀80年代,計算機科學系和學位開始在各個高校中嶄露頭角。有人認爲這是計算機科學的黃金時代。私人電腦出現在美國各地的家庭中,像《戰爭遊戲》(Wargames)這樣的電影引起了人們的興趣,使他們想更多地瞭解電腦,而傳說中的“互聯網”又在挑戰人們的認知。在此期間,我們見證了正式而又的傳統軟件工程師的崛起。該頭銜令人垂涎,同時也讓人肅然起敬,只有那些在數學、計算機科學和(或)電子工程方面受過正規教育的人才能獲得該頭銜。這也發展了一段時間。

 

 

開始轉變

 

到了90年代末,我們現在簡單地稱之爲“程序員”、“碼農”和“開發人員”的人開始涌現,他們不是正規大學畢業,而是擁有軍事技術培訓學位或動手編程副學位等證書的人,或者僅僅是通過互聯網自學的人。漸漸地,這個新的團隊以新的頭銜進入軟件工程領域,比如“程序員”或“開發人員”,而不是“工程師”,我們也見證了網絡專家和系統管理員等計算機相關技術領域的爆炸式發展。

 

即使到了2000年初,作爲一名招聘經理,我看到過任何申請軟件工程職位的人幾乎都有相關的四年學位。如果我看到這樣的簡歷,我會不假思索地跳過。快到2010年末,我看到的申請中至少有一半來自沒有正式學位的人。現在作爲一名計算機科學教授,經常有學生在一兩堂課後輟學,因爲他們得到了一份類似程序員的工作(通常不是一份好工作,也不是他們理想中的工作,而是一份名爲“開發人員”的工作)。

來源:Pexels

 

“軟件工程師”這個頭銜要麼不受歡迎,要麼專屬於大型科技公司的傳統和高級職位。現在,通常是以“開發人員”或“程序員”作爲一個職位,或者不幸的話,荒謬和滑稽的“黑客”、“碼農”或“代碼大師”成爲職業。我們也看到了荒謬的“全堆棧開發人員”的標題到處亂扔,似乎這有一些特殊的意義(但其實沒有)。學位不再是衡量程序員工作適合與否的必要條件,事實上也不一定需要正規教育。標準似乎在急劇下降,以至於任何能打字的人都能叫“程序員”。

 

 

發生了什麼?

 

對於保守派來說,典型的結論和論據是標準下降了。很明顯,對任何一個能編程的人(甚至是初級的)的需求都急劇上升。典型的論點是必須有人這樣做,所以我們降低了標準桿,只是爲了藏在鍵盤後面。表面上看這是有道理的,很少有人適合攻讀四年制的數學、工程和計算機科學等學科的高級學位。

 

很明顯,它變成了簡單的數字。對開發人員的需求高得離譜,能夠獲得計算機科學四年學位的人數相對較低,我們現在需要這個領域的程序員。不管怎樣,我們必須該滿足需求,所以我們只是降低了標準。顯然,現在人人都能成爲“工程師”,我們盲目地希望得到最好的。表面上,真正的軟件工程正在消失,而幾乎沒有正規教育的“編碼”和“黑客”正在取代它。這是一個簡單的答案,許多受過正規培訓的工程師(包括我)都願意相信。然而,和大多數簡單的答案一樣,我們應該在下結論之前深入研究。

 

真正改變的是計算機技術的成熟化、模塊化和產品化。我們過去要求在計算機各個方面都是訓練有素、受過正規教育的軟件工程師,因爲一個企業或機構中的計算機數量是…一臺。一臺非常大,非常複雜,非常昂貴的計算機。那時也沒有如今所謂的“互聯網”。在這些機器上工作的人必須是一體化的科學家、工程師和數學家。這些早期工作的嚴格程度令人難以置信,因爲這項技術本身還不成熟,大部分是實驗性的。隨着計算機技術的成熟,它變得模塊化、產品化和包裝化(就像任何技術一樣)。不再需要一個集數學家、工程師、程序員、網絡管理員和數據庫管理員於一體的人。技術變成了即插即用,他們的工作也變成了即插即用。技術角色(如技術本身)在許多受過重點培訓的專家中被分解,而不是在少數受過高等教育的通才中。

 

找到故障了!原來是一隻飛蛾.

 

這在所有領域都會發生。第一天是屬於那些具有遠見、最具天賦和受過高等教育的人。在早期,只有受過正規教育的人才能擁有,因爲每個人都必須對整個領域有充分的瞭解。想想汽車工業的早期(在它成爲一個工業之前);只有那些對冶金和工程有着深刻理解的人才能製造、設計或修理汽車。在1900年初建造或修理一輛汽車可能需要鐵匠、冶金、製造、工程、物理和化學方面的知識和技能。在1930-40年代,汽車需求猛增,裝配線和模塊化零件出現。如今,生產汽車流水線上的普通工人對汽車的工程和冶金知識幾乎一無所知,更不用說控制汽車所需的計算機科學了。同樣地,我們的汽車技術人員對工程、冶金(或計算機科學)也幾乎一無所知。他們使用診斷設備來找出問題所在,在線訂購和交換零件。這些技術人員和裝配線工人受過培訓,技術嫺熟,但工作方式與機械工程師或冶金學家完全不同。這已經在計算機科學和軟件工程領域發生了,也是必須發生的。

 

 

編程技術人員

 

正如汽車行業的例子一樣,編程行業對熟練工人的需求激增。同時,計算機和軟件變得模塊化、包裝化和產品化。網絡、系統管理、加密、數據庫、電氣工程等與計算機科學相關的領域也出現了爆炸性的增長。讓計算機領域的每一個人都成爲訓練有素的計算機科學家和數學家,我們根本負擔不起,就像如果每一個裝配一線工人和機械師必須要求具有機械工程碩士學位,我們永遠不可能實現汽車製造或修理。這樣根本行不通。

 

電腦鍵盤背後的人越來越類似於熟練和訓練有素的汽車技術人員(而不是正式培訓的機械工程師)。越來越多的“程序員”或“開發人員”沒有接受過正規或廣泛的計算機科學教育。相反,這類人接受過編程技能的專門訓練,也有一些基礎的計算機科學教育。如今,編程不再需要廣泛而正規的計算機科學教育,在免費的複雜實驗環境中進行。今天的許多編程都需要類似於汽車技師的人,有能力識別所需零件、知道在哪裏找到零件並將其正確插入。日常程序員不再需要知道如何設計和構造排序或搜索算法,並在實現之前對其性能進行數學分析。程序員只需找到排序或搜索“部分”並將其插入。

 

我們看到的不是軟件工程師或計算機科學家的衰落,我們看到的是程序員技術人員的崛起。

 

這些新技術工人是那些具有計算機科學基礎知識的人,但這只是因爲它與編程以及編程方面的實際培訓直接相關。

 

 

真正的計算機科學與軟件工程:生機勃勃

 

計算機科學家和真正的軟件工程師並沒有被“程序員”、“開發人員”和“黑客”所取代,我們只是重新規劃職業和職位,進入一個成熟的行業。正是由於計算機科學家、工程師和數學家的努力,編程技術人員(即現代的“開發人員”或“編碼人員”)纔在如今得以出現。由於計算機科學的進步,軟件的構建現在已經模塊化,並且大部分是預先打包和指定的,這迎來了廣泛的軟件庫、軟件包管理器、依賴關係管理器、集成開發環境、軟件即服務、基礎設施即服務、分佈式代碼庫,當然還有因特網的出現;所有這些開始於計算機科學研究實驗室的博士和工程師。此外,像Python這樣的編程語言已經把細節抽象到了某種程度,幾乎任何人都可以只用基本的計算機科學知識來做到這一點。

 

 

計算機科學家仍在努力建立新理論和新技術。受過正規教育的擁有計算機科學學位的軟件工程師仍在將這些理論付諸實踐。然而,隨着這些新技術逐漸滲透到一線,軟件開發中的大部分日常工作都是由程序員技術人員來完成的。

 

接受正規教育、獲得計算機科學的高級學位的計算機科學家、數學家和軟件工程師現在仍然在這裏,對他們的需求比以往任何時候都高,只是在這個領域中佔總人數的比例有點難以確定。正式的工程師和科學家在這個行業中佔了100%,現在他們所佔的比例越來越小,不是因爲他們被替換了,而是因爲那些受過正規訓練的計算機科學家和軟件工程師創造了一個新的高需求工作:程序技術員。

 

真正的軟件工程師和計算機科學家不僅沒有衰落,並且還依然堅守,做得比以往任何時候都好。我們應該張開雙臂歡迎新同事,因爲我們要面對現實,他們現在正在戰壕裏做大部分工作。

 

 

現在是做選擇的時候了

 

由於技術的爆炸性增長,以及那些早期軟件工程先驅的辛勤工作,讓整整一代人都可以在過去幾乎無法進入的領域擁有有利可圖的職業生涯。正如20世紀30-40年代的汽車和製造業革命導致中產階級的產生和生活水平的空前提高一樣,2000年的IT革命也在做同樣的事情。我們見證了計算機科學的民主化,這是件好事。

 

 

現在選擇權在於你。幾乎每個人都可以成爲持續技術革命的一部分,並在技術領域獲得高薪的職業。現在的選擇不是你是否能進入科技行業,而是你想進入哪個行業,達到什麼水平,如何進入這個行業。計算機科學博士仍然每天都在研究和提出新的理論。那些擁有數學和計算機科學高級學位的人仍在測試這些理論,並將其應用到實際技術中。受過正規培訓和教育的具有計算機科學學位的軟件工程師是該領域的軟件架構師和領導者。編程技術人員(即現代的程序員、開發人員和程序員)站在第一線,將部件放置到位,組裝和維護系統,而分析師和管理員則爲其提供支持。

 

與早期只有受過最嚴格訓練和高等教育的人才會想着進入計算機領域不同,現在你可以選擇你的教育水平,通過提高你的教育水平來隨意選擇或改變你的位置。然而,要清楚的是,如果你想謀生,你仍需掌握計算機科學的一些基礎知識,需要有豐富的技能和生活經驗。這並不容易。只是現在你可以選擇從哪裏開始,走多遠。

留言 點贊 關注

我們一起分享AI學習與發展的乾貨
歡迎關注全平臺AI垂類自媒體 “讀芯術”

(添加小編微信:dxsxbb,加入讀者圈,一起討論最新鮮的人工智能科技哦~)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章