專家:程式設計師不配叫工程師

2020-12-05 快科技

一些人把程式設計師稱為工程師,這破壞了「工程」的一個悠久的傳統——為公眾利益而設計和建造基礎設施。以下為全文摘要:

我的一個朋友最近提到:「科技界習慣把程式設計師稱為工程師。但是我覺得,那種嚴格按照規定修建橋梁的人才算是工程師。」

這個說法讓我心生感慨。大家都知道,矽谷經常用「工程師」這個詞來形容技術工作者。不知道是出於什麼緣故,如果你在初創公司工作,而且又不是銷售、營銷或者設計人員,那他們就會把你稱為工程師。「我們正在招聘工程師」是初創公司的口頭禪,指的可能是從JavaScript程式設計師到機器人專家的各種崗位。

這種「工程師」可能是「軟體工程師」的簡稱,但這個用法暴露了天機:對於軟體開發工作來說,工程師這個頭銜太「硬」了一些。因為在傳統上,工程師會受到監管、獲得認證,經歷學徒教育和繼續教育。工程對於公眾安全性和可靠性負有明確的責任,就算不一定每次都能實現

科技業拉低了「工程師」頭銜的含金量

最近幾年,軟體行業爆發了一些重大故障,導致塔吉特、家得寶、哈佛大學、LastPass等等機構和公司的海量數據遭到洩露,但這只是計算機系統帶來的網絡安全問題的冰山一角。大眾汽車柴油排放造假案也屬於「軟體事件」,雖然那是對軟體的故意改動。

但這僅僅是幾個比較轟動的例子。如今的計算機系統給個人和社區帶來的風險,如果發生在橋梁、高層建築、電廠,或者飛彈防禦系統這些更有形的領域,完全屬於不可接受的範圍。某些人的iPhone在更新蘋果的iOS 9系統之後「變成了磚」,無法使用。而像谷歌文檔這樣的服務也會莫名其妙地宕機,讓重度用戶陷入困境。 「你的密碼包含了無效字符,」Twitter上有人吐槽一個網站的提示,「不,是你的公司包含了不稱職的工程師。」

和辦公室大樓結構的完整性、國家核武器庫的安全性相比,這些看起來都是小事。但是你買的新車很少出現不能啟動的情況,你辦公樓的電梯也很少會莫名其妙地卡住吧?計算已經成為了一種基礎設施,但它沒有其他基礎設施運轉的那麼良好。

在摩天大樓和橋梁、發電廠和電梯這些領域,都有專業標準和監管機構對工程進行管理。但是,對軟體開發進行工程化的努力已經進行了五十年,如今卻離成功越來越遠。人們目前採用迭代方式開發軟體,這倒也很合情理:製造業和建築業的項目一旦實施就難以改動,但軟體業和它們不一樣。

軟體業與世界的隔絕

軟體雖然變得更加重要,但它與世界之間的隔絕加深了。早期的計算機系統涉及企業、行業、政府和社會等方面。比如汽車客戶管理系統需要對經銷商、供應商、運輸商、銀行和貸款機構、監管機構、遺留系統和客戶進行整合。但是,今天的軟體大多都非常獨立。比如照片共享服務Instagram去年的估值達350億美元,它需要的只是在伺服器和應用之間上傳和下載照片。

可以肯定的是,今天的雲工具仍然會依靠一些基礎設施(尤其是物理伺服器和網絡)來處理數以百萬計的用戶訪問數以十億計的文件。但這些活動基本上都被外包給了基礎設施巨頭去做。

在對通訊、金融和存儲之間的整合進行了抽象之後,單個軟體開發人員可以將它們當作黑盒子來使用。這種抽象有時候可以讓軟體更好更可靠地運行,但它也可以把開發人員與外面的「雜亂世界」隔離開來。

結果就是,軟體開發已經在體制上成為了一種類似閉門造車的活動。而這和「工程」的主旨是背道而馳的。工程的主旨是與世界合作,而不是置身於一個單獨的空間,一心要超越世界。

傳統的工程學科——土木、機械、航空航天、化工、電子、環保——即有技術屬性,又有社會屬性。在工程師的協調下,橋梁和大樓修建起來。工程師設計了車輛和重型機械,又發明並實現了驅動這些設備的動力系統,設法把所有系統連接在一起。

矽谷不重視證書

