我也想成為傑出工程師【124/366】

寫程式之外,傑出軟體工程師所需的六項能力 – Inside 硬塞的網路趨勢觀察

看過這篇文章後
自己其實也只是在這路上而已

一、不害怕探索陌生程式語言
二、精通 Debug
三、開發節省時間的工具
四、優化重複性工作的速度
五、發展系統性思考模式
六、化繁為簡、有條不紊與人溝通。

這篇作者是台大博士,
自然就是從學界的觀點出發

我只是個大學畢業生。
頂多幫教授做過幾個計畫案而已

也從我自己經驗講起,對應上面六項能力吧

  1. 我自己在國高中就對電腦很有興趣,雖然沒有學會很多門程式語言,但是也會寫些HTML跟簡單的javascript。那時候CSS還沒登陸台灣。上大學以後,就很認真地學習各種語言。想知道不同語言之前的優缺點。雖然大部分的教授都覺得理論完整就好,但是我覺得不同程式語言本身就包括很多有趣的設計。
  2. Debug也是我正在學習的東西,這真的只能從實務上去練習,不斷地開發與維護都會遇到類似的問題,或者是新的bug,學習更多的debug工具跟自動化手段也是精通Debug必要的內容。畢竟常見的問題其實可以從靜態分析中找出問題。
  3. 這點應該是目前我沒有做多的部分,找出自己的開發流程,從中分析出更多可以優化的部分,進而加快工作的流程,或是把部分重複性非常高的部分,使用自動化工具去執行。我也正在學,之後也會分享給大家。
  4. 這部分也是學習中,使用更多工具去分析,找出自己開發流程上花時間的部分,並進而找出可以加快的方法。讓開發這件事情更加簡單與快速。
  5. 設計系統就會不斷遇到的問題,就是新舊功能的交替,架構的更替,優化結構,優化速度,這點除了從自己的架構改善外,也可以多看一些開源的程式系統,從中學習更多好的設計模式或是更好的演算法。從不同的角度去看開發也可以得到意想不到的收穫。
  6. 這一點我覺得不容易,工程師與它人溝通,我自己也不斷地在練習,要把工程的東西,能夠清楚表達到一般人能夠明白,也可以依據對方的程度,用更快速的溝通方式讓對方了解,這點我覺得我目前大概就60分,還有很多可以努力的空間。

文章最後也有寫到,不是每個人都有機會遇到艱難的工程問題,這點我覺得現在應該有很棒的解法了,就是開園專案,各個程式語言都慢慢往開源的方向走,很多的成果都是可以在網路上找到的,當然很厲害的演算法與結構當然只有大公司有,但是多看看開源的專案,不但對於自己系統架構視野有幫助,也可以提升程式能力。

最後,勉勵每一個在前往傑出工程師這條路上的人們
不斷地學習才是精進自己的最快方式
沒有遇到問題,那就創造問題來解決吧。