全端工程師這個詞是最近十年才出現的
我的感覺是因為前端技術的發展迅速
導致傳統web開發技能樹在前端大幅增加
在SPA流行之前,web開發技能很單純就是後段語言
加上HTML & 基本CSS
JS在那個年代差不多只是用jquery跑簡單的UI
一個專案可能數萬行後段程式碼
前端的JS只有幾百行
在這樣的時空中,web工程師實際上重心放在後端語言
隨著SPA興起,前端框架與技術的進步
現在的前端開發已經不再是簡單的事情
需要專精的人才去處理
前端工程的複雜度早就不亞於後端工程
而全端工程師的誕生我認為與相關工具的進步直接關聯
由於各種工具的輔助,大量節省工程師的時間成本
才可能會有全端工程師這樣的職位
我個人認為全端工程師真正的價值
不是一個人可以同時做兩件事
而是由於對兩端都有涉獵
因此可以從系統整體面相規劃設計
例如在實現功能的時候可以設計出彈性的API 規格
此外在中小型團隊中,可以依照任務目標靈活調派人手
目前在我工作的團隊中,每個人都是全端工程師
最基本的門檻是
前端技術方面,了解JS基礎特性
後端技術則是著重於基本演算法
系統設計方面要能夠考慮到大型系統的運作及延展度
我自己面試別人的時候都還會問一個 JS 題
意外的是大概2/3的人答不出來,但是這個題目
是我覺得全端工程師在前端技術上的最低門檻
題目是
for(var i = 0; i < 5; i ++) {
setTimeout( function () {
console.log(i);
}, 0);
}
問:輸出為何?
再問:如何輸出0到4
至於後端問題我通常找leetcode medium 問
此外我們面試絕對不會問框架問題
因為我們認為優秀的工程師不應該受框架限制
而是能夠快速學會任何框架
而且我們用的框架是內部設計
問了三大框架問題也沒用