軟體工程師在做什麼?為什麼我想當軟體工程師?

這是一個我仍在思考的問題,這邊紀錄我當前的想法而非結論。

  1. 學習
    我很喜歡從未知到已知的過程,從理解問題開始,了解手上的工具並建構解法
  2. 建構服務
    編寫程式碼在Server上執行,接受請求,轉換成對人有意義的資訊
  3. 編寫知識
    1. OOP, Data schema 是在對世界建模,反應著我們對世界的理解
    2. 程式碼流程,反應的是對流程、商業運作的理解,將混亂化作具體可被執行的演算法
  4. 處理複雜性
    這可以在所有設計的原則上看到
    1. Abstraction
    2. Easy to change, Don’t repeat yourself
  5. 回饋感
    這個想法是基於自己過去讀統計時,讀完一個觀念不確定能用在哪裡,也不確定自己有沒有真的理解,沒有很明確的回饋,告訴我這個觀念是否已經被吸收了。
    然而程式的錯誤是很明確的,容易知道自己投入的方法是否有問題,並且能夠透過回饋去修正。

困惑

  1. A never ending craft
    我一直很好奇軟體作為一種創作的媒介,它的性質是什麼?還有這些性質對人的影響是什麼?
    不像是一個木雕或工藝品,在完成後有一個成品的狀態,帶有穩固性。軟體似乎永遠沒有完成的一天,永遠有bug、永遠要加新東西、永遠要應付變動、永遠沒有完成的狀態,是一個極度流動的媒介。
    這樣的感受,就像是在海邊蓋沙堡一樣,維持著一個隨時會垮掉的結構,讓我有種不穩定焦慮,了解到價值難以累積,成果懸在半完成狀態的感受。