軟件界一個無可爭議的事實是,不一樣程序員的效率有差異,並且差異很大。許多專家將優秀程序員和通常程序員區分地很清楚。html
大多數研究得出結論認爲,通常程序員跟優秀程序員之間在工做效率和質量上存在10:1的關係:優秀程序員和水平較差的程序員的編碼時間比例爲1:20;debugging時間比爲1:25;代碼數量比是5:1;程序執行速度比例是10:1。並且發現,程序員的代碼質量和效率跟工做經驗沒有關係。程序員
讓咱們看看一些軟件大腕們是如何看待優秀程序員和通常程序員的:算法
Randall E. Stross:不管是從軟件標準、創造性、開發速度、仍是設計思路或者解決問題的能力上來講,優秀程序員比差的程序員都何止好一點。編程
Bill Gates:一個優秀的機牀工值一個通常機牀工的好幾倍,而一個優秀程序員值一個通常程序員的10000倍。ide
Robert C. Martin:90%的代碼是由10%的程序員寫出來的。工具
就我我的從事編程行業25年、從事過六家軟件公司的經從來看,10:1這個定律千真萬確。基於這必定律以及程序員工做效率的差異,程序員所以被分爲五大類:學習
1.大師級程序員(Visionary/Artist Programmer)編碼
大師級程序員是軟件界絕對的稀有種族,他們能夠創造出99.9%的程序員所創造不出來的東西。他們發明新的應用和軟件模式來驅動軟件產業的發展。Napster, Netscape以及World Wide Web都是大師級程序員創造的。對他們而言,軟件更多的是藝術而非科學。在這個級別,速度和質量不是最重要的,他們創造出的財富纔是最重要的。許多開發團隊或者公司頂多也就一個大師級程序員,一般是這個公司的技術創始人或者CTO。.net
2.開拓者程序員(Trailblazer Programmer)debug
開拓者程序員一般帶來很好的主意和趨勢。他們一般是最終產品的原型創做者,他們一天作出的事情大部分程序員須要幾周甚至幾個月。開拓者程序員老是在嘗試新工具、新技術,不斷地學習和搜尋方法來提升工做效率,並一般是其餘程序員的導師和老師,並且你常常會發現當其餘程序員早已離開的時候他們卻依然工做到深夜。儘管這樣級別的程序員工資很高,可是每一個成功的公司或團隊仍是應該配備一兩個開拓者程序員。
3.骨幹程序員( Workhorse Programmer)
骨幹程序員是一個公司或者開發團隊的脊柱,這些人儘管不是頗有創新性,但每每比較高效且值得信賴。給一位骨幹程序員一套模板和合適的工具,他們總能以最短的時間交出錯誤最少的代碼。
4.機械程序員( Drone Programmer)
許多程序員就是朝九晚五地爲了填塞下本身錢包的機械程序員。他們不肯意接觸新技術、避免學習新事物。許多公司或者開發團隊都有許多這樣的機械程序員,由於他們很便宜,但豈不知更貴的程序員才真正地更便宜。
5.白癡程序員( Idiot Programmer)
林子大了什麼鳥都有,軟件領域也不例外。編程須要抽象和邏輯思惟,然而一些尚不具有此能力者因爲嚮往着不錯的薪水而加入了該領域。白癡程序員老是對最簡單的算法也搞不清楚,他們老是錯過軟件截止日期,終日無所獲。白癡程序員最好的出路就是換行。(
原文http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm
譯文http://static.icybear.net/%5BCN%5DProgrammer%20competency%20matrix.htm
摘自http://news.csdn.net/a/20100322/217537.htmlhttp://news.csdn.net/a/20090610/211855.html