2013年7月16日 星期二

優秀程式設計師必備的一些素質

網上看到的文章,分享一下~~
作爲一個合格而優秀的程式設計師,應該具有哪些素質?其實才工作半年的我,好像遠遠不够資格來談論這個話題,不過這半年的成長讓我獲益匪淺,在程式設計師這個話題上也可以多多少少說出一點有價值的東西來。
一、對開發工作要有必要的興趣
興趣是最好的老師,對某個事物有了一定的興趣,才會潜下心來學習、研究它,工作同樣如此。如果對程式設計師的工作完全沒有興趣,甚至是抱著厭惡的態度,那麽其工作結果和能力就可想而知了。在這裏說興趣,幷不要求你達到對編程有著狂熱的愛好這種程度,只需要你還算喜歡這份工作即可,哪怕抱著平常心來面對也好。
二、要善于學習和總結
都說程式設計師是一個吃青春飯的職業,雖然這話說的略顯絕對,但也有一定的道理。IT領域的技術更新換代太快了,一門新的語言興起幷不需要太久的時間,只有不斷的接觸幷學習新東西,才能不被淘汰掉。所謂“活到老,學到老”,這話用在程式設計師身上可能是最適合不過的了。
而在學習的同時,也要善于進行總結。每次完成了一項工作,都對這次的工作進行一下總結,比如用了什麽技術、如何進行的項目設計、如何考慮的用戶體驗等,而在工作中出現的問題也應該牢牢記住,從自己的不足中吸取教訓,這樣才能使自己成長起來。
三、要養成良好的習慣
首先,要有寫文檔的習慣,不要覺得程式設計師的工作只是寫程式碼,這樣的程式設計師一輩子也就是個“碼農”了,絕對沒有前途的。在正規的軟件公司中,文檔的地位很高,開發流程裏面通常也體現出了各個環節的文檔的位置。沒有文檔的軟件是很難長久的存活下去的,因爲在測試、複用、升級等方面都會遇到越來越大的阻力。越是高級的程式設計師,就越應該重視文檔。
其次,要養成良好的編碼習慣。變量如何命名?函數(方法)如何命名?程序中的注釋怎麽寫?程序的縮進格式怎樣確定?好一點的公司都會有這方面的文檔,但是總有程式設計師從來都不看這些文檔,他們認爲最牛的程式設計師寫出來的程序應該除了自己沒有人能看懂,然後他們真的就這樣做了——結果就是別人看不懂,沒法合作,到最後連他們自己都看不懂,這種人連作爲一個程式設計師的基本素質都不具備。寫出規範化、標準化的程序程式碼,是一個合格程式設計師最基本的素質。
最後要提一下的是測試習慣。雖然正規的軟件公司都有專門的測試部門,但是開發部門也不能就此降低自我要求。軟件所含問題發現的越早,付出的成本就越低,如果開發人員在開發早期就能發現一些問題幷解决,就可以節省大量的人力和物力。同時,程式設計師應該對自己開發的程序進行功能性測試,你總要保證自己開發的軟件能正常使用吧?如果連這點都做不到,那你這程序寫的就沒用了。而且要盡可能的模擬用戶實際使用的一些狀况,要想到一些特殊的异常狀况。雖然在實際工作中開發人員很難做到全方位的測試,但一定要清楚這項工作的重要性。
四、要能正確理解用戶需求
現在什麽都講究個用戶體驗,而這對軟件來說簡直就是賴以生存的根本。一個軟件的用戶體驗如何,在極大的程度上能决定這款軟件能否成功。通常在開發工作開始前,項目組會對該項目的用戶需求進行分析和討論,正確的理解了用戶需求,再劃分合理的模塊,甚至考慮到一些潜在的威脅,這都是一個優秀的程式設計師所具有的素質。做到這一點很不容易,像我這樣的程式設計師,目前只能停留在口頭上,實際工作中我想的都非常不全面。
五、要注重程序的複用性和模塊化
是不是一直覺得做程式設計師太累了?是的,程式設計師這份工作確實壓力比較大,但是有些程式設計師的工作壓力相當一部分是自己給自己添加的,他們總是在做一些重複的工作,而從來不會考慮複用性和模塊化的思想。程式設計師在完成某個功能模塊的時候,不應該把思維局限在這次工作中,而是應該想想,能否把這部分程式碼脫離出本次工作,能否將其設計成其他系統也能調用的功能模塊?如果每個人都能有這樣的思維,日積月累下來,大家的重複性工作就會大大减少,也就有更多的精力來進行新功能的開發與創新。
六、擁有團隊協作的精神
雖然我把這一點放在最後,但是它的重要性我想不需要太强調了吧。現在的軟件功能通常很複雜,而且還要涉及到良好的UI(用戶界面),甚至要考慮到整個系統的協調,一個人是根本不可能完成這種工作的,所以團隊協作是必要也是必須的。在一個項目團隊中,如何根據每個人所擅長的領域來分配工作,如何協調人力資源等,都是非常重要的。而在工作中遇到了問題,團隊應該立刻想辦法互相幫助來解决。
關于程式設計師必備的專業素質,暫時我就只想到這麽多。雖然只有六點,但是能做到的那就真的是很優秀的程式設計師了,相信這樣的幷不多見。這些素質的養成需要一個時間,想要一蹴而就是不現實的,而是應該在日常工作中先培養起自己的意識,然後逐漸的養成這些素質。祝每個程式設計師,都能擺脫“碼農”的狀態,成爲一個優秀的程式設計師。