從微積分被當,
到在美國企業帶開發團隊


2026年過年這一段時間,因為可以遠端工作的緣故,公司同意讓我回台灣一邊工作一邊過年。我也藉此回到學校拜訪徐國錦老師,吃飯吃到一半,老師問我「易暄,你願不願意在資源人寫一篇文章,分享你這幾年跨領域的感想?」,我馬上回答「好啊,我應該還真有些心得可以與學弟妹分享!」
這應該是個經歷到30歲後才有一些感想的題目。2019年那年,我24歲,剛從老師研究室畢業,結束在成大資源系6年的訓練,正對未來的不確定感到徬徨;2026年的現在,我31歲,在美國工作,是個帶領五人開發團隊的小主管。七年時間,說長不長,說短不短,對我卻是一段重要,改變我的人生旅程。
這中間我當了兵、到台大公衛當了兩年多的研究助理,然後在約翰霍普金斯大學(JHU)環境衛生系完成了第二個碩士,畢業後在JHU流行病學研究所又工作了一年,接著轉到業界,進入一間為各大藥廠分析臨床試驗數據的CRO(Contract Research Organization)公司。來業界不到一年,我從零開始,一手帶起了一個成熟的跨國團隊,而我在這間生技公司帶領的團隊,做的卻是軟體與應用程式開發。
我從來都不是班上第一名。大一時微積分跟普通化學都被當,大三進老師研究室做專題時,暑假還得回數學系,跟一群大一的學弟妹一起暑修微積分;在成大碩士畢業的論文口試,也是口試委員們高抬貴手我才能畢業的。這大概就是我的背景介紹了。老實跟各位說,連我自己都很難相信這七年前後的人是同一個人。但這確實就這樣發生了:24歲那個努力朝自己想要的方向走的我,幸運地在大部分的關口,都拿到了階段性的成功。
接下來,我想把這七年拆成兩個部分來分享:一是技能,那是跨領域真正的銜接點;二是自我要求與堅持,就我的經驗來說,這也才是真正決定人在每一個轉折點去留的關鍵因素。
技能:跨領域的銜接點
跨領域從來不是憑空一跳,每一次都需要一個銜接點:你在上一個領域累積的技能,剛好是下一個領域需要的東西。回頭盤點,我的每一步都是這樣接起來的。
在成大,徐國錦老師要求我在大學專題推導地下水污染平流延散方程式的數學解析解,碩士論文時期又打下了頻譜分析、碎形分析與水文模型的基礎。當時只覺得辛苦,對這些艱深的理論也大多摸不著頭腦,多年後漸漸融會貫通才明白:這些數理訓練,是我日後所有模型能力的地基。
在台大公衛當研究助理的兩年多,我學會了寫程式、做資料科學,透過流行病學與生物統計對統計模型有了更深一層的認識,也熟悉了大型電子資料庫的操作流程(台灣的公衛研究大多使用健保資料庫 NHIRD),並培養出 R Shiny 資料視覺化這項日後改變我職涯的技能,累積了學術成果,也在公衛專業領域發表了論文。
到了 JHU,我靠這些基礎快速銜接上環境衛生的課程,也找到兼職研究助理的工作。畢業後我留任學校,擔任研究資料分析師,深耕於時空分析與暴力犯罪研究。為了申請博士班,我爭取校外合作機會,與一位哈佛學長合作,用 TriNetX 大型臨床資料庫分析 Dupilumab 對 COPD 的影響,研究結果發表上了胸腔科的頂尖期刊。
進入 CRO 業界後,正逢藥界大動作地把使用的程式語言從 SAS 過渡到 R,我的 R 與 Shiny 技能剛好接住了這個浪頭。我負責訓練中國團隊的傳統 SAS 工程師,教材、講課、demo 一手包辦。曾經連續兩個月,用自己的時間在每週四晚上九點對成員開課,最後成功把一位自己人送進客戶藥廠當 FSP(對 CRO 公司來說,能送出一位外派人員,就代表一份額外收入),作為這項任務的驗收。老闆對我的信任,就是這樣一點一點累積起來的。
而我自己被派駐藥廠當 FSP 時,學會了他們嚴謹的協作方式:用 GitHub 工作,每一個 Shiny app 的架構(Architecture)都設計得很扎實。架構是什麼?下一節我會用一張圖解釋。我當時也不會,但我用高標準要求自己,每個新項目都要快速上手,後來把這一整套搬回公司,從零建立起 GitHub 協作的文化。回過神來,我已經走進軟體開發的領域了。
| 階段 | 領域 | 累積的技能 | 帶往下一站的銜接點 |
|---|---|---|---|
| 成大資源系 | 水文與環境模型 | ADE 解析解推導、頻譜分析、碎形分析、水文模型 | 數理與模型基礎 |
| 台大公衛 | 流行病學研究 | 程式設計、資料科學、生物統計、NHIRD 健保資料庫、R Shiny 視覺化 | 資料科學與大型資料庫實戰 |
| JHU | 環境衛生 | 時空分析、暴力犯罪研究、TriNetX 臨床資料庫、期刊發表 | 臨床研究經驗與作品集 |
| CRO 業界 | 軟體開發與管理 | GitHub 協作、軟體架構、Agentic AI、跨國團隊管理 | 持續累積中 |
表一、七年間的技能堆疊:每一站累積的技能,就是跨進下一站的門票
岔題:我的新手藝,使用 AI 來開發軟體 Agentic Engineering
說到這裡,請容我岔開一下,介紹我現在每天在做的事:使用 AI 來開發軟體。這門新手藝有個名字,叫 Agentic Engineering。它聽起來很玄,拆開來其實只有四件樸素的事:架構(Architecture)、駕馭(Harness)、迴圈(Loop),以及技能化(Skill)。
動手寫程式之前,要先想清楚這個產品該長成什麼樣子:模組怎麼切、資料怎麼流、半年後要加新功能時會不會牽一髮動全身。
要讓 AI 會「做」,你得給它工具(讀寫檔案、執行程式、開瀏覽器截圖),再配上驗證機制,讓它做完能自己檢查。就像韁繩:不是為了拴住馬,是為了讓牠跑得又快又不偏。
設計「做→驗證→修正」的迴圈,讓 AI 一輪一輪逼近正確答案,而不是奢求一次到位。
把驗證過有效的流程沉澱成 Skill,整理成一份隨時可以再次調用的標準作業流程,下次遇到同一類問題,AI 直接照著專業流程走。
先說架構。動手寫程式之前,要先想清楚這個產品該長成什麼樣子:模組怎麼切、資料怎麼流、半年後要加新功能時會不會牽一髮動全身。空講太抽象,我以我們為藥廠開發的「病人資料視覺化平台」(R Shiny)當例子,圖一是它的資料夾結構:


