《系統程式員成長計劃》成長過程

來源:互聯網
上載者:User

轉載時請註明出處和作者連絡方式

文章出處:http://www.limodev.cn/blog
作者連絡方式:李先靜 <xianjimli@gmail.com>

 

《系統程式員成長計劃》的起源應該追溯到六年前了。04年我進入恒基偉業深圳研發部,參與商務通隱形手機開發。在此之前我是做服務 器軟體開發的,對嵌入式軟體開發非常好奇,所以想方設法進入這個行業。恒基偉業在嵌入式方面的實力也是相當高的,很多在消費類裝置方面的開發高手都有在恒 基偉業工作過的經驗。原以為做嵌入式開發的程式員都是非常牛的人,動不動都是能寫上上萬行組合語言。真正進入這個行業之後,才知道牛人畢竟是少數,大部分 人都和我一樣是普通的程式員。

過了幾個月,我當了小組長,手下帶了幾位同事。有剛畢業的,有工作兩年的,也有工作經驗和我差不多的。有次我讓一位同事寫一個小程式,過了好幾天他 還沒有寫完。和他討論了一會兒後,才知道他寫的程式動不動就死掉,查了幾天沒有查出原因來。由於我以前做過兩年全職的調試工作,看了一下他的代碼,馬上發 現問題所在:指標聲明之後,沒有指向任何有效記憶體,就直接使用了!

後來和他們交流多了,才發現有的同事工作幾年之後,連一些編程的基本技能都沒有掌握,代碼寫得亂七糟八的。這些代碼整合到項目中後,產品越來越不穩 定,整個項目慢慢失去控制。那個項目後來BUG總數超過了10000個,當時大家都知道在做一件不可能完成的任務,士氣變得非常低落。經曆那一段非常鬱悶 的時期之後,我更深刻的體會到高素質的程式員才是軟體開發成功的關鍵。於是我開始對手下的同事進行培訓,把一些我認為重要的知識和方法教給他們。雖然沒有 收到預期的效果,不過積累了一些素材。

05年我跟著現在的上司進入鼎智通訊,我還是小組長,帶了幾個新手。我根據前面的經驗制定了一個培訓計劃,我的上司看了之後覺得不錯,就在軟體部推 廣。下面是當時我發在部落格上的培訓計劃:

學習的方式:

對於基礎性知識,指定幾本教材,大家輪流學習,學習完成後給其他講解。對於較難的知識,由我或者請其他有經驗的人講解。集中學習時間定在周三晚上。

第一階段:

目標:熟悉常見的演算法和調試方法,培養良好的編程風格,從而提高編程 能力。
時間:8周
內容:

1. 編程規範
2. 雙向鏈表
3. 調試方法與調式工具的使用
4. 動態數組
5. 快速排序/歸併排 序/堆排序/二分尋找
6. 狀態機器
7. 下推自動機
8. 嵌入式軟體開發
9. Unicode基本知識

第二階段:

目標: 學習如何閱讀和改進別人的代 碼。
時間: 4周
內容:
1. 代碼閱讀方法
2. 代碼重構

第三階段:

目標:自動化的測試
時間:2周
內容:
1. 測試理論
2. 常用的自動化的測試架構

第四階段:

目標:軟體設計和文檔編寫
時間:12周
內容:

1. 物件導向的設計與分析
2. 契約式編程
3. 設計模式
4. 軟體架構編檔
5. 瞭解常見的軟體過程: XP/RUP等

第五階段:

目標:學習一種指令碼語言,能自動化的工作盡量讓電腦去做,從而提高 工作效率。

時間:4周
內容:cygwin + bash 或者 python 或者 perl 或者vbscript。

第六階段:

目標:綜合應用所學的知識,完成一個模組的設計、編程、測試。
時間:4周
內容:待定

這個培訓堅持了半年,收到一些效果,但是不夠理想。主要原因是這個培訓計劃追求大而全,加上大家工作很忙,還沒有消化就進入了下一個階段。現在來 看,這個計劃完全可以作為一個程式員的三年學習計划了。

05年下半年,Broncho團隊成立。我改為手把手的培訓方式,通過程式碼檢閱等方式,發現新手犯的錯誤,然後糾正他,並把一些典型的錯誤統一講 解。慢慢的積累了典型錯誤和問題的素材,後來我開始思考:能不能搞一系列的題目,讓新手把他們該犯的錯誤犯一遍,讓這些典型的錯誤在他們正式工作之前就被 糾正了呢?

這些題目要有足夠的挑戰,又不能讓人望而生畏。要解決這個難題不容易,記得當時《C++沉思錄》給了我一些啟示:用一個好的程式的演化過程,逐步深 入的學習各種基本的技術和方法。於是有了第一章雙向鏈表演化的雛形,第二章寫得又快又好的秘訣,則是我多年來一直在思考的。

07年下半年正式在Broncho團隊起用這套培訓課程,記得Broncho團隊的吳松是第一位參加這個培訓的同事。經過一年多時間,前前後後有十 多位同事的參與,這套培訓課程逐漸完善起來,到現在Broncho團隊仍然在使用。

08年十月份開始把這些培訓資料整理成文字,並在我的部落格上發布。這是一項艱苦的工作,雖然這些內容在腦子裡都過了幾十遍了,但寫出來的時候,要講 清楚還是不容易的。一年多時間,經過讀者的建議,又做了些完善。

09年七月底完稿,並確定由人民郵電出版社旗下的圖靈出版社出版。我一直強調圖書的品質,並多次跟出版社要求,我不要稿費甚至自己拿錢出來補貼工作 人員都可以,但是一定要保證圖書的品質。出版的過程中出現了一些波折,到今年三月本書才終於與讀者見面。

另外我解釋一下,書上為什麼沒有推薦序之類的東西。在出版之前,一些熱心的朋友主動說幫我寫或者請名人寫推薦序,我都一一婉拒了。我的理由很簡單, 那些“名人”都沒有仔細讀過我的書,幫忙寫推薦只是純粹的吹捧,都是虛假的,對讀者不負責的。我希望更多的讀者讀本書,但是決不能用這種手段來欺騙讀者。 只有真正的讀者才有資格對書做出評論,如果有機會出第二版,我會請讀者寫推薦序的。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.