最近在跟團隊內的新進工程師分享一些功能開發上的重點,剛好幾次下來體會到新血對於coding 上的執念,例如會花一段時間想要寫出 clean code,但往往卻Over Design或是寫出讓人無法有效閱讀的結構;不單只是讓我聯想到程式碼的價值還有團隊內部的實際情況與真正要專注的問題。
作為剛踏入職場的新血,可能會覺得寫出乾淨的程式碼是最重要的。但隨著工作經驗的累積,會發現程式碼的品質其實是能轉化成具體量化指標的,比方說改善一個功能,讓它變得更高效,可能就能讓成本下降一大截,或是減少系統出錯的機率,間接降低了加班的需求。所以,不是只有程式碼看起來乾淨整齊就好,更重要的是要能帶來實際的效益。
在大公司,一切看似穩定,想要改變既有的做法可能得先了解為什麼現行的方法能用這麼久。而在小公司,可能因為資源有限,每天都在和時間賽跑,這時候如果你跟老闆說想要重構程式碼,而不是加新功能,可能會被認為不切實際。所以,做事之前要考慮公司的實際情況和當下的需求。
有時候,我們會擔心老闆不懂技術,但其實更麻煩的是懂一點皮毛的老闆,他們可能會因為自己過去的經驗而低估現在的工作量。所以,重點不是老闆懂不懂技術,而是能否理解產品的需求、公司的規模和團隊的文化,這些因素才是決定一個項目成功與否的關鍵。
從早期的打孔卡到現在各種高級語言,再到可以不寫一行程式碼就能建立一個系統的工具,技術一直在變得更加人性化、容易使用。這樣的發展讓寫程式的門檻越來越低,但這並不代表軟體工程師的需求會減少,因為工作的本質已經在改變。
選擇技術時,不一定要選最新或最好的,因為每個新技術的引入都伴隨著學習、監控和維護等成本。有時候,使用熟悉的技術,比如用 使用 MySQL 作為訊息佇列,可能會更加高效率和節省成本。所以,評估技術時,要考慮全面的成本和團隊的熟悉度。
總而言之,從初入職場的角度來看,進入職場後會發現,寫程式不僅僅是寫出乾淨的代碼那麼簡單,還要考慮到實際的商業價值、公司的狀況、與人溝通的技巧,甚至是技術選擇背後的成本考量。這些都是讓產品成功、讓團隊高效的重要因素。隨著 AI 技術的發展,未來的工作型態也許會有很大的變化,但這也意味著我們可以將更多的精力投入到創造性更高、價值更大的工作中。