20 年寫程式的 10 個體悟
本篇是「我的職涯地圖:一個工程師的 20 年回顧」系列的第 11 / 12 篇。你可以從系列總覽開始閱讀,也可以直接接著看本文。
從 2001 年在大安高工寫下第一行 ASP 3.0 程式碼,到 2026 年的今天,我寫程式超過二十年了。
經歷了七家公司、六個產業。從創業到大公司,從工程師到技術總監,又從技術總監回到工程師。技術棧從 VB 6.0 到 PHP、Ruby、Elixir、Node.js,基礎設施從一台虛擬主機到 500 台 EC2。
技術一直在變,但有些事情始終沒變。
以下是我二十年來最深刻的十個體悟。
一、文件化不是浪費時間,是投資未來
在 Snapask 當軟體考古學家的那段經歷,永遠改變了我對文件的看法。
你今天覺得「這個太簡單了不用寫」的東西,三個月後的新同事會花半天去搞懂。你今天覺得「我記得就好」的決策脈絡,一年後連你自己都想不起來。
文件不是寫給現在的,是寫給未來的。而未來比你想像的來得更快。
二、自動化一切可以自動化的事
在 CatchPlay,我開發各種小工具幫同事省下繁雜操作。在那家公司,我用 Google Apps Script 自動化各種重複流程。在 Snapask,我用 Terraform 管理所有雲端資源。
每一次花在自動化上的時間,都會在未來十倍地還給你。那些你覺得「手動做一下很快」的事情,乘以每天、乘以每週、乘以整個團隊的人數,就是一個巨大的數字。
三、溝通能力和技術能力一樣重要
KKBOX 的主管在考核中特別提到我的「溝通表達能力」和「帶動團隊學習風氣」。多年後我才完全理解這段評語的分量。
一個工程師如果只會寫程式,他的影響力就只有他自己的產出。但如果他能把自己的想法清楚地傳達給別人、能帶著團隊一起成長,他的影響力就是整個團隊的產出。
技術能力決定你能做什麼,溝通能力決定你能做成什麼。
四、測試不是負擔,是安全網
在那家公司做醫療軟體的經歷,讓我對測試有了完全不同的認知。
在那之前,我知道測試很重要,但常常在時間壓力下妥協:「這個功能很簡單,不用寫測試吧?」在那之後,我再也不會說這句話。因為我見過沒有測試的程式碼在醫療系統中出問題的後果——那不是 404 頁面,那是可能影響醫生判讀的錯誤數據。
測試不是在浪費你的開發時間,而是在保護你的未來時間。沒有測試的程式碼就像沒有安全帶的車——大部分時候你覺得沒差,但出事的那次你會非常後悔。
五、帶人比自己做更難,但也更有價值
在公司從一個人到帶三個人的團隊,在 Snapask 擔任技術總監帶更大的團隊。每一次帶人的經歷都讓我意識到:管理不是升級版的工程,它是一門完全不同的技能。
帶人最難的不是分配任務,而是抵抗住「自己做比較快」的衝動。你花一個小時教一個同事做的事,他可能要花三個小時才能做完。但下次同樣的事,他一個小時就能做完了。你的一小時投資,換來了整個團隊永久的產能提升。
六、技術選型要務實,不要追新
我用過 ASP、PHP、Ruby、Elixir、Node.js。每一種語言和框架都有它的優點,但選擇技術的標準不應該是「什麼最酷」,而是「什麼最適合解決當前的問題」。
在 CatchPlay 用 Elixir 做高並發的轉檔系統,是因為 Elixir 的 Actor Model 天生適合這個場景。在那家公司用 PHP + Laravel,是因為團隊最熟悉這個技術棧,而且 Laravel 的開發效率最高。
最好的技術不是最新的技術,是最適合你的場景和團隊的技術。
七、持續學習是唯一不變的事
二十年前寫的 ASP 3.0 和 VB 6.0,現在已經完全被淘汰了。十年前最火的 jQuery,現在很多人覺得是老古董。五年前還很新穎的 Kubernetes,現在已經是基本功。
唯一不變的是,你必須一直學習。不是為了追趕潮流,而是為了保持解決問題的能力。技術在變,但「學會一門新技術」的能力是可以累積的——你學的越多,學新東西就越快。
八、工作和生活的平衡不是口號
為了接女兒放學而選擇遠距工作的 Snapask,在產房和離職手續之間奔波的 17 Media——這些經歷讓我明白,工作和生活的平衡不是一個可以推遲到「以後再說」的問題。
你的小孩只有一次童年,你錯過了就是錯過了。沒有任何升遷或專案,值得你犧牲和家人在一起的時間。當然,現實中總會有取捨,但至少你要有意識地做出選擇,而不是被工作推著走。
九、找到自己的定位,比追隨別人重要
看了太多技術社群的風向:今天大家都在學 React,明天都在學 Rust,後天都在搞 AI。如果你每個都追,最後你什麼都不精。
找到一個你擅長、市場需要、你也喜歡做的交集點,然後深耕下去。我的交集點是後端架構、雲端基礎設施和醫療軟體合規。這不是什麼酷炫的領域,但它讓我在每一份工作中都能快速產生價值。
十、不用崇拜技術大神
最後一個體悟,可能會得罪一些人,但我還是想說。
在社群和技術圈裡,你會看到很多「技術大神」——他們在研討會上侃侃而談、在社群媒體上有大量追蹤者、出了很多技術書籍或課程。我年輕的時候也崇拜過他們,覺得自己離他們好遠。
後來我發現,這些人大多不是真的「神」,他們只是比較懂得包裝和行銷自己。他們的技術能力可能很強,也可能只是普通。但他們有一個你沒有的技能:表達和推銷。
這不是說他們不好——懂得表達是一種能力,值得學習。但不需要把他們放在神壇上。你在公司裡安安靜靜解決問題、幫同事開發小工具、帶團隊一起成長,這些事情的價值一點也不比站在台上演講少。
同樣地,那些技術社群的大拜拜活動——研討會、meetup、workshop——很多時候本質上是推銷課程、產品或個人品牌的場合。去學東西當然好,但不用把它們當成朝聖。真正有價值的學習,更多發生在你的日常工作中、在解決具體問題的過程中、在和同事的討論中。
這十個體悟不是什麼深奧的道理。但它們是我花了二十年、跨了六個產業、經歷了三次部門解散、從一個人到帶團隊再回到一個人之後,最想跟你說的話。
如果你能在職涯的早期就理解這些,你會少走很多彎路。
但話說回來,有些彎路可能非走不可。因為只有走過,你才會真正懂。