軟體工程師應具備的 5 個思維與態度

2022年12月11日

💎 加入 E+ 成長計畫 與超過 500+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源

《邁向資深工程師系列》是筆者近期讀各個業界資深工程師的書與講座,總結下的筆記。主要是希望能夠透過站在巨人的肩膀上,來了解可以如何更快邁向資深工程師。於此將筆記分享給同樣想邁向資深的大家。

本篇文章將會記錄筆者讀到資深工程師分享的重要思維與態度。這篇文章內容將會持續擴展,當我讀到新的重要概念時,會持續新增到文章中。若有聽到相似概念但不同陳述方式,也會補充到各個要點中。

1. 打好基本

交給自己的任務要做好,在做好基本的之前,不要好高騖遠。很多人可能覺得自己被分派的任務不重要、很無聊;但換個角度想把簡單的事情做到極致,本身就是件有挑戰的事。在你把分派的任務做到極致前,與其抱怨,不如試著挑戰自己。此外,如果連最基本的都沒有做好,很難贏得別人的信任。當你能把基本的最好,也比較能為自己贏得更大的任務。

2. 了解自己

在做好基本的之後,就要主動去思考自己自己想做的事、想成為的樣子。有些人選擇持續往技術鑽研,成為技術專家;有些人轉向管理職,成為工程經理;甚至有些人轉向產品端。走哪一條路沒有標準答案,重點是要知道自己要什麼,成長是自己的事情。可以了解別人如何成長,但別人的都只是參考。當有了自己的目標,圍繞在自己身旁的都是資源。你的主管是資源、你的同事是資源,你待的公司可以用大的小事都是你來達成你目標的資源。

3. 從捕鼠器看不同層次的工程師

百度前技術副總王夢秋說過一個關於捕鼠器的故事。一個工程師被交付一個任務要改進捕鼠器,初階的工程師可能會先去研究現在捕鼠器哪裡做不好,然後將不好的地方優化;又或者上網找資料,看看比較先進的捕鼠器怎麼設計,並從別人的設計中學習如何改進。

然而資深的工程師,會做的則不一樣。他們會去想,我們為什麼需要捕鼠器? 因為我們要捉老鼠。能提出這問題就跟初階工程有很大的差別。因為提出問題後可能發現,問題不出在捕鼠器本身,可能是出在我們部署捕鼠器的位置與數量。又或者捕鼠器本身是治標不治本,要治本的話應該要去想怎麼解決老鼠的來源。

更資深的工程師會想,為什麼我們要對抗老鼠? 原來背後的原因是要保護糧食。那這時解決問題的方向會完全不同。假如能有一個方法可以讓糧食的保存不擔心老鼠,我們甚至不需要去想如何解決老鼠的問題。

因此,在解決問題前,先問問自己「你要解決什麼問題? 為什麼要解決這問題? 這真的是你要解決的問題嗎? 」

4. 上左右外

身為軟體工程師,除了埋頭做好自己的任務外,可以試著多往上、往左右、往外看

  • 向上看你的主管在解決什麼問題? 有哪些你可以做? 哪些你有更好的方法?
  • 向左右看其他同事做的項目,讓自己不只是在自己負責的單點上,能又更廣的拓展
  • 向外看業界的新技術、趨勢,用業餘時間學不同技術、寫寫 side projects

5. 了解你的客戶

很多軟體工程師會陷入一個誤區,就是只看技術不看客戶。假如你是做面對消費者的項目,你需要時時關注終端使用者的需求;如果你是做讓其他團隊對接的項目,你則會需要時時關注其他團隊的動態。不論做哪種項目,你要知道你最重要的客戶是誰,並要時時跟這些大客戶溝通。同時也要建立收集反饋的管道,讓你可以更容易收集到客戶的反饋。

同時,在開發項目時,不能直接假設客戶懂你的領域。舉例來說,假如你做的項目是開發 API,在設計接口時,不該暴露太多的細節,因為你的客戶理當不該去煩惱那些細節;同時要讓接口夠傻瓜、夠易用,讓你的客戶可以很容易上手你開發的東西。

🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們