程式設計師的八個級別,你屬於哪個級別?
這篇文章來源於Jeff Atwood的文章《The Eight Levels Of Programmers》,在開題之前,聊下“程式設計師”這個名詞,我覺得將Programmer定義為“程式設計師”的要求太低了,應該稱之為“開發人員”或“研發人員”,因為一個成熟的Programmer不僅僅只關注Program或Code(當然Coding是基本技能要求),還需要關注該Program的需求背景、業務、架構及其長期演進,或許團隊中分工不同,這些不屬於Programmer的重心,但你花時間去了解和理解它們是絕對有助於Program的。
上面這些文字只是我的理解,下面Jeff Atwood的文章對Programmer的界定看似從程式設計能力和貢獻來劃分的,但實際上高級別的Programmer關注的也絕不是Code本身了。囉嗦完以後還是看看大拿的原文吧:
你是否被人問過這樣一個經典的面試問題,“五年內你對自己有什麼規劃?”,這種問題一般不會得到一個很嚴肅的回答,就像另外一個毫無新意且充滿壓抑的問題,“你最大的弱點是什麼?”
但我卻不這麼想,我認為這是一些比較嚴肅的問題,值得我們認真的思考一下。並不是給面試官做好事,而是為你自己的將來。
“五年內你對自己有什麼規劃?”,這個問題通常會招致一些流於形式的誇誇其談,大部分的人在面對面試官時都對這樣的問題有事先的準備。當通常都不會 涉及一些深刻的關切:你做作為程式設計師今後可能的發展道路上怎樣的?沒錯,我們程式設計,是因為我們喜歡,這樣看來我們是很幸運的。但當你50時歲時你還想坐在電腦前面程式設計嗎?60時歲時?對於一個想成為程式設計師的人來說,他的最好的仕途道路應該是怎樣?
你是否想聽一下,如果我告訴你,算是玩笑吧,程式設計師有八個級別。
1級:已經死掉的程式設計師,這是最高級別,你的程式碼存活了下來,超越了你的死亡。你將在計算機史上記下永恆的一筆。其他 的程式設計師將會研究你的成果和著作。你也許獲得過圖靈獎,或寫出過有影響力的論文,或發明了一兩件重要的、影響到程式設計史程序的技術。你不僅僅在維基百科上有 條目記錄——有專門的網站在致力於研究你的生活和工作。很少有程式設計師能在有生之年達到這種級別。
例子:艾茲赫爾·戴克斯特拉(獲得圖靈獎),高德納(現代電腦科學的鼻祖),艾倫·凱(獲得圖靈獎)
2級:成功的程式設計師,有知名度,而且通過自己的程式碼建立了公司——甚至開創了整個行業。這種程式設計師享有絕對的自由度:自由的選擇自己想做的事情。並且能把這種自由分享給跟他一起的程式設計師同伴。這是大多數程式設計師都向往渴望的級別。達到這種級別通常更多的是依靠商業技巧,而不是程式設計。
例子:比爾·蓋茨,約翰·卡馬克(《雷神之錘》視訊遊戲創始人),DHH( Ruby on Rails框架創始人)
3級:著名程式設計師,這也是一個很好的級別,但前提是,你有穩定的工作。你在程式設計界有知名度。但有名並不意味這你可以把它轉化成收益或給你帶來幫助。有名很好,但成功更好。你可以在一個大的、知名的科技公司工作,或者一個有影響力的小公司工作,或你身處一個規模不大的創業團隊裡。不管怎樣,其他的程式設計師都聽說過你,你在這個領域有積極的影響力。
4級:有工作能力的程式設計師,你是一個職業上成功的軟體開發人員。你的技術水平讓你受歡迎,你永遠不愁找到一份很好的工作。你的同事都很敬仰你。你工作過的每個公司都會由於你的到來而在某方面有提高或增強。但你還能怎樣?
5級:普通程式設計師,處於這個等級的你是個不錯的程式設計師,有自知之明,認識到自己不是個優秀程式設計師。 也許永遠也不是。天才跟成功通常沒有多大牽連。如果你會做生意並有人際交往能力,你也許會非常的成功。如果你是個水平一般的程式設計師但卻想以此為生,你應該 聰明的知道,你並不一定需要去編碼。不要輕視自知之明的作用。很少人能做到這點。沒有天份沒什麼。要有勇氣。弄清你擅長什麼,朝這個目標奮鬥。堅持不懈。
6級 業餘程式設計師,業餘程式設計師喜歡程式設計,而且可以看出來:他們可以成為一個有前途的學生或實習生。他們也許會向開源軟 件捐贈程式碼,或在業餘時間開發有趣的“只是為了好玩”的程式或網站。他們的程式和想法展現出一種熱情和希望。做業餘程式設計師是件不錯的事情;這個級別的人能 很快的躍升成為一名有工作能力的程式設計師。
7級:無名程式設計師,典型的程式設計師大眾。碼農。能幹(通常)但平凡。也許為大公司、集團工作。只是一份工作,不是生活的全部。無可厚非。
8級:爛程式設計師,歸入這個角色的人沒有任何的技術和能力。對於他的同事們來說,任何他插手的事情都會變成痛苦和折磨 ——可能有一種例外,對另外的爛程式設計師,因為缺乏基本的技能,辨不清自己正在和另一個爛程式設計師共事。也許這是所有爛程式設計師的標準特徵。這些人本來跟程式設計沒 有任何關係——但是,他們卻在程式設計。
這些並不是很正經的等級劃分。每個程式設計師在職業道路上都有各自的追求。但這可以給你一定的啟發,讓你思考一下十年後、二十年後或三十後——也許你的一生——能夠實現什麼。哪一個著名程式設計師是你最欽佩的?他們因為實現了什麼而獲得了你的欽佩?
簡而言之,作為Programmer,你這輩子想幹成怎樣?