圖一、我們產品的架構:共用邏輯只寫一次,一個分頁一個模組
它的規則只有兩條:所有分頁共用的邏輯(讀資料、畫圖、配色、正常值判定)集中在 logic/,全 app 只寫一次;每個分頁自成一個模組,放在 module/,互不干擾。於是要新增一個分頁,只要加一個檔案;要調整全 app 的配色,也只要改一個檔案。同一個 app,兩個工程師都做得出來,但一個工程師有好好做規劃,另一個追求能跑通就行,差別要到半年後才顯現:一個改起來輕鬆、後續發展潛力也高;一個改起來想哭而且不易維護。
所以我常跟團隊說:架構就是開發者的產品品味(product taste)。它像一面照妖鏡,你對全局掌握得有多深、替未來想了多遠,全都藏不住地畫在上面。
再來是 Harness。AI 模型本身只會「說」;要讓它會「做」,你得給它工具(讀寫檔案、執行程式、開瀏覽器截圖),再配上驗證機制,讓它做完能自己檢查。這套配備就叫 Harness,原意是馬具、韁繩:不是為了拴住馬,是為了讓牠跑得又快又不偏。圖二取自我準備的公司內訓講義:Context 決定 AI「知道什麼」,Harness 決定 AI「能做什麼」,Loop 決定 AI「能修正到多好」。


