反思軟體工程師的「強者文化」

2023年10月12日

💎 加入 E+ 成長計畫 與超過 300+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源

這週社群上許多人轉貼一位台大資工系校友,對台大資工系「強者崇拜文化」的思考。原文很長但是很值得一讀 (連結)。在讀完原文、反思我們自身的經驗後,有一些不同視角的觀點與大家分享。

先引述原文中讓我們非常有感的這一段,作者談到

「你說不要競賽,去做其他資訊領域的東西有沒有用? 沒有,一點用都沒有。當年我學測 72 級分在校成績大概一百多名,在資訊競賽不是特別有成果,但帶著我從小累積的熱情,為高中社團自己架 BBS 站,去考推甄程式組直接被刷掉了,連個備取也沒給我。上了大一當班代,我直接問了當時的系主任跟副系主任,當年的副系主任告訴我,程式組要的就是有奧林匹亞選手等級的學生。我才知道原來我人生從四歲開始玩電腦做的一切在老師們的眼中這麼微不足道。」

這一段作者在談台大資工系對極度專業知識的崇拜,讓即使從小就碰電腦,甚至高中幫社團架 BBS 站的人,推甄台大資工時連邊的擦不上。這讓人想到,假如馬克祖克柏要推甄台大資工系,大概也會是連邊的擦不到。

雖然新聞媒體早年給祖克柏冠上「天才駭客」的稱號,但是祖克柏在進大學前並沒有什麼了不起的程式競賽 (competitive programming) 成績。反倒是他在進哈佛前就做了一系列軟體應用程式。後來創業做臉書也是應用程式起家,不是什麼程式競賽的產物。

有美國鄉民曾經去爬祖克柏在 TopCoder 上的競賽成績,也不過是在中段而已。換句話說,他是那種做出很多軟體應用,但是沒什麼程式競賽成績的類型,也就是推甄台大資工程式組會被刷掉的類型。

假如你用程式競賽的尺來衡量,祖克柏雖然比一般人強,但絕說不上最頂尖。只是那重要嗎? 對祖克柏來說,我相信他這一生應該不會有一刻懊悔過自己沒在程式競賽有好成績,或是懊悔沒拿過資訊奧林匹亞獎牌。這邊不是要反過來說程式競賽沒有價值,而是當那變成唯一有價值的事,這個教育系統顯然是有問題的。

不只是在入學面,原文作者下面這一段談論業界與學校之間巨大的落差,同樣讓人非常有感。她談到「一直到去咕狗工作之後,我才越來越明白,這些陽剛的強者崇拜有多沒有意義。學術工作少的可憐,學術環境問題一大堆,很多人讀完博班也不過就是來業界工作,而在業界工作根本碰不到什麼了不起的東西,每天在處理的可能不完全是技術面的問題,要改的程式碼也不會用到什麼了不起的演算法。但是我工作之後就很明白,我從小到大做過的每一件事情,他都在我的工作某處用得上。因為真實的世界有很多變化,要走進真正的問題之中快速找到方法處理,而我的博班訓練給了我整套跟使用者互動的基礎,理解他們的問題,而我在大學吐司跟大家一起辦活動,經營社團做事的經驗也給我立足點去參與經營方向的討論。」

在工程師職涯中,寫程式只是其中一環,是必要但不充分的一環。意思是,你要成為軟體工程師,你需要會寫程式,但假如你只會寫程式,你當不了好的軟體工程師。每當談這個點時,就必須推薦 vgod 前輩寫的《軟體工程師的修煉與成長》系列文。

vgod 前輩是靠奧林匹亞獎牌保送進臺大資工系,然後再到 MIT (麻省理工學院) 拿到電腦科學博士。進到業界工作時,一個人負責系統前端到後端,程式寫得又快又好。但是卻接連升職失利。

為什麼?

