近日跟之前在 Alpha Camp 帶的學生一起出去玩,在他找到工程師的工作之後,稍微跟他聊到了目前工作的情況以及碰到的困難。有一個部分我覺得特別的有趣:不管是什麼程式語言,大部分都會有每個禮拜分享最近技術上面的進展,或者一些新套件的分享,但如果資深的工程師覺得這些新的技術都很酷,但是不知道有什麼用,那還需不需要學習新的技術?
個人認為這個問題,對公司來說可以分成兩個部分來探討:
- 公司目前的專案在系統上是否有遇到任何的瓶頸,如果有的話,尋求新的技術或者是一個可行的解決方案;但是如果沒有的話,目前的程式碼就已經可以解決公司使用程式碼的情境,所以沒有需要去進行任何的更新。
- 公司如果要求穩定為主,讓已經穩定的程式碼留在codebase 裡面,本來就是一個比較理性的解答。除非今天公司的產品上面又有另外一種新的使用情境,而該情境剛好符合新技術的範疇,那當然可以拿來試試看。
但身為工程師,公司固然重要,更重要的事自己的知識擴展,縱使資深工程師覺得新技術不知道要用在哪裡,但是自己應該還是需要知道(或者動手實作)新的技術。個人認為的原因有:
- 縱使目前沒有任何的使用情境可以用到,但難保你有一天公司想開發新功能,或者接了一個新的專案,新技術可以派上用場,那你當然不需要再花時間去做研究,便可以提出解決的方案。
- 如果目前的公司自我的成長到了一個瓶頸,想要到其他的公司看看的話,說不定其他公司也會需要用到新的科技。
- 將新的技術以及舊的技術做比較,如果覺得可以運用在目前公司產品或者專案的使用情境上,也可以提出想要開發的意願,如果成功了,這一筆改進還可以放到履歷上。
- 身為軟體工程師,無止盡的學習就是第一要務,千萬不要覺得其他人說不重要,而不去了解新的技術。