其他工程學科都有證書和許可證機制。如果你想僱傭一個土木、結構或液壓工程師,肯定會找擁有專業工程師(PE)證書的人。專業工程師一般需要獲得4年制的學位,並通過一種或多種考試,並在註冊工程師的監督下,接受4年或更多年的專業實踐。

但IT行業不僅不像工程業那麼重視證書,而且還越來越不把它當回事。一些矽谷大佬對正式學位並不在意,即使是谷歌那樣的大公司也表示,他們看重的是能力而不是學歷。

在軟體開發的模式上,敏捷開發已經佔據了主導地位,它側重於快速迭代,而不是長期規劃和複雜的文檔。Scrum是一種流行的敏捷開發方法,其特點是朝著一系列不斷變化的目標進行短暫的「衝刺」。

應用或Web服務具有暫時性,和橋梁、大樓那樣的「百年基業」非常不同。但是,軟體開發與我們生活的息息相關,卻並不亞於橋梁和大樓。我們的汽車、飛機、醫療設備,以及銀行系統、醫療機構和保險系統,電話和通訊網絡,乃至於娛樂活動都在使用計算機。像Scrum這樣的方法即使可以產出像樣的成果,也無法保證基礎設施級別的穩定性。

創業文化也正在改變工程教育。創業是崇高的,加速器和孵化器比比皆是,並非所有讀計算機科學課程的學生認為自己會成為初創公司億萬富翁……但也不是所有的學生都不這樣認為。這些「工程師」獲得的鼓勵是把每一個項目都當作一門潛在的生意,做好擴大規模和兜售它的準備,而不是在這門學科中長期浸淫,把社會福利看得至高無上。工程一向都是高薪職業,但是IT業把它視為了一種投機,而不是一種使命。

是生意,還是工程?

「工程師」這個詞讓人聯想到頭戴安全盔的高大形象,他們是設計者和締造者,兢兢業業地開創著明天。工程的尊嚴來自於數十年來的嚴格管控、教育,以及學徒式認證制度,現在,一些人卻把它看成一種寬鬆的速成手藝,想把它當作一門生意來做。

矽谷擅長於重新定義一些事情,比如他們把商業利益重新定義為一個「改變世界」的過程。而工程,就被他們定義成了一個建造臨時性東西的過程。畢竟,像平面設計師和對衝基金經理這樣的專業人士也確實可以創建東西,但我們通常不會把他們稱為工程師。他們的成果可能會成為基礎設施,也可能不會,可能會符合公共利益,也可能不會。

如果成果是基礎設施,而且又符合公眾利益,那麼他們做的就是工程,而不僅僅是生意。在加拿大,很多土木工程師都戴著一枚鐵指環,象徵著對這份職業的道德承諾。他們畢業的時候會參加一個「工程師冠名典禮」(The Ritual of the Calling of an Engineer),被告知自己在工程界工作的義務,並宣讀詩人魯德亞德·吉卜林撰寫的誓言,然後才被授予這枚指環。

加拿大有一座魁北克大橋,在1907年修建過程中垮塌,造成數十名工人遇難。有人說鐵指環的製作材料就取自於那座垮塌的橋梁。這個說法雖然不是真的,但卻流傳不衰。鐵指環的材質象徵著魁北克大橋以及其他所有其他設施。

工程師對公眾負有責任。作為橋梁、高樓或者軟體的設計者和建造者,他們在責任心驅使下發揮著各種才幹。只有在對自己職責做出承諾之後,工程師才開始建造東西,無論具體建造的是橋梁、建築物,還是軟體。