圖二、公司內訓講義的其中一頁:用好生成式 AI 的三種工程能力
Loop 是第三件事:設計「做→驗證→修正」的迴圈,讓 AI 一輪一輪逼近正確答案,而不是奢求一次到位。最後一件事,是把驗證過有效的流程沉澱成 Skill,整理成一份隨時可以再次調用的標準作業流程,下次遇到同一類問題,AI 直接照著專業流程走。
其實可能人生也是一種 Agentic Engineering,只是那個 agent,是自己。你對自己的全局了解多深、替未來的規劃花了多少心力,那是我們各自人生的架構;決定把自己放進什麼環境、配上什麼工具與夥伴,那是個人的 Harness;而願不願意誠實地覆盤與修正,決定了這樣的 Loop 能把自己帶得多遠。
自我要求與堅持:養成與眾不同的人格特質
技能決定你能不能跨過去,而自我要求決定你能走多遠。這一部分,我以我的幾個轉折來說。
台大公衛的陣痛:學會「把事情做對、做好」
當我跨領域到台大公衛時,我有過很痛的陣痛期。當時的副院長、也是我的老闆,林先和老師,把我叫去約談說:「再給我一個月,如果還不能跟團隊接軌,就請我另找機會」。說真的,被責怪後不難受是不可能的。但現在回想,那次約談除了是林老師溫柔的督促,也是一次嚴厲的驗證。它逼我學會到近30歲才真正懂的一件事:把事情做對、做好,而不是為了做而做。從那之後我才潛心努力學習,也才有了前面那一整排技能。
申請博士班:八間全落空,一場嚴格的修練
申請博士班則是一場更嚴格的修練。當時的我動機十足但天真,想讀公衛博士,將來以專家學者的身分回台灣,為教育政策、為下一代的批判思考能力傳遞做點事。我申請的第一年,八間申請學校全落空,只有 JHU 環境衛生給了我碩士的錄取通知。那時我本想再拚一年,因為讀美國博士班不用花錢還有獎學金,我想說的故事是:連微積分被當的我,都能不花家裡的錢出國讀書,那比我優秀的學弟妹一定也可以。但爸媽跟我說:「你要跨去公共衛生,本來就需要再讀一個學位,錢我們已經準備好了。」我後來接受了,進入JHU環境衛生系就讀,也放下了天真的執拗。因為我理解,當你帶著家人朋友的祝福與好意努力時,未來你的成功,都會有他們的影子。
JHU 畢業後:覆盤的迴圈,把做對的事沉澱成 Skill
JHU畢業後,我能留在研究室當研究資料分析師,不用去就業市場拚死拚活,是因為老闆知道我再度申請失利,看見我的堅持,願意支持我一年,給我工作讓我繼續申請。教授告訴我,他看到我一直都很積極,不管是担任助教或是參與研究計畫。真的!熱情是會被人看見的,所以他願意給我這一年的機會。申請博士班那幾年,我給自己立了一個迴圈:每天覆盤,問自己今天哪裡不夠好、該怎麼修正;哪裡做得好、怎麼把每一次成功重現成為自己的能力。就像現在我將 AI 把驗證過的工作流整理成 Skill 一樣,覆盤就是把人生裡做對的事,沉澱成可以再現的 Skill。
再次申請博士班:六間面試,最終對自己誠實
再次申請博士班的那一年,我有了兩篇第一作者論文、一篇頂尖期刊論文、扎實的面試技巧與成熟的待人處事能力,我拿到了六間博士班的面試(JHU、NYU、BU、Colorado、Emory、UMich)。申請博士班是一條需要明心見性的長路,撰寫 Statement of Purpose 與 Personal Statement 逼著自己一再洗鍊心性。用足夠高的標準要求自己,才能達成自己設定的目標,而這個想法,可以類比到堅持做任何一件困難的事情上。
但是,我即便有這些面試,最終我還是沒有拿到任何入學通知。與此同時,我再一次對自己誠實:我其實沒有那麼想讀博士。30歲了,我想先賺錢,照顧好自己,過上想要的生活,再談幫助下一代。從這一刻起我才開始跨出學術圈。
跨進業界:兩百份工作,唯一一份 offer
於是 2025 年 2 月我開始找工作,把學界 CV 改成業界履歷,不斷 coffee chat,像業務一樣親力親為。介紹我的職業獵頭原本想婉拒我的履歷,但我預先研究了藥廠的工作內容,主動點出「貴公司需要、而我可以提供」的服務:包含Shiny 的技能、臨床藥物研究的經驗、大型電子資料庫(NHIRD、TriNetX)的經歷。也是因為這樣的用心準備,她才點頭把履歷推薦給了我後來的主管,四輪面試後,我拿到了這份工作,而那是我那年投的兩百份工作裡,唯一的一份。我就這樣正式從公衛跨進了藥界。
帶團隊:重新設計協作架構,讓結構驅動工作
開始帶團隊後也有陣痛過程;產品上架前測試來來回回,改了 A 壞了 B,交辦全靠 Teams 訊息,久了員工也會煩。老闆嚴肅地告訴我:這個過程有很大的問題。其實我自己也覺得不對,因為對員工來說,可能訊息一響就代表「又有工作了」。像古典制約一樣,久了誰都不想看訊息,回覆越來越慢,壓力也越來越大。我跟老闆說,給我一週時間,我會處理好這件事。我一直相信,當難題出現而自己現階段還不足以應對時,就需要跳出框限。我知道我需要更好的管理工具,於是導入 Notion 工作日誌,把工作內容分門別類,將 Active items 標記清楚,讓「結構」去驅動工作,而不是讓「訊息」去驅趕人,你也可以說,我是重新設計了一次團隊協作的架構。從那之後,Teams 上的訊息只剩下「你們好棒!」「辛苦了,請好好休息!」,團隊也真正成熟了起來。
我曾跟老闆說過一句話:「你是否還記得學生時代的你,收到簡訊會期待是不是那個他來的訊息?我希望團隊最後能把工作當談戀愛來看,會期待收到來自我的訊息。」
我很認真地對待我的項目,也很認真地投入生活,所以我對生活總有很多反芻,才會有這些奇奇怪怪的總結,哈哈。我認為開發很有趣:一個交到你手上的產品,會讓你隨時思考它該長成什麼樣子。我希望我們團隊的人都能樂在其中,一眨眼就發現領薪水了。
當初公司招我進來,其實只看上 Shiny 這一項技能;後來的事,大多是我自己伸手要來的,主動接下核心開發、主動辦內訓,也主動寫提案報告給創辦人,告訴他我的團隊想做到什麼、需要什麼資源。我對自己的標準很高,面對任務也習慣自己在前面領頭衝刺,但我也很樂於給每一位認真工作的人該有的肯定。也是這樣的精神,讓這個團隊到目前為止都很有向心力,工作上很融洽。
NVIDIA 創辦人黃仁勳先生說過:「真正會讓你想一起工作的人,不是最聰明的人,而是善良、樂見別人成功的人。」
— 黃仁勳
開始工作之後,我才真正透徹地理解這句話,也用這個標準去尋找我想帶進團隊的新人。跨領域從來不是目的,而是在生存、在追求目標的過程中自然發生的事。每個人的路都不一樣,但決定性的因素是同一個:「你究竟想成為怎樣的人?」找到自己的核心價值之後,我們也就成了完全不同的人。
結語
寫到這裡,我想起在成大的日子,老師研究室的白板上一直寫著一句話:
把繁雜的刪掉,追求屬於自己的獨特性。
成功絕對不會一次到位,我們都在自己的迴圈裡一輪一輪地做、驗證、修正。認真對待每一件事,即便那可能需要你付出更多時間;如果你想成為在任何領域都能突出的人,就該有這樣的心理準備。然後,把做對的事沉澱成帶得走的 Skill。這是我能跟學弟妹分享的最重要的事,也是我能為各位立在這裡的路標。
無論是想詢問文章內專題相關的內容或是想知道留學如何準備等等訊息的學弟妹/學長姐,都歡迎來訊息,我把聯絡資料留在這裡:
© 資源人編輯團隊 · 國立成功大學資源工程學系