天天看點

《建構之法》讀書筆記第3章

第三章講的是軟體工程師的發展。主要從軟體工程師的評價方法,團隊期望和技能的反面進行闡述,并對應的分為3個小節。

在第一小節中講的是個人能力的衡量與發展。對于初級軟體工程師的成長,從以下5個方面開始:

  1. 積累軟體開發相關的知識,提升技術技能
  2. 積累問題領域的知識和經驗(例如:對醫療或金融行業的了解)
  3. 對通用的軟體設計思想和軟體工程思想的了解。
  4. 提升職業技能
  5. 實際成果

其中要注意職業技能和技術技能之間的差別,溝通表達能力,自我管理能力等在IT行業也是相當重要的。在這裡也可以擴充閱讀《軟技能》一書,尤其是要注意溝通能力,好的程式猿應該不僅僅擅長與機器的溝通,與人的溝通方法也很重要。不僅工作上會有促進,生活上也會受益良多。

而工作量和品質的衡量,通常由項目大小、花費時長、每千行代碼bug數量、能否按時傳遞四個方面進行比較。其中“穩定、一緻的傳遞時間是衡量員工能力的重要方面。”

相對于PSP(Personal Software Process),團隊軟體流程(Team Software Process)對團隊成員以下七個因素的要求:

  1. 交流:
  2. 說到做到
  3. 接受團隊賦予的角色并按角色要求工作
  4. 全力投入團隊的活動
  5. 按照團隊流程的要求工作
  6. 準備
  7. 理性地工作

第二小節講的是軟體工程師的打怪更新。職業成長上有書中列舉了三種評價體系:

  1. 考級 (職業資格認證、行業協會認證等)
  2. Steve McConnell版本(入門->數量->帶頭人->大師)
  3. 大公司版本(谷歌和微軟等對工程師都有自己的認定标準,書中以微軟為例:SDE->SDE II->Senior SDE->Principle SDE等(初級軟體開發工程師->中級軟體開發工程師->進階軟體開發工程師->首席軟體開發工程師等)

    書中還特别列舉了一個list進行自我評估,可友善的進行自我評估和追蹤

    現代軟體工程 課件 軟體工程師能力自我評價表

第三節是技能的反面,以魔方為例提出了疑問:什麼是精通?

很多同學在面試的時候在履歷上都寫精通某某語言,對應的如果你履歷上寫的是:精通玩魔方。如果面試的時候給你出下列題目,還能回答出來麼?

a. 給面試者一個各面打亂顔色的魔方;

b. 要求他把六面還原;

c . 如果還原了,要求他把魔方恢複成我最初給他的那個混亂的局面,必須一模一樣。

如果把魔方換成某某語言,考察精通應該提出什麼樣的問題?真談的上是“精通”麼?

繼續閱讀