資深工程師一定要學的三件事

·

1 min read

在軟體業打滾一陣子之後,多少都想知道有什麼條件才能稱得上資深工程師。由於去年也終於晉升為資深工程師,回首這些年的經驗,我統整出了三個必學的技能,希望給還在這條路上的你一些幫助。

1. 解決問題有自己的一套思路

當你在產業中打滾了幾年,會發現除了接案公司之外只有少數公司會剛好有新的專案讓你有從0到1建置的機會。絕大多數以產品為主的工作都是優化舊有系統或是在系統上加入新的功能。因此在遇到系統bug的時候,要如何分析問題變得更加重要。因為你可能還沒時間了解整個專案的架構,但已經需要開始修改程式以證明你的價值。

資深的工程師會以問題的核心出發去思考可能的原因,從工具上去檢查並釐清實際的情況。最後才會著手開始寫程式。

以網頁開發舉例:

ex: 有user反應網頁圖片顯示不出來

資深工程師可能會先提出的問題:

  1. 圖片存在哪裡 (前端靜態資源還是由API取得)
  2. 網路的環境是如何
  3. 使用的瀏覽器
  4. 使用的詳細行為是什麼
  5. 使用者預期的行為是什麼

為甚麼資深工程師不是一開始就寫程式? 因為他們知道只有明白問題的根本,解決才有意義。像醫生幫病人看病,需要詳細了解情況之後才能開出符合情況的處方,對症下藥。

2. 凝聚團隊共識並了解團隊的重要

在公司能力建立起來後,你會發現時間開始不夠用。資深工程師會意識到個人的程式貢獻,並不能在專案中有什麼巨大的改變。於是會透過分享與會議來同步大家對事情的認知與理解,因為他們知道只有大家的想法越接近,專案才會進行得更有效率。這也是為甚麼資深工程師適合帶領新人的原因。

ex: 每個工程師在專案裡面函式命名規則沒有統一,導致維護困難。

首先你必須先意識到這個問題。以工作3 - 5年,有大型軟體開發經驗的工程師來說,這時候就需要與主管與團隊的所有人進行討論並提出相關的解決方案,這樣才能讓整個工作流程更順暢。

3. 了解軟體設計模式

當職業生涯越來越長你會發現工程師除了開發之外更需要學習的是如何維護程式碼。這也是為甚麼上面會用 "函式命名規則沒有統一,導致維護困難" 來當成案例的原因。

長期維運一個四不像的案子(可能已經被三組不同的工程師維運過)時,不難發現它可能有因為沒有規劃與管理而導致的以下種種問題:

  1. 檔案超過千行,難以維護
  2. 每個人有自己獨特的程式寫法,一致性低
  3. 沒有適當拆解功能,導致邏輯複雜難以修改

以上問題都可以由設計模式的一些基本概念來解決。因此,當面臨到以上這些問題時,資深工程師就會利用設計模式嘗試重構既有的程式碼,減少未來維運的難度與成本。

工程師的學習之路很長,我們需要在趨勢中成長並且持續學習才能找到最佳的解決方案。未來也會寫有關設計模式的文章與大家分享我在開發上的經驗。