EnriqueMark
隨筆

關於全棧

2026-02 繁體中文

確實有一種觀點認為全棧工程師雖然很好,但問題是知識只有廣度而沒有深度,不夠專業化。從某種程度上我其實贊同這一點,但另一方面,我認為這種看法只側重了表象,而忽略了其他核心因素:

  1. 存在一個職業叫作架構師,本身就要求對前後端都有深入的瞭解。

  2. 技術底層邏輯是共通的: 前後端在底層程式設計知識上是相通的。 (a) 程式語言:無論是後端的 Java、C#,還是前端的 JavaScript、TypeScript,它們的設計原理往往是層層繼承並相互發展的。 (b) 效能調優:將其還原到本質,其實都是資料結構和演算法的問題,只是加上了特定的領域知識。

前端和後端雖然在功能和職責上有所區分,但它們都共享在「程式設計」這個大的通用領域裡。因此,全棧工程師也可以學得很深,重點在於不能被表象上各種各樣的工具和框架所迷惑,而是要去學習那些更本質的東西。

這就像社會科學,包含政治學、經濟學、歷史學等不同學科,有人會覺得涉獵太廣就不可能精通。但實際上,在更深入的層面上,社會科學有其共通的方法論。如果把這些本質的東西吃透,不同學科間的轉換就會非常輕鬆。甚至是在跨學科、跨領域的範圍內,能夠看到一些被單一領域知識所限制的問題。反而沒有那些因過度專業化而導致知識框架和整個結構都被限制的缺點,從而看到盲點,創造出新的東西。

這就是我的核心論點:全棧工程師也可以很精通。只要你對本質原理有足夠深的瞭解,剩下的只是花時間去熟悉底層原理之上的具體用法。

這個熟悉過程其實很快。比如:

  1. 前端:處理大量資料查詢時的效能最佳化,本質是演算法問題。
  2. 後端:面對大量流量引入時的排程處理,本質同樣是演算法問題。

歸根結底,只要你對底層原理的掌握足夠紮實,再往上的應用層開發自然也難不倒。

從學習上來講,全棧開發要求更強的學習能力和更廣博的知識,這一點本身就是門檻,所以成為一個資深的全棧工程師確實是有難度的。這也是為什麼很多人都會傾向於走專業化的道路,因為他們對特定領域更熟悉,操作起來也比較順手,這點我非常理解。而我本來就對各個領域都感興趣,跨度也很大,對我來講這反而無所謂了。畢竟,我一直都是這麼學習的。