天天看點

程式員五大層次,你屬于哪一層?

軟體界一個無可争議的事實是,不同程式員的效率有差别,而且差别很大。許多專家将優秀程式員和一般程式員區分地很清楚。

大多數研究得出結論認為,一般程式員跟優秀程式員之間在工作效率和品質上存在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)

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

繼續閱讀