Skip to main content

閱讀筆記: 「20年工程師生涯教會我的 20 件事情」

· 5 min read

標題: 「20年工程師生涯教會我的 20 件事情」 類別: others 連結: https://www.simplethread.com/20-things-ive-learned-in-my-20-years-as-a-software-engineer/

本篇文章是作者談談自己工程生涯近 20 年的經驗,聊聊 20 個作者覺得很值得跟大家分享的一些想法與經驗。 開頭作者就說,所有的建議與經驗分享最重要的就是脈絡,沒有了脈絡所有的建議可能都沒有任何用處,甚至可能會對你有害 所以作者先表明自己的一些經驗,包含

  1. 前半職業生涯作為一個小型公司與新創的軟體工程師。
  2. 顧問人生同時加入規模非常大的公司
  3. 創立 Simple Thread 這間公司從兩人團隊一路成長至今

這邊節錄幾個經驗,整體來說我認為全部都滿不錯的,都推薦當作心法去看待,甚至也可以作為一些討論的主題。

  1. I still don’t know very much: 不知道你有沒有很常聽到別人說「你怎麼會不知道 BGP 怎麼運作?」「你怎麼沒有聽過 RUST ?」,軟體世界的有趣點不論你怎麼學習,每天都有會展新的技術被發展出來 你於你專精的領域努力了十年,對於其他人的領域你會發現還是有很大一片空白需要學習。 所以請認知這一點,軟體世界龐大本來就很容易有不知道的事情,然後保持謙虛的去面對這一切,不要用一種別人都是白癡的態度來質疑別人

  2. The best software engineers think like designers 最好的軟體工程師其思路不單純只是滿足功能,而是如同一個設計師一樣,會去思考設計的這個軟體各種使用,包含外部 API的設計,使用者介面,甚至要去考慮 使用者會怎麼使用,使用者為什麼會想要用等,將使用需求放到開發的第一順位才能夠打造一款真的是很適合使用者使用的軟體。

  3. Look for technological sharks 那些發展許久至今仍活躍的技術能夠於現在這個迭代快速的世代存活下來必定有其價值與原因,如果今天想要替換掉這些技術一定要有很好的理由與評估,不要單純冒然基於 新技術好像比較好就去替換。這些舊有的技術與工具也許用起來沒有現在這麼潮,但是其穩定性與良好的表現絕對能夠讓你晚上好好睡覺

  4. Every system eventually sucks, get over it 軟體開發中沒有一個正確的架構,所有的人無時無刻都在處理相關的技術債,所有開發的介面過一段時間都會因為情境不同而需要改動與重寫,你撰寫的測試永遠都不足夠。 但是這些概念並不能當作一個不往前邁進的理由,相反的就是因為知道沒有一個完美的架構,所以才要更有系統地去持續精進整個架構,永遠都有值得改善與變好的地方 透過不停的循環這個開發流程才能夠讓整個軟體愈來愈好。

文章中還有其他 16 個非常實用的建議,非常推薦大家閱讀閱讀