嗨~ 歡迎閱讀第 42 期 ExplainThis 全端雙週報。2024 已經進到最後一個月了,天氣也越來越冷,希望讀者們在季節轉換之餘,能照顧好身體健康。
這期的雙週報主題是「資深工程師的視角轉換」,會從 Google 首席工程師 Jaana Dogan 的分享切入。這篇會是從工作的角度談,先前我們有寫過一篇《如何在行為面試讓人覺得你像資深工程師?》 則是從面試角度談,推薦感興趣的讀者可以一讀。
以上,讓我們進到本期的主題文吧!
資深工程師的視角轉換
前 GitHub 首席工程師 Jaana Dogan 先前退休後,先前重回業界加入 Google。先看到她分享一則推文,在談高效主管的共同特徵 (連結)。
她的原文寫道: All the effective execs I know had one common trait: They knew their job was to make a few very important decisions, rather than making 100s of small ones.
They spent their time developing technical depth to make those decisions. They built and organized their teams accordingly.
如果要用中文理解的話,她的觀察認為,高效率的主管的共同特點是「他們知道自己的工作是做出幾個非常重要的決策,而不是做出數百個小決策」。
因此,高效主管會花時間培養技術深度,以做出這些決策。同時,高效主管也會基於此來組建自己的團隊。
讀這則推文時,想到先前聽一位資深前輩說,在面試中要區分中階或資深工程師,往往不會是透過程式題,而是透過行為面試 (或系統設計面試),因為很多中階工程師能解出困難的程式題,但不必然會有資深工程師該有的行為表現。
Jaana Dogan 提到的「做出幾個非常重要的決策,而不是做出數百個小決策」即是一種行為上的區別。如果你總是花大量時間在小的決策上,而沒有留精力給重要的決策,或者沒有花時間培養深度技術來做重要決策,就很難邁向資深。
進一步說,在充滿噪音的現代,能夠準確判別什麼「不該」花時間,並專注在最重要的事情上,會是資深工程師不可或缺的。
假如想成為資深工程師,這種視角的轉換是必須的。除了這種轉換,還有幾種視角轉換,是邁向資深工程師時不能缺少的。舉例來說,初階與中階工程師會聚焦在完成專案,但是資深工程師需要進一步去思考如何制定標準 (standard),意即要去思考團隊如何做事。這是因為用什麼標準做事,會大大影響整個團隊的產出。
舉例來說,資深工程師會去優化程式碼審查 (code review) 的標準,來確保團隊的程式碼品質能持續提升;又或者資深工程師會去改善新成員入職流程,來確保能讓整體入直效率獲得改善。
這些改善的槓桿 (leverage) 非常高,以程式碼審查標準來說,如果標準變更高,之後的每一次程式碼提交的品質都會變好;優化入職流程也是,如果改善了效率,之後十位、百位,甚至組織擴大到千位新入職的效率都會變好。
統整來說,從視角轉換這個觀點來看,以下是推薦在四個重要的衡量維度上,資深工程師要做到的
技術:在系統設計與程式碼品質,都能達到帶領團隊的層級,舉例來說,如果只是自己重構和清理程式碼,是屬於中階工程師的等級。而資深的等級則是需要,更進一步帶領團隊來共同優化程式碼。負責的專案是以半年度 (6 個月) 為單位的大型專案,且會是當別人有技術相關問題時,第一個會找的人。
方向:設定團隊等級的技術方向,甚至開始做到跨團隊層級的方向設定。能夠辨別做什麼東西有影響力,並帶領團隊往該方向前進。與中階工程師的差異在於主動性,中階工程師仍屬於被分配專案,但資深工程師則需要進一步推動團隊規劃,並建立多個中到大型功能的專案路徑圖
團隊:有效與工程經理協作,讓工程經理知道什麼重要,以幫忙爭取資源。同時協助指導團隊的初階、中階工程師在技術面的成長,例如透過技術評審、程式碼審查的回饋來協助其他工程師成長
商業影響力:總是會把終端使用者需求放在腦中,能帶著產品思維,來確保技術決策有對終端使用者的影響力。當沒能達成預期指標,能迅速辨別原因,並帶領團隊一同改善
希望透過這期雙週報,讓讀者更清楚了解。如果你有朝一日想成為資深工程師,不如從現在開始,試著轉換自己的視角吧~
除了上面提到的「留精力給重要的決策」、「培養技術深度」,以及「制定標準」外,資深工程師還有許多重要的特質,我們在 E+ 有完整的資深工程師檢核表,以及詳細的說明。有興趣的讀者可以參考 (點此了解 E+ 的詳細介紹)。
[本期推薦]
進到十二月,也意味著各類 Advent Calendar 如火如荼進行,分享幾個今年有看到的,包含 Advent of Code、Advent of TypeScript、Advent of Docker、Christmas Code Hunt、Debug December,非常推薦想透過實作挑戰提升自己的讀者
除了 Advent Calendar,最近 OpenAI 在連續 12 個工作天,每天會有一場小直播做發表,有興趣了解 AI 界最新近況的,推薦可以一看 (連結)
Vite 6.0 推出了 (連結),對 Vite 不熟的讀者,可以看我們先前寫過的《Vite 是什麼? 為什麼要用 Vite?》 (連結)
除了 Vite 有新版本推出,這週 React 19 也正式進入穩定版 (連結)。談到 React,前陣子 million.js 推出 react-scan (連結),實際展示的成果非常驚人 (連結)
本地優先是近年來的軟體趨勢《A Local-First Case Study》一文用實際案例來探討這個軟體設計趨勢 (連結)。對這主題不熟的讀者,可參考先前我們寫過的《本地優先 (local-first) 的軟體設計》一文 (連結)
今年來前端的 a11y 越來越被重視,這篇《Beautiful focus outlines》談到在這個脈絡下,如何寫出好看又兼具 a11y 的聚焦邊框 (連結)
如果在面試中被問到「如果要處理權限的管理,該如何設計?」,你會如何回答呢? 假如沒有概念的話,可以參考《權限管理設計》一文 (連結)
ExplainThis 團隊的 Li 今年搬到日本工作,最近寫了在留資格認定証明書 (COE) 心得 (連結)、高度人才簽證的辦理心得 (連結),有興趣的讀者可以一讀