在他的系列文中,他提到他主管跟他說的,原文寫道「他很快點出我雖然可以一個人抵多個人用,但完全沒表現出領導能力。L4 的中階工程師和 L5 的資深工程師最大的差別不是在程式能寫得多快多好的技術能力,而是能不能帶領幾個人一起完成一個專案解決一個大又模糊的問題。」

沒錯,要成為工程師你需要會寫程式,但要成為資深工程師,程式是否寫得快又好不是重點區別。然而,要成為資深工程師所要具備的,在傳統資工系的教育中沒有被推崇。

這導致一個弔詭的現象,就是在學校時能解出別人解不出的東西會被叫電神,但真的進到業界,才發現當好軟體工程師,你需要一堆「電」以外的軟技能。先前 Google Chrome 的 DX 負責人 Addy Osmani 出過一本叫《Software Engineering - The Soft Parts》的書,就是因為他看過太多工程師在職涯無法突破,是「軟」技能缺乏所致。

你可能會說,台大也是很重通識教育的學校,甚至有棟樓叫「博雅」,為什麼資工系的學生會如此聚焦在極度專業知識崇拜? 其實這也非資工系學生特有,只是不同科系的體現方式不同,例如同樣的場景換到管理學院,學生們變成追求誰實習做的多、誰實習過的公司名氣更響亮。

所以或許真正該問的,是為什麼台大讓學生進到某個系之後,對於強或者成功的價值觀變得如此單一? 就目的上,台大各個系所本身往該領域去鑽深本身沒有什麼問題。問題是整個大學系統的設計讓人把身分認同固著在自己的科系,進而讓人生變得只用單一指標衡量自己。

我們還在讀台大時,當時基本上每個系都有所謂「系核」、「系邊」的概念,用來描述在系上活躍與邊陲的兩類人。為什麼這個劃分是以「系」為單位? 為什麼不是每個人有自己在的核心,只是每個人的核心不同罷了?

關於這些問題,台大並非沒有在思考或改變,起碼我們畢業的前一年,台大成立了 D-School 試圖要打破穀倉,讓跨領域的整合得以成為學習體驗中的一環。事實上,ExplainThis 的共同創辦人們就是七年前在 D-School 認識的。

D-School 是一個超脫系所的存在,在那邊再也沒有所謂的「系邊」,因為大家從各個不同學院系所來,自然沒有核心與邊陲之分;也沒有單一且狹隘的「強者」定義,蘋果與橘子本來就難比較,每個人在課程的專案中都有獨特貢獻。

當年一直覺得 D-School 是個特殊的結界,像是台大裡的桃花源,是個很自然會有開放的心與跨領域協作發生的地方。以及有一群比起想著如何用單一指標衡量你,更在意如何幫助你發展成自己理想樣貌的老師們。例如我們在台大時,遇過最具有啟發性的朱士維老師;以及永遠能以截然不同視角切入的劉建成老師。

如果沒有當年在 D-School 被鼓勵嘗試走出自己的路,現在的我們大概也不會有勇氣投入 ChatBun 的創業中,可能會一輩子都選擇安逸地當個大廠的軟體工程師。

在畢業後幾年,看到 D-School 開出自己的學位,覺得現在的學生真的比當年的我們幸運多了。不過 D-School 畢竟在台大還是一個相對小眾的地方,要讓整個體系改變,相信還有一段很長的路要走。畢竟光是大型的軟體系統要遷移就不容易,學校體系牽涉到更多利害關係人,遠比軟體系統還要複雜,要完全遷移肯定是以年為單位。

這個議題的討論,還有非常多可以展開的面向。最後想推薦 Y Combinator 創辦人 Paul Graham 的 《Cities and Ambition》 一文,裡頭提到每個城市有不同的氣息,劍橋是知識、紐約是金錢、矽谷則是新創,除非你清楚知曉自己要什麼,不然在年輕時最好多到不同地方遊歷。

世界很大,強的方式很多種,願我們都能以自己理想的樣子發著光。

🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們