相關焦點

  • 程式設計師和工程師的不同
    ,可以迅速從程式設計師成長為工程師。當時我覺得太詫異了,從很多招聘啟事來看,「程式設計師」不就等於 「工程師」嗎,只是「工程師」更好聽一些而已。等我工作久了,才知道「程式設計師」和「工程師」真的是不一樣的——程式設計師只寫程序,工程師寫能在現實世界中創 造價值的程序。
  • 嵌入式程式設計師如何發展成全棧工程師
    對於嵌入式程式設計師來說,如果想成長為全棧工程師,應該做好以下幾件事:第一:設計全棧開發方向。對於嵌入式程式設計師來說,應該以物聯網體系為依託設計全棧開發方向。物聯網體系包括六個大的技術組成部分,分別是設備、網絡、平臺、分析、應用和安全,其中嵌入式程式設計師處於設備層,下一步可以繼續往上發展來設計全棧路線。簡單的說,接下來應該學習雲計算、大數據相關知識。
  • 全棧開發永遠成不了高級程式設計師?!
    【CSDN編者按】對於程式設計師來說,選擇深耕單一技術還是各領域涉獵一番是二選一的必考題。如果你是後者,那恭喜你成為很多開發者豔羨的全棧工程師了!你會很受歡迎,很多技術問題上都需要你的參與。但是,一個殘酷的事實是,儘管你付出了巨大的努力,但是一旦遇上大神你仍然不配稱作高級開發。本文的作者曾經幻想自己會成為無所不能的技術大拿,但是「囫圇吞棗」的學習卻讓他和同事的實力越拉越大。
  • 程式設計師的這108個笑話 你都看得懂嗎?-程式設計師,笑話,編程, ——快...
    24、程式設計師的四大理想:南極有套房,澳大利亞有群羊,全世界電腦死光光,孩兒有個娘。25、有一種崩潰叫密碼輸入有誤;有一種驚慌叫做帳號異地登陸;有一種感情叫隱身對其可見;有一種誤會叫人機離線;有一種失落叫沒有訪問權限;有一種感情叫站點訪問失敗;有一種無奈叫bug無法復現。26、黑體的鋸齒,宋體的滄桑,崩潰的避頭尾集。
  • 好與壞的程式設計師:如何客觀評價程式設計師的水平?
    這發生在幾千年前的對話是不是靠譜我們不知道,但是拿這話來套程式設計師的生態圈,真就是一套一個準。2微軟某個大牛軟體下面兩個不同的組裡各有一個大牛程式設計師,為了不失一般性,我們叫張三和李四吧。張三的特點頗有點大哥的風範,偶爾也充當一下二哥。寫的程序嚴謹,測試也很嚴謹,幾乎不犯錯。組裡其他同事有錯的,也在出大事之前默默的修掉了。
  • 普通程式設計師與高級程式設計師有什麼差別?你知道嗎?
    要成為一個工程師,首先要有一顆渴望成為工程師的心,因為我們根本不能奢望一個從沒想過成為工程師的人成為一個有實際工程能力的人!程式設計師的基本能力是:Tasking和學習能力。當好程式設計師的能力是:用更好的方法來實現功能。0.文檔能力「文檔是第一生產力」,這一點在程式設計師的世界是毫無異議的。
  • 誰是更好的程式設計師:中國人還是印度人?
    以下是計算機科學專家一致認為的最好的程式設計師的幾個要點。以至於唐納德·克努斯(Donald Knuth)甚至舉行公開比賽,以獎勵那些在程序中發現錯誤的人。「編寫最好的程序是為了使計算機能夠快速地執行它們,使人類能夠清楚地理解它們。在理想情況下,程式設計師是一個隨筆作家,他運用傳統的美學和文學形式以及數學概念,來傳達算法的工作方式,並使讀者相信結果是正確的。」
  • 聽說程式設計師下班從來不關電腦,為什麼呢?
    小編目前在一家網際網路公司上班,當然了,辦公室清一色的程式設計師小哥。但很多時候,程式設計師小哥哥都是只關顯示器,揣著手機就跑了。為什麼這些人下班都不關機呢?特請一個程式設計師小哥作答,他會心一笑,說了一個我無力反駁的理由:下班關機,上班崩潰。崩潰的事有哪些呢?打開IDEA,定位到昨天編寫的代碼處,十分鐘。打開navicat,兩分鐘。
  • 被嫌棄的35歲程式設計師
    35 歲以上的程式設計師都去哪了?經常有人發出這樣的靈魂拷問。很多人會選擇在 35 歲的當口轉型以渡過中年危機。一般來說,35+ 程式設計師的職業路徑主要有三個大方向:技術專家、技術管理、跨行業就業(非技術向)。轉做技術管理,大多數程式設計師都會走上這條路。
  • 工作五年的程式設計師真實工資是怎麼樣的
    可能大家都覺得程式設計師的工資很高,看一下下面是我五年以來的工資真實寫照就知道高不高了,沒有一點的水分,全是乾貨 2015.9月到2016年8月入職A公司java開發工程師。 試用期稅前前工資:4500元/月,沒有uo五險一金。
  • 程式設計師的數學修煉手冊
    有人說:「2020 年是程式設計師本命年。」「哦?怎講?」「因為 2020=404+404+404+404+404」這誰說的?你出來,咋就顯擺你數學好呢!憂桑,難道我這個社畜不配擁有休息日?好吧,既然我擋不住它來,只能勵志做一個不禿頭的好程式設計師了。
  • 程式設計師都做些什麼工作?
    程式設計師已經是很寬泛的一個名詞了,不止是設計製作APP 在正式探討這個問題前,我首先想到的是,為什麼會認為程式設計師就是設計製作APP呢?
  • 國外程式設計師推薦:每個程式設計師都應讀的書
    —— Joel《程式設計師修煉之道:從小工到專家》內容簡介:《程式設計師修煉之道》由一系列獨立的部分組成, 涵蓋的主題從個人責任、職業發展,知道用於使代碼保持靈活、並且易於改編和復用的各種架構技術, 利用許多富有娛樂性的奇聞軼事、有思想性的例子及有趣的類比, 全面闡釋了軟體開發的許多不同方面的最佳實踐和重大陷阱。
  • 為什麼成為一名程式設計師這麼困難? —— 從程序新手到準工程師的必經...
    在學習程序開發的過程中,常常看到網絡上的「甘苦談」,也聽過身邊前途一片光明的程式設計師朋友們分享過學習歷程,總覺得不同的人、同樣的故事卻不斷的重複,像是狼叫聲般,從遠處傳來一聲又一聲的迴響。當你一路過關斬將把程序語言基本邏輯跟語法學會的同時,你就會超有成就感、自信心大增,開始有「原來我也行嘛」、「寫程序也不過就這樣」的感覺,基本上覺得自己已經跟「程式設計師」相差不遠了。
  • 程式設計師:我怕是你對電腦有什麼誤解
    作為一個從事 IT 行業工作的人來說,被人叫去修電腦、修手機都是家常便飯,難免會碰到一些奇奇怪怪的問題。下面小小號就來給大家總結一下程式設計師以往碰到過的問題:1、電腦是不是被凍著了有一年過年跟著爸媽回老家農村看望爺爺奶奶,那時候比較迷戀單機版的
  • 程式設計師是做什麼的?未來計算機變得智能,就不需要程式設計師了嗎?
    很多人認為計算機變得如此智能,所以在不久的未來將不再需要程式設計師。另外一些人認為程式設計師是天才,他們在電腦前能不斷地解決複雜的數學難題。甚至不少程式設計師對他們是做什麼的都沒有清晰的概念。
  • 資深程式設計師認為的成功十大黃金定律
    如何才能成為一個頂尖的程式設計師呢?Java頂尖程式設計師Lukas Eder和我們分享了偉大程式設計師應該具備的十大特質,他表示這十大特質並不是偉大程式設計師所特有的,任何領域的領導者可以說都有這些特質。當然這只是Lukas Eder的一家之言,如果你有不同觀點或者其它補充歡迎在下方留言評論。
  • IT 程式設計師、軟體工程師值得考的證書原來有這麼多!|原力...
    通過考證去提升自己,是一種非常不錯的、性價比很高的手段,但是IT行業並不像金融、建築、醫療等那些行業有那麼多職業資格證書可以考,下面整理和介紹程式設計師比較值得考的一些證書。所以,程式設計師最值得考的證書肯定是計算機技術與軟體專業技術資格(水平)證書,也就是我們常說的軟考證書,通過參加計算機技術與軟體專業技術資格(水平)考試成績及格就可以獲取證書。計算機技術與軟體專業技術資格(水平)考試下面簡稱為軟考。
  • 程式設計師「不惑」的 30 歲到了,就該給年輕人讓位嗎?
    別擔心,小探今天就請了一位前谷歌資深工程師 Yan 來跟大家討論討論,工作了1年、5年、10年的程式設計師們,該如何規劃職場和提升自己。Yan 曾在谷歌連續三年獲得「Top performer」的稱號,也曾擔任技術面試官。最好的提升在工作中IBM 想靜靜裁掉 40 歲以上的員工,顯然沒法靜靜。。
  • 軟體工程師必讀的10本書,你讀了嗎?
    下文所推薦的書目非常經典,至今依舊光彩熠熠,並且頗受高級軟體工程師們的推崇,因此常將其推薦給初級開發人員。在當今這個時代,時間的確很寶貴,尤其是對軟體工程師而言。但是,如果真的能花上些許時間拜讀一下這些書目,則無論對於自身的提高還是未來的職業生涯而言,必將有所裨益。在這裡有必要說明一下,下文書目的排列順序完全隨機,與其重要性的大小無關,因為每本書均有其側重且值得被推薦。