關於寫出好程式的學習觀念

有人說,凡事只要花許多時間,就能做好一件事。

又有人說,只要掌握技巧就能寫好程式。

經過幾年的工程師生涯和N次面試,我自己的答案是:

  • 有些技巧或方法若沒有刻意學習培養,做再久,其程度也近乎畢業生
    • 例如:
    • 專業領域知識(ex: 圖學/人工智慧/……)
    • 應用領域知識(ex: 物聯網/車聯網/線上購物系統/……)
    • 物件導向/大型軟體系統設計/分散式系統設計/程式語言的能力與特性

  • 有些寫法或內功,需要大量時間學習
    • Coding style
    • 寫出簡潔的code(含演算法運用及降低time complexity、易讀、好維護)
    • 對程式語言/工具/平台的掌握度

我自己覺得兩者都很重要,因為程式的效能與擴充性、工程師開發的速度與生產力,都深受上述兩者影響。