學習能力 - 優(yōu)秀程序員應該具備的12種能力

2014年11月20日 10:32 來源:CSDN 作者:佚名 我要評論(0)

標簽:電子工程師(94930)程序員(29472)

  6.學習能力

  在IT業(yè)混飯吃不容易,整個環(huán)境進化的太快,你不學習,就等于落后了。學習要有針對性,別今天學ruby,明天學python,后天php的。首先要認清自己的目標,自己短期目標是什么,1年后,3年后,5年后的目標是什么。結(jié)合這些目標,確定自己的學習計劃,人的精力畢竟是有限的。當然,多掌握幾門編程語言也是好的,可以擴充自己的知識面,重要的是為自己的目標服務(wù)。當然,不能只學習技術(shù),要經(jīng)常練習自己的軟技能,比如溝通能力,表達能力。

  7.創(chuàng)造能力

  普遍認為,東方人模仿能力很強,但創(chuàng)造能力差。我見過很多這樣的程序員,經(jīng)常說,“這個只能這么解決了,我想不出有什么別的方法?!笨赡芩径紱]想過別的方法,或者懶得去想。對任何一個問題,找出兩種以上的解決辦法都是非常容易的,簡單的google一下,可能就是數(shù)十種。悲哀的是,有些程序員經(jīng)常止步于自己構(gòu)建的狹小領(lǐng)地之內(nèi)。對待客戶也是這種態(tài)度,不是積極的幫助客戶解決問題,而是推脫這只是唯一解決方案。

  8.文檔能力

  也許有人會質(zhì)疑,程序員跟寫文檔有什么關(guān)系。大家開源軟件也用過不少,看看Spring,hibernate,Struts等最流行的開源軟件的文檔就知道,他么的tutorial,他們的getstarted,他們的reference文檔寫的多么的易懂。其實寫代碼也相當于寫文檔,只不過用的是編程語言。同樣,寫文檔,用自然語言,也相當于寫程序,簡單明了,清晰易懂,這樣的“程序”誰看誰舒服。同樣,對于想進階到設(shè)計師或者需求分析員角色的程序員,文檔能力更是非常重要。

  9.抽象能力

  抽象能力是認識事物從現(xiàn)象到本質(zhì)的能力。如果你只是停留在“見山是山,見水是水”的層次,客戶說什么,你就做什么,設(shè)計怎么做,你就怎么實現(xiàn),從來不過問為什么,也不去想他是滿足了用戶哪些方面的需求呢。這樣可能只解決了表面的問題,可能會引起返工。認識到本質(zhì),才能讓你的程序具備更大的靈活性和可擴展性。在做企業(yè)應用軟件開發(fā)中,抽象能力體現(xiàn)為對問題域的理解能力,對領(lǐng)域模型的抽象。合理的抽象也是代碼重構(gòu)的前提,每一次重構(gòu),都是向更好的抽象邁進了一步。

  10.代碼評審能力

  代碼評審和單元測試是保證代碼質(zhì)量的兩種常用手段之一。代碼評審能力,說明了你的審美標準,知道什么是好的,什么是不好的,什么是優(yōu)雅的代碼,什么是糟糕的代碼,你才能讓自己做的更好。

  11.單元測試能力

  沒有單元測試的代碼,只能說是半成品。因為沒有什么能證明你的代碼是可以運行的。測試驅(qū)動開發(fā)是一個非常好的敏捷過程的最佳實踐。單元測試還可以作為回歸測試,在修改代碼時,起到警戒線標志的作用。是否具有單元測試的意識是區(qū)分程序員是否合格的重要標準。寫不寫單元測試是區(qū)分平庸程序員和優(yōu)秀程序員的重要標桿。

  12.DRY

  DRY是一種原則,就是Don”t Repeat Yourself.這條原則可以用到很多地方,比如你經(jīng)常要編譯,打包,部署應用程序,供集成測試用。每次你都在重復你自己,寫一個自動化腳本(比如用ant,批處理命令)來將這些工作自動化,以提高效率。

上一頁12全文

本文導航