曹盛濠/寺尾哲也 (B95, 作家, 前 Google 工程師)

訪談日期: 2023/12/27

採訪者: 陳竹筠 (B10)、黃品翰 (B10)、邱子芹 (B11)


Q: 想請學長先做一個簡單的自我介紹


我在工程界的名字是 Sheng-Hao Tsao,在寫作圈的話是寺尾哲也,在 B95 時入學。之後先去美國讀碩士,並在 Mountain View Google工作,之後有回到台北 Google,也有去東京 Google,最後在 2021 年的時候離開工程界並全職寫作。


進入資工系 & 大學生活和學習


Q: 想請問學長一開始在上大學前就已經想要進入資工系了嗎?或是有什麼特別的原因?


當初一開始就想要進入資工系。台大資工系是我原本的第一志願,也是唯一的志願。當初申請入學只有填資工系一個志願,如果沒有上的話會想要再參加指考。一開始高中時對寫程式很有興趣,雖然沒有學很多,但對學到的部分感到很有趣。


Q: 我們想請問學長一開始對寫程式有興趣,是因為高中時有參加寫程式的社團或是比賽嗎?


沒有耶,就只是電腦課寫程式而已。沒有參加過資訊相關的社團。


Q: 想請問學長在大學就學期間,是否有在資工系課程以外的學習體驗可以與我們分享? 像是社團等等。


我有參加多語社,全名是多國語言交換學習社,它的目的是讓大家可以去那邊練習各種語言的口說。我有去那邊練習用日文和他們聊天,或是和日本人接觸等等,是一個很有趣的經驗。除此之外還有雙主修日文系的經驗,雖然最後沒有修完,但是大二、大三修課後也有學到約 N1 的程度,在資工系以外的學習上對我有很大的幫助。


Q: 想請問學長認為在台大資工學習的經驗能夠帶到生活或是工作上最大的幫助是什麼?


我覺得最主要是承受挫折的能力吧!因為像是寫 code 遇到 bug 然後 debug 的這個過程中,電腦是不留情面的,它不會因為你很可憐 code 就會變成對的,所以你就得很有耐心去面對你的錯誤並找出你的錯誤。我覺得這個訓練有讓我變得比較能夠忍受挫折。


Q: 那我想問學長有覺得有什麼深刻的事件讓你印象深刻,現在還能夠回想。


印象最深刻的就是 DCL (Digital Circuit Lab) 的期末,現在可能沒有這門課了。 

(我們: 對好像沒有了)


那太棒了,恭喜你們 :)。那堂課就是要用 FGPA 板做很多事情,那門課最難的就是因為實驗課沒有教學,只是不定期給你作業或是 Project。雖然也是寫程式 (VHDL),但那個程式和一般的高階程式語言的邏輯完全不一樣。雖然他也有像是 if-else 等如同高階語言的形式,但運作的邏輯和高階語言不同,若你用高階程式的思維去寫就會死得非常慘,大家就這樣苦苦掙扎了一整個學期,一直到最後學期末的 Project,當其他系都已經放寒假時,202 還人滿為患的景象讓我很印象深刻。


Q: 像學長提到的DCL, 資工系有什麼課是您修過覺得對未來工作影響最大或有幫助的?


很難說有哪一門課是特別有幫助的,因為我覺得所有的幫助是散落在所有的課程之中的。應該說工作上需要的能力是你可以快速且有效率的理解現成的 code、library 或 framework,要如何正確使用它們。這個能力其實是在多個不同的課程當中被訓練的,例如 OS、compiler的課或database 的課,只要是任何一個要求你要使用 library、framework 或任何不是你寫的 code,就是在訓練這個能力。我覺得這個是一個寶貴且重要的工作能力。


Q: 那我們想再問學長若回顧在台大資工系的學習經驗,你當初覺得我們系有什麼樣的教學方式或是文化是你比較喜歡或希望改變的?


我覺得喜歡的方面就很多吧,像是互相幫助的文化,比如說會在系館地下室討論課業,大三之後也很常去 202 實驗室或 217 討論課業,到那邊去也很容易可以找到同學問問題,這是我很喜歡的地方。


那我不喜歡的部分是很多時候會有一些很奇妙的鄙視鏈,很多時候也是沒有什麼道理。有時候是根據實力來形成的,雖然很不健康但可能還算是有一點道理,但有時候是完全沒有道理的。舉例來說,以前會有一個氛圍是在資工系用的程式編輯器是 Vim 或是 Emacs 才是比較高級的,如果你用的是微軟出的或世界上其他的編輯器就是比較低級的。但是到後來工作之後,就會發現完全不是這樣的,如果使用那個工具可以很有效率地完成工作,那它就是一個好的工具,而不是某個編輯器就一定會比另外一個編輯器高級,這就是為什麼我覺得有很多無道理的鄙視鏈應該被剔除。


