程式設計師五大層次

csdn發表於2012-07-20

  軟體界一個無可爭議的事實是,不同程式設計師的效率有差別,而且差別很大。許多專家將優秀程式設計師和一般程式設計師區分地很清楚。

  大多數研究得出結論認為,一般程式設計師跟優秀程式設計師之間在工作效率和質量上存在10:1的關係:優秀程式設計師和水平較差的程式設計師的編碼時間比例為1:20;debugging時間比為1:25;程式碼數量比是5:1;程式執行速度比例是10:1。而且發現,程式設計師的程式碼質量和效率跟工作經驗沒有關係。

  讓我們看看一些軟體大腕們是如何看待優秀程式設計師和一般程式設計師的:

  Randall E. Stross:無論是從軟體標準、創造性、開發速度、還是設計思路或者解決問題的能力上來說,優秀程式設計師比差的程式設計師都何止好一點。

  Bill Gates:一個優秀的機床工值一個一般機床工的好幾倍,而一個優秀程式設計師值一個一般程式設計師的10000倍。

  Robert C. Martin:90%的程式碼是由10%的程式設計師寫出來的。

  就我個人從事程式設計行業25年、從事過六家軟體公司的經歷來看,10:1這個定律千真萬確。基於這一定律以及程式設計師工作效率的差別,程式設計師因此被分為五大類:

  1. 大師級程式設計師(Visionary/Artist Programmer)

  大師級程式設計師是軟體界絕對的稀有種族,他們可以創造出99.9%的程式設計師所創造不出來的東西。他們發明新的應用和軟體模式來驅動軟體產業的發展。Napster, Netscape以及World Wide Web都是大師級程式設計師創造的。對他們而言,軟體更多的是藝術而非科學。在這個級別,速度和質量不是最重要的,他們創造出的財富才是最重要的。許多開發團隊或者公司頂多也就一個大師級程式設計師,通常是這個公司的技術創始人或者CTO。

  2. 開拓者程式設計師(Trailblazer Programmer)

  開拓者程式設計師通常帶來很好的主意和趨勢。他們通常是最終產品的原型創作者,他們一天做出的事情大部分程式設計師需要幾周甚至幾個月。開拓者程式設計師總是在嘗試新工具、新技術,不斷地學習和搜尋方法來提高工作效率,並通常是其他程式設計師的導師和老師,而且你經常會發現當其他程式設計師早已離開的時候他們卻依然工作到深夜。儘管這樣級別的程式設計師工資很高,但是每個成功的公司或團隊還是應該配備一兩個開拓者程式設計師。

  3.骨幹程式設計師( Workhorse Programmer)

  骨幹程式設計師是一個公司或者開發團隊的脊柱,這些人儘管不是很有創新性,但往往比較高效且值得信賴。給一位骨幹程式設計師一套模板和合適的工具,他們總能以最短的時間交出錯誤最少的程式碼。

  4.機械程式設計師( Drone Programmer)

  許多程式設計師就是朝九晚五地為了填塞下自己錢包的機械程式設計師。他們不願意接觸新技術、避免學習新事物。許多公司或者開發團隊都有許多這樣的機械程式設計師,因為他們很便宜,但豈不知更貴的程式設計師才真正地更便宜。

  5.白痴程式設計師( Idiot Programmer)

  林子大了什麼鳥都有,軟體領域也不例外。程式設計需要抽象和邏輯思維,然而一些尚不具備此能力者由於嚮往著不錯的薪水而加入了該領域。白痴程式設計師總是對最簡單的演算法也搞不清楚,他們總是錯過軟體截止日期,終日無所獲。白痴程式設計師最好的出路就是換行。

  相關文件:程式設計師水平大分級,你究竟屬於哪一類?

相關文章