1. 程式人生 > >軟體工程師的成長

軟體工程師的成長

  • 積累軟體開發相關的知識, 提升技術技能(如對具體技術的掌握, 動手能力) 。 例如: 對Java、 C/C++、 C#的掌握, 診斷/提高效能的技術,對裝置驅動程式(Device Driver) 、 核心偵錯程式(Kernel Debugger) 的掌握; 對於某一開發平臺的掌握
  • 積累問題領域的知識和經驗(例如: 對醫療或金融行業的瞭解) 。 第一點和第二點都可以在很多簡歷上都可以看到, 也可以比較容易地檢測出來。 隨著經驗的增長, 一個工程師可以掌握更廣泛、 更深入的技術和問題領域的知識
  • 對通用的軟體設計思想和軟體工程思想的理解。 這一方面就比較虛,什麼是好的軟體設計思想? 什麼是好的軟體工程思想? 一個工程師開了部落格, 轉發了很多別人的文章, 這算有思想麼? 另一個工程師堅持做任何設計都要畫UML圖, 這算有思想麼?
  • 提升職業技能(區別於技術技能) 。 職業技能包括: 自我管理的能力, 表達和交流的能力, 與人合作的能力, 按質按量完成任務的執行力, 這些能力在IT行業和其他行業都很重要
  • 實際成果。 絕大部分軟體工程師的工作成果都是可以公開的, 你參與的產品使用者評價如何, 市場佔有率如何, 對使用者有多大價值? 你在其中起了什麼作用?行勝於言, 這些實際的工作成果, 是最重要的評價標準。 軟體開發的工作量和質量怎麼衡量呢? PSP認為有下列4個因素:
    a . 專案/任務有多大? 說明專案的大小, 一般用程式碼行數(Line OfCode, LOC) 來表示; 也可以用功能點(Function Point) 來表示。
    b . 花了多少時間? 可以用小時、 天、 月、 年來表示。 一組人所花費的時間可以用(人數×時間) 來表示, 例如某專案花費了10個人×月。
    c . 質量如何? 交付的程式碼中有多少缺陷?