Q: 學長有什麼方法可以適應系上的文化嗎?


我覺得如果在大一進來的時候,選擇待在系館跟大家混熟的話,其實對於未來適應資工系是有很大的幫助的,因為你們可以討論作業或交流一些技術上的,我覺得這個是能夠繼續在這裡存活非常關鍵的因素。


Q: 學長有什麼想跟大一新生講的嗎?


一起活下來吧! 雖然會有很多痛苦,但痛苦總有一天會結束,人生會比痛苦更長。



職涯經歷分享


Q: 因為學長剛剛有提到大學畢業是先去美國讀碩士,那我們好奇一開始是否也有想直接去日本?


有,一開始也是想直接去日本讀碩士並在那邊工作,但是因為大三時修了歐陽明老師的 Computer Graphics,那時老師邀請了一位學長回來演講,學長有在美國和中國工作過的經驗,分享的主題主要是比較在中國和美國的軟體工程師職涯優缺點,在聽過他的介紹後才知道原來美國的軟體業是如此蓬勃發展,待遇應該也會好很多,因此我那時才改為想要去美國留學。


Q: 我之前有在網路上看過一些想去美國讀碩士的心得,好像大部分人去那邊讀書最主要的目的就是拿到工作簽證並找到工作,想請問學長當初也是這樣嗎?


對,當時去最主要的目的就是想要在那邊工作,留學只是一個手段。


Q: 那想請問學長在美國成功找到 Google 的工作後為什麼想要再轉到日本?


我當初是先回台北再去日本的。我當初會回來主要是不喜歡灣區的生活,在那邊的生活方式很無聊,除了工作以外沒什麼其他的事情可以做。在那邊大家主要追求的都是結婚、生子、買房的人生道路,如果你不在那條道路上狂奔的話就沒有其他事情可以做。因為這樣的生活方式和我的個性不合,所以我最後還是決定回到台北。


Q: 想請問學長在去美國軟體業工作後是否有與去之前所知道到的有落差?像是在先前提到歐陽明老師的課程上所認識到的是一樣的嗎?


我覺得去之前聽到的和之後去工作體驗到的是一樣的,但原本沒聽到的是除了工作以外的事情,到那邊後沒想到在那邊生活會和台灣差那麼多。另外我在去美國留學前並沒有去過美國,並不知道原來在那邊生活的型態更接近郊區的形式,不是我能夠適應的。


Q: 剛學長提到在那邊的生活型態和台灣很不一樣,那我另外好奇的是到美國後也主要 是接觸以中文或是台灣人形成的社群嗎?


會,到那邊也和很多同樣是資工系的同學、學長或是學弟等等往來,會聚集在一個算是台灣人的社群,大家也主要是工程師這樣。


Q: 想問學長有在美國遇到不是像我們從台灣讀完大學去的人嗎?就是在美國大學讀完資工系,他們的思維會不會跟我們不太一樣?


我覺得還好耶,但我們的課程設計上還是有可以更好的地方,比如說Stanford的開放式課程,他們的課程品質還是有比我們好,講師的講解非常清楚且詳盡,以及每個作業的設計。他每堂課都有作業,像我覺得我們有些課的作業量其實有點太少,比如OS那時候只有4到5次作業,但這麼難的課應該要每次都有程式的作業。我覺得我修的那一門課有一點設計非常好的是,他的作業是疊加式的,也就是每份作業都會跟前幾次的作業相關,這樣可以鼓勵學生把程式寫得好、有延展性和容易maintain。我發現台大資工系沒有這個訓練的話,大家會覺得趕快寫完和拿完滿分,就好了,但這樣就會亂寫,過一個月後,就看不懂你自己寫的,然後也沒辦法改自己的code,挺可惜的。國外頂尖大學的一些課程確實有一些我們可以學習的地方,但overall你要說他們會比我們優秀很多嗎?我其實覺得還好。


Q: 像國外大學他們可能有一些課程跟我們不太一樣,那出國讀碩士的話,會需要額外準備什麼嗎?


我其實讀的是一個非典型的碩士,是 Software Engineering 的碩士,他其實非常的不 CS,大部分的時候,都是在寫 document 跟做 presentation,寫程式的部分其實還滿少的,所以我覺得那個碩士最重要的能力是英文。我覺得準備英文是一個非常重要跟實際的事,去美國之前,我托福考了108分,所以覺得自己英文還不錯,但去了之後發現完全不行,你的每一個外國同學英文都會比你好。你要有辦法很精準的用英文講出你的想法,因為在 Computer Science 的世界裡面,當你的話說不精準的時候,是沒有人知道你在說什麼的。你要描述一個演算法、問題或解法的時候,你需要描述的很清楚,所以英文聽說的能力,尤其是在 CS 相關的專業上,如果可以先養成的話,我覺得是非常重要的。


