﻿# 公司找不到資深前端工程師可以導入前端框架嗎？

我有很多客戶都跟我提過這個問題：「我公司想導入前端框架，不過公司內沒有人熟前端，很怕如果遇到技術問題會卡關，做不出想要的功能怎麼辦？」公司內沒有資深的前端工程師，導入前端框架確實是件痛苦的事，本篇文章將探討我對這個議題的想法與對策。

我去年 12 月到 2018 ngChina 开发者大会 演講，在第一天下午最後有場 Panel Discussion (圓桌論壇)，跟當天在座 300 位與會者一同交流，其中有位來賓問了一個問題，而他的問題我在台灣也回答過好幾次。他的問題是：「在國內都找不到會寫 Angular 的工程師，請問台上的講師有什麼辦法解決？」當時我就搶了麥克風來回答，因為我太有經驗了！😆

這個問題其實我心中有好幾種答案：

1.  你覺得用 Vue 或 React 就找的到人嗎？
2.  不管你公司用什麼框架，你覺得應徵者說「會寫」你就敢用嗎？
3.  前端 SPA 框架現在是非常火熱沒錯，但你知道 jQuery 的用戶還是占大多數嗎？

我記得當時的我是這樣回答的：「不是只有你招不到有經驗的 Angular 開發人員，我們也差不多，也都不好找，大家也都一樣。但相較於其他框架，Angular 在 Angular CLI 的幫助下，開發前端應用不再有極高門檻，反而是任何一個新人只要培訓個一兩天就能立即開工。所以在我們公司，經常會聘用沒有 Angular 開發經驗的前端工程師，經過短時間的訓練通常都能快速上手。而且 Angular 架構穩定，開發的一致性極高，任何人要參與維護一個開發中的 Angular 專案，通常不會差太多！所以這個問題，對我們來說困擾不大！」

我講完之後，台下掌聲響起，大家似乎頗有同感。會後跟大家交流的過程，也蠻多人說跟我有相同的見解，公司在培訓新人方面也不太會有問題。

### 前端框架的選擇障礙 (個人)

這幾年前端框架之間的戰火已經大致底定，Angular、Vue、React 三強鼎立之下，先不論誰強誰弱，總之都各有擁護者，喜歡的就是喜歡，不喜歡的大概也沒力氣換，這就是目前殘酷的事實。公司如果已經選用了特定框架，你就用什麼，不都是這樣嗎？

也曾經有人問過我，在外面找工作，要找 React 的工作好像不少，用 Vue 的也很多，而 Angular 的工作機會相對較少，這樣是不是不要學 Angular 比較好？

我必須說，身為一個求職者，光看求職市場的大盤是沒啥意義的，因為不是每一間公司你都想去，而你也不知道哪一間公司適合你去。我相信去學 React / Vue 的人應該也不少，但為啥我身邊有許多朋友都在抱怨找不到 React / Vue 的好手，甚至抱怨找來的人都在亂寫，Code Review 看到吐血。

事實上，學任何一門技術或框架，都應該要深入核心，掌握技術原理，更能夠舉一反三的快速解決問題，這才是確保找到好工作的不二法門。有些基本功，不管你學哪一個框架都需要花時間了解，沒有藉口。但我也相信，不是每個人都能成為**資深前端工程師**，不管你有幾年的工作經驗都一樣，但是解決問題的能力與態度，應該是每個人都需要具備的。

所以，話說回來，前端框架的選擇不是重點，因為這三大框架，你熟悉任何一套，都應該很容易找到不錯的工作。今天你對 Vue 有愛，再多的困難你也會想辦法解決。今天你喜歡 Angular 的設計，它每出一個新版本你都會感到興奮。我們就是在這樣的心態下不斷進步。

### 前端框架的選擇障礙 (組織)

前端框架的水很深，沒有人帶領，真的會學的很慢，甚至於覺得不值得投資時間在上面，乾脆繼續用 jQuery 算了。

