文章來源: www.17173.com
程序員(英文Programmer)是從事程序開發、維護的專業人員。一般我們將程序員分為程序設計人員和程序編碼員,但兩者的界限并不非常清楚,特別是在中國。
作一個真正合格的程序員,應該具有的素質。
1:團隊精神和協作能力 團隊精神和協作能力是作為一個程序員應具備的最基本的素質。軟件工程已經提了將近三十年了,當今的軟件開發已經不是編程了,而是工程。獨行俠可以寫一些程序也能賺錢發財,但是進入研發團隊,從事商業化和產品化的開發任務,就必須具備這種素質。可以毫不夸張的說這種素質是一個程序員乃至一個團隊的安身立命之 本。
2:文檔習慣 文檔是一個軟件系統的生命力。一個公司的產品再好、技術含量再高,如果沒有缺乏文檔,知識就沒有繼承,公司還是一個來料加工的軟件作坊。作為代碼程序員,必須將30%的工作時間寫用于技術文檔。沒有文檔的程序員勢必會被淘汰。
3:規范化的代碼編寫習慣 知名軟件公司的代碼的變量命名、注釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助于代碼的移植和糾錯,也有助于不同技術人員之間的協作。一些所謂的高手甚至叫囂高手寫的代碼一般人看不懂,我只能說他不是一名合格的程序員。
4:需求理解能力 程序員要能正確理解任務單中描述的需求。在這里要明確一點,程序員不僅僅要注意到軟件的功能需求,還應注意軟件的性能需求,要能正確評估自己的模塊對整個項目中的影響及潛在的威脅,如果有著兩到三年項目經驗的熟練程序員對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。
5:模塊化思維能力 作為一個優秀的程序員,他的思想不能在局限當前的工作任務里面,要想想看自己寫的模塊是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模塊中直接使用。這樣做可以使代碼能重復利用,減少重復的勞動,也能是系統結構越趨合理。模塊化思維能力的提高是一個程序員的技術水平提高的一項重要指標。
6:測試習慣 測試是軟件工程質量保證的重要環節,但是測試不僅僅是測試工程師的工作,而是每個程序員的一種基本職責。程序員要認識測試不僅是正常的程序調試,而要是要進行有目的有針對性的異常調用測試,這一點要結合需求理解能力。
7:學習和總結的能力 程序員是很容易被淘汰的職業,所以要善于學習總結。許多程序員喜歡盲目追求一些編碼的小技巧,這樣的技術人員無論學了多少語言,代碼寫起來多熟練,我們只能說他是一名熟練的代碼民工,他永遠都不會有質的提高。一個善于學習的程序員會經??偨Y自己的技術水平,對自己的技術層面要有良好的定位,這樣才能有目的 地提高自己。這樣才能逐步提高,從程序員升級為軟件設計師、系統分析員。
作為高級程序員,乃至于設計師而言,除了應該具備上述全部素質之外,還需要具備以下素質:1、 需求分析能力2、 整體框架能力3、 流程處理能力4、 模塊分解能力5、 整體項目評估能力6、 團隊組織管理能力1,激情。
我曾經遇到許多“職業程序員”,他們從事IT是因為覺得這是一種職業,他們只在工作時間編程,除非送去培訓否則他們不會學習新東西,這不是好的程序員。我認為一個好的程序員總是對編程充滿激情,而且好的開發者會做一些編程工作即使這沒有報酬。激情是一個優秀程序員的重要指標。2,自學好學
編程領域始終發展變化著,不出一年有些新技術就變成了老技術,這并不是說好的程序員要對所有新技術跟進,但有些卻對學習任何新技術都沒有興趣。他們通常在學校學習了編程,然后工作后單位安排學什么就學什么。如果在招聘中你聽到“讓我培訓一個星期我就會勝任這個工作”那不要雇傭他。實際上,真正優秀的程序員 始終談論著你所不知道的新技術,向人們解釋為什么你必須用這個技術,哪怕沒有聽眾聽得明白,哪怕他自己也不明白。3,聰明
聰明包括很多因素,情緒和社會交際只是其中之一。好的程序員絕不木訥,他們是最聰明的人,他們中的許多善于交際,健談、興趣廣泛。4,隱性的經驗
—好的程序員通常有自己的私人的一些研究、愛好、項目,而這些是他們不寫在簡歷上(通常覺得不值得寫),但表現出來卻可能恰恰是他的潛能、深度和后勁所在。5,技術多樣性
由于好的程序員喜歡學習和涉獵新技術,所以一般來說超過22歲的都熟知很多新技術,而且對多種技術的長短有“強烈”的個人意見/見解,喜好嘗試新鮮技術。6,資格證書
資格證書并不是識別真正程序員的方法,MCSE、SCJP說明不了什么,它們只是讓別人認識和獲取的,頂多代表這個人在某個技術有一定的知識。原文作者在文末寫道:以上所說的標準并不是絕對的,因為有些優秀的程序員確實不符合上述,而有些bad程序員卻符合了。但相信這些對大多數真正的程序員都適用。