Q: 系上的課很多都是以中文授課配上英文的簡報,那台大有什麼資源(例如多語社)是可以讓我們準備這項能力的?


我在多語社是學日文,所以我不確定他們的英文程度,但應該有其他的社團,比如說Toastmaster,他們是會非常強調英文口說的訓練。


Q: 學長當工程師的期間,有沒有你覺得當初在台大資工應該要知道,但在當工程師才知道的?還是跟你預期的差不多?


在學校的時候,什麼東西都是從零開始寫起,比如在 graphics 的課要寫 ray tracing 的程式是從零開始,但在工作上是絕對不會發生這種事。可能會有別組、第三方的 library、別的公司或公司內部已經寫好部分 ray tracing 的東西,所以在工作上需要的能力是你要看懂別人的東西。你會有80%的時間在研究別人寫的東西,及如何利用別人的東西,他可能會有很多不同的方案,那你會需要找出符合你需求的方案,再去執行。但我覺得資工系一直都沒有辦法讓學生不要從零開始,所以如果你可以在在學期間就接觸一些 open source project 的話,例如去貢獻Chrome 的 Chromium Browser,就可以理解別人寫的並且加新東西,會挺好的。


Q: 學長大學期間有實習經驗嗎?


有,是在一間小公司,但又是從零開始寫起,所以有點可惜,不過我覺得做實習是一件很棒的事。


Q: 所以你會想要鼓勵學弟妹有機會的話,寒暑假去實習體驗工作的感覺嗎?


對! 我覺得是非常有意義的事情。可以知道當你要跟其他一千多人合作的時候,你要怎麼寫code,你要怎麼把 code 寫到其他人都可以懂和維護的程度。


Q: 請問您在MTV、美國、日本跟台灣Google工作後有什麼體悟或經歷?或者說有什麼建議可以給剛要畢業的同學們嗎?


除了前面講關於技術層面的方面,我覺得要能長久做下去的能力就是要學會把工作上的成敗和自身個人價值分開來看。工作失敗不表示你是一個沒有價值的人,所以如果能把這兩件事情分得更開,就能做得更長久。


Q: 台大資工出來的人多數時候單幹就已經很強,不太需要和他人合作就能完成事情,因此和他人工作起來會不會有遇到溝通上面的問題呢?


我覺得還好,我覺得台大資工系的溝通能力就是平均水準。而且工程師大部分都屬於溝通能力比較差的族群,像是在Google內部也是很多人不太會溝通,所以並不會看出來台大資工差的地方。


Q: 請問學長自己待過美國、台灣和日本的Google,想要請問不同國家之間的Google會有什麼差異嗎?像是文化差異或人際交流之間。


真的沒有差異,Google內部都維持非常相似的氛圍。因為一個產品都是全球合作的,所以在哪個地方做其實都沒有什麼差異



從工程師到作家


Q: 從工程師轉職成作家這個決定是否有糾結過呢?


稍微有一點點,因為真的需要下定決心離開。但是做這個決定一方面就是因為我自己在財務方面已經沒有後顧之憂,另一方面就是我自己真的非常想要寫作,希望自己能花更多時間在寫作上面而這件事和全職工程師起了嚴重衝突,因此才決定轉職成作家。


Q: 學長之前會選擇攻讀美國碩士一部分原因是因為工作的需求,且聽完上一提的回答後,想問學長是否覺得就是要有一定的財富自由,才能去支持作家這個夢想?或者是學長會想說其實直接當作家是更好的做法?


 一方面其實我大學的時候不是特別想做作家,是後來經過工作六七年才發現。另一方面就是我覺得先把財務方面準備好再當作家是很棒的事情。兩個方面,一方面就是沒有準備好就當作家,表示要用文學賺錢而被迫去做許多自己文學上不喜歡的工作,像是很多採訪之類的,這樣反而會耗損你的創作能量。另一個方面就是如果先當了工程師或者其他的職業,你會有一個很大的優勢就是你擁有其他作家沒有的經驗,你就可以書寫那些職業帶給你的經驗和感受,那些東西會使你的作品與眾不同的地方。


Q: 學長跨足了兩個蠻不一樣的領域,覺得這兩個領域有什麼很大的差異嗎?


我覺得差異最大的就是工程師一定要和他人合作,與人溝通和維持人際關係是很重要的。你不可以和任何人吵架,儘管你不喜歡那個人,表面上是需要維持和平可以共事的關係。但是作家不用,作家在人際關係上的確比較自由。



這個網誌中的熱門文章

王瀚宇(R02網媒, 赤燭遊戲共同創辦人)

林于智 (B01/R05, Google Software Engineer, Youtuber [史九87])

劉邦鋒 (台大資訊系教授)