由於我這些年都在各大企業擔任講師與顧問 ([有顧問需求可以點這裡](https://www.duotify.com/Consulting/))，協助企業導入 Angular 前端開發框架，我發現大部分企業都有以下狀況：

1.  企業中大多是後端開發者，懂一點 JS 與 jQuery 前端開發。
2.  後端開發者大多熟悉 **物件導向程式語言** (OOP)，並以 C# 與 Java 為大宗。
3.  許多老舊的後端框架維護不易，新人都不會舊式框架，訓練成本高，人才又不容易留住。
4.  有許多後端框架混和前端(jQuery)的 Web 應用，程式碼複雜度過高，不容易理解與修改。
5.  公司內大多沒有資深前端工程師，想導入前端框架卻不得其門而入，也會非常擔心卡關，寧願繼續使用現有架構。
6.  許多企業的 Web 應用又多又雜，不像是官方網站那樣單純，都是功能多、表單欄位複雜、有些操作互動也相當繁瑣。

會找我去授課或顧問的企業，通常已經經過深思熟慮，知道自己為什麼要選擇 Angular 當作他們的主要前端框架。我老實說，Angular 在框架完整性、穩定性、執行效率、開發工具支援、開發風格的一致性、版本升級容易等多方考量的因素之下，是最能全面兼顧的框架，我並不是說 Angular 是三套裡面最簡單的，但是對於企業與團隊開發者來說，是最適合不過的選擇了！

但是，最近我也聽到了一些聲音，他們提到 Angular 很難懂 (沒人帶)，React 好難學 (Redux)，但 Vue 好像比較有趣 (簡單好理解)。這個現象很有趣，因為在前端界，你什麼聲音都聽的到，有人覺得難，就有人覺得簡單，為什麼會這樣呢？因為前端的水太深了！每個框架都有各自的特性、用法、習慣，不是每個人都適合。

有些剛入行的前端開發者並非科班出身，沒有學習過任何計算機概論、程式設計原理、資料庫系統、作業系統、演算法等知識。有些人甚至完全沒有任何 OOP (物件導向程式設計) 觀念，沒寫過任何後端程式，入行才剛學 HTML 與 CSS 語法，人生第一個程式語言就是 JavaScript，只用過 jQuery 或 jQuery Plugins 等函式庫。這時，我又要推薦我先前寫的文章【[我要成為前端工程師！給 JavaScript 新手的建議與學習資源整理](/post/2016/02/02/JavaScript-novice-advice-and-learning-resources.aspx)】，建議大家可以再看一次！

對於 Vue 與 React 來說，開發風格較不受限，你想用什麼風格開發都可以，一開始只要有範例程式可參考，很快就可以上手。但這件事一體兩面，風格不受限制的背後可能會帶來許多維護性的問題，程式碼的品質難以控管，需要有前輩定義風格，甚至於找到適當的工具來限制開發者的寫作方式。

但對 Angular 來說，開發風格較偏物件導向架構(OOP)，所有的元件都是 class (類別)，只用到少許的 function (函式)，對於後端工程師來說容易上手。且在 Angular CLI 與 Visual Studio Code 的幫助下，開發架構會趨於一致，而且內建 TSLint 可以限制程式碼的寫作風格。就整體架構來說，對於不擅長 OOP 的開發者來說，確實有不小的學習門檻，需要有前輩帶領比較容易上手。但如果只是跟著現有架構寫 Code，完全沒有問題，而且通常可以維持一定程度的品質！(凡事總有例外)

### 公司需不需要有個資深前端坐鎮？

選用前端框架，有個很重要的目的：**能快速的解決各種 Web 開發需求！**

如果你沒有這種需求，建議你還是不要這麼快做決定，繼續使用現有的框架，或許是不錯的選擇。

任何一套 Web 應用程式，都有可能會越寫越多、越寫越複雜，例如：HR 系統、ERP 系統、HIS 系統等等。就算你做電子商務，除了購物網站外，後台的內容管理、訂單管理、客服管理、帳務管理... 隨著時間累積，複雜度也會越來越可怕。

所以我在談前端框架的時候，基本上是不太考慮「簡單需求」的情境，因為任何一個簡單的系統，發展到最後都會很複雜，並不存在現在架構很簡單，以後也會很簡單的情況。如果我可以預想到未來不會很複雜，那麼我也可以說，選擇任何一套框架，或是不選擇任何一套框架，都是正確的選擇！

在前端界，有多少人敢說自己資深？新技術每隔兩三年就會出現一個大的，然後換掉幾個式微的，開發工具每年也都推陳出新，哪可能有人全部都會！比較合理的徵才方式，應該是找到有學習能力，見多識廣的前端工程師，他可以迅速理解前端技術，能夠找出適當的工具輔助開發，能幫助同事不斷進步。這種人，不一定要**資深**！

對企業來說，只要能快速解決問題的技術，就是好技術，因為市場不等人，沒時間給你慢慢學。今天會想要選用前端框架的企業，肯定面臨許多痛苦，並且力求改變，不然不會這麼困擾，硬要去學一門自己不熟的技術。

這裡我列出兩種可能的情境：

1.  公司**可以找到**資深前端開發者
    
    如果你是新創公司，有著大好前景與股票分紅的吸引下，很有可能找到不錯的人才。有許多的新創團隊，老闆自己本身就是技術人員，撰寫程式不假他人之手，這當然沒啥問題。但如果創辦人不是技術背景，又沒有好的技術合夥人可以擔當技術後盾，那真的就非常辛苦了，如何**選**、**育**、**用**、**留**每項都是難點。
    
    我從朋友圈中觀察得知，大多能找到資深前端開發者的公司，都是大的、賺錢的 (或拿很多錢的)、有前瞻性的公司居多，像是遊戲業(博弈)、新創公司、網路公司、外商、區塊鏈公司、人工智慧相關公司等等。這些公司賺錢，肯給薪水 (砍人也不手軟)，有能力的人通常會趨之若鶩。
    
    我最常聽到的例子，就是大家都說美國矽谷有超過 80% 的公司都用 React 前端框架，幾乎大部分世界最前沿的公司都用 React 打造自家的 Web 應用。採用 React 不是問題，問題是他們選擇用 React 的理由，是基於 React 的彈性、效能與自由度，任何人都可以利用 React 打造出最適合自己的 Web 技術框架，每間公司都在打造自己的框架。我必須老實說，這個優點，可能不適用你公司，甚至不適用於大部分的台灣企業，因為大部分企業不需要打造自己的 **前端技術架構** (Frontend Technology Stacks)！
    
    許多初學者並不清楚 React 只是一個函式庫，並不是一套完整的前端框架。而從一個函式庫發展到一個最適合自己公司用的技術架構，是需要**眾多資深前端開發者**共同創造出來的，一般中小企業或傳統中大型企業，並沒有這樣的養分、文化，可以自己打造技術框架。而且打造技術框架需要大量人力、時間、成本，沒有足夠的市場，企業本身沒有很賺錢，其實沒有必要走這條路。
    
2.  公司**無法找到**資深前端開發者
    
    一般中小企業想找到資深的前端，簡直難上加難，可以說幾乎不可能。
    
    以我公司為例，我們公司是一間技術導向的軟體公司，專門為客戶打造量身訂製的 Web 應用程式，公司不過二十多人，是個十足的小型企業。但我們採用的技術相對新穎，公司有強大的學習文化，每個人在我們公司都會有意識的不斷成長，相對一般中小企業來說，我們比較有機會找到資深前端，但是比例還是相當低。我們的替代性作法，就是找到資質好的前端人 (但不資深)，並讓每個人都有機會快速進步，在短時間內變成**資深前端工程師**。我這樣實行了很多年，效果相當不錯！
    
    如果你是中大型企業，有個數十人的 IT 團隊，自己有能力開發系統，但是前端還不上手的話，如果能找到厲害的前端好手加入，那就真的如虎添翼。若選用 Angular 或 Vue，厲害的人不用太多，一兩位就夠了，透過老司機帶路，團隊很容易短期獲得效益。不過，老公司的企業文化改變不易，要能吸引到資深的前端好手是相當不容易的，這時找顧問協助導入前端框架，是最好不過的選擇！
    
    在我這幾年的顧問生涯中，我幫助許多企業開發者認識 Angular 開發框架，用既有的 OOP 觀念來理解，只要幾天的訓練課程，一下子就能快速上手，有效率的開發 Web 應用程式。接下來的幾個月，只要透過顧問定時的 Review 開發架構、程式撰寫風格、工具的選用，很快就可以進步到自給自足的地步。我個人認為這樣的投資非常具有經濟效益，一來不用擔心找不到人，二來可以讓現有員工能在短時間內生產力快速提升！
    

所以我們回到原本的問題：**公司需不需要有個資深前端坐鎮？**

我的答案是：**有最好，因為前端水很深，有經驗的好手可以帶領團隊提升戰鬥力！如果沒有的話，強烈建議可以找專業顧問幫忙導入，畢竟時間就是金錢，與其讓大家慢慢碰壁，倒不如直接請老師來教，降低學習成本，減少犯錯的機會！**

[![](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/18e42e4c4b5fe42c3c56-image_3173.png)](http://bit.ly/duotify_services)

相關連結

-   [2018 企業前端框架趨勢論壇之問答回應 (完整版)](/post/2018/09/25/2018.aspx)
-   [我要成為前端工程師！給 JavaScript 新手的建議與學習資源整理](/post/2016/02/02/JavaScript-novice-advice-and-learning-resources.aspx)
