優(yōu)秀程序員應(yīng)該具備的12種能力 - 全文
2014年11月20日 10:32 來(lái)源:CSDN 作者:佚名 我要評(píng)論(0)
1. 編程語(yǔ)言能力
不用多說(shuō),作為合格的計(jì)算機(jī)程序員,精通一門語(yǔ)言是必須的。這種精通,不是說(shuō)看了一本編程寶典,抄了幾個(gè)程序就能說(shuō)精通的,要靠長(zhǎng)時(shí)間的積累。
2.編碼能力
我曾經(jīng)看很多程序員寫的代碼,在同一個(gè)jsp或者java源文件里,出現(xiàn)了三種以上的對(duì)方法的命名方式,有下劃線間隔的,有全大寫的,有拼音首字母的。就像一個(gè)菜市場(chǎng),雜亂無(wú)比,估計(jì)10天后,他自己都無(wú)法看的懂。遵守編碼規(guī)范,是一個(gè)程序員最基本的要求,可悲的是,很多程序員根本沒(méi)有意識(shí)到這個(gè)問(wèn)題的嚴(yán)重性。另外一個(gè)就是注釋,要注意不是為了注釋而注釋。對(duì)類,以說(shuō)明職責(zé)為主;對(duì)方法,以說(shuō)明意圖為主;對(duì)方法體,以說(shuō)明實(shí)現(xiàn)思路為主。對(duì)于大段大段的代碼,要分段,使用空行隔開(kāi),并使用行內(nèi)注釋進(jìn)行說(shuō)明。
3.面向?qū)ο笏季S能力
如今,多數(shù)編程語(yǔ)言都是面向?qū)ο蟮木幊陶Z(yǔ)言。而這些面向?qū)ο蟮木幊陶Z(yǔ)言的共同的精髓就是面向?qū)ο蟮乃枷?。掌握這些比面向?qū)ο笳Z(yǔ)言本身更重要,比如對(duì)繼承,多態(tài),重載的理解。對(duì)面向?qū)ο蠡驹瓌t的理解,比如開(kāi)閉原則,接口隔離原則,單一職責(zé)原則等。在此基礎(chǔ)上,應(yīng)該掌握常用的設(shè)計(jì)模式,比如工廠模式,策略模式,觀察者模式,模板方法模式,命令模式等等。我面試過(guò)很多程序員,沒(méi)有一個(gè)能說(shuō)得上幾句的。
4.利用工具能力
工欲善其事,必先利其器。有了趁手的家伙,工作效率可以提升數(shù)倍。你編程序,有沒(méi)有選擇一個(gè)很好的IDE,以前聽(tīng)說(shuō)編程高手都用記事本寫程序,我覺(jué)得那是一種自虐。就像以前看到的一篇文章,說(shuō)一幫戶外旅行愛(ài)好者,出去旅游,背了重重的旅行包,里面裝著什么壓縮餅干等快速食品。他們寧可就著礦泉水啃壓縮餅干,也不肯去1里路都不到的快餐店,農(nóng)家菜館吃飯。工具是為目的服務(wù)的,好用,提高效率就行,形式無(wú)所謂。
5. 英語(yǔ)能力
新的技術(shù)資料都是英文的,英語(yǔ)國(guó)家的IT技術(shù)走在我們前面至少10年(這是我自己估計(jì)的數(shù)字,可能正在縮?。?。就連印度,一個(gè)連基礎(chǔ)設(shè)施建設(shè)都不太完善的國(guó)家,因?yàn)槠溆⒄Z(yǔ)基礎(chǔ)較好,其在軟件外包領(lǐng)域的發(fā)展也非常迅猛,遠(yuǎn)遠(yuǎn)超過(guò)了我們。學(xué)英語(yǔ),首先是有信心,其次就是花時(shí)間。多閱讀英文資料,貴在堅(jiān)持。
6.學(xué)習(xí)能力
在IT業(yè)混飯吃不容易,整個(gè)環(huán)境進(jìn)化的太快,你不學(xué)習(xí),就等于落后了。學(xué)習(xí)要有針對(duì)性,別今天學(xué)ruby,明天學(xué)python,后天php的。首先要認(rèn)清自己的目標(biāo),自己短期目標(biāo)是什么,1年后,3年后,5年后的目標(biāo)是什么。結(jié)合這些目標(biāo),確定自己的學(xué)習(xí)計(jì)劃,人的精力畢竟是有限的。當(dāng)然,多掌握幾門編程語(yǔ)言也是好的,可以擴(kuò)充自己的知識(shí)面,重要的是為自己的目標(biāo)服務(wù)。當(dāng)然,不能只學(xué)習(xí)技術(shù),要經(jīng)常練習(xí)自己的軟技能,比如溝通能力,表達(dá)能力。
7.創(chuàng)造能力
普遍認(rèn)為,東方人模仿能力很強(qiáng),但創(chuàng)造能力差。我見(jiàn)過(guò)很多這樣的程序員,經(jīng)常說(shuō),“這個(gè)只能這么解決了,我想不出有什么別的方法?!笨赡芩径紱](méi)想過(guò)別的方法,或者懶得去想。對(duì)任何一個(gè)問(wèn)題,找出兩種以上的解決辦法都是非常容易的,簡(jiǎn)單的google一下,可能就是數(shù)十種。悲哀的是,有些程序員經(jīng)常止步于自己構(gòu)建的狹小領(lǐng)地之內(nèi)。對(duì)待客戶也是這種態(tài)度,不是積極的幫助客戶解決問(wèn)題,而是推脫這只是唯一解決方案。
8.文檔能力
也許有人會(huì)質(zhì)疑,程序員跟寫文檔有什么關(guān)系。大家開(kāi)源軟件也用過(guò)不少,看看Spring,hibernate,Struts等最流行的開(kāi)源軟件的文檔就知道,他么的tutorial,他們的getstarted,他們的reference文檔寫的多么的易懂。其實(shí)寫代碼也相當(dāng)于寫文檔,只不過(guò)用的是編程語(yǔ)言。同樣,寫文檔,用自然語(yǔ)言,也相當(dāng)于寫程序,簡(jiǎn)單明了,清晰易懂,這樣的“程序”誰(shuí)看誰(shuí)舒服。同樣,對(duì)于想進(jìn)階到設(shè)計(jì)師或者需求分析員角色的程序員,文檔能力更是非常重要。
9.抽象能力
抽象能力是認(rèn)識(shí)事物從現(xiàn)象到本質(zhì)的能力。如果你只是停留在“見(jiàn)山是山,見(jiàn)水是水”的層次,客戶說(shuō)什么,你就做什么,設(shè)計(jì)怎么做,你就怎么實(shí)現(xiàn),從來(lái)不過(guò)問(wèn)為什么,也不去想他是滿足了用戶哪些方面的需求呢。這樣可能只解決了表面的問(wèn)題,可能會(huì)引起返工。認(rèn)識(shí)到本質(zhì),才能讓你的程序具備更大的靈活性和可擴(kuò)展性。在做企業(yè)應(yīng)用軟件開(kāi)發(fā)中,抽象能力體現(xiàn)為對(duì)問(wèn)題域的理解能力,對(duì)領(lǐng)域模型的抽象。合理的抽象也是代碼重構(gòu)的前提,每一次重構(gòu),都是向更好的抽象邁進(jìn)了一步。
10.代碼評(píng)審能力
代碼評(píng)審和單元測(cè)試是保證代碼質(zhì)量的兩種常用手段之一。代碼評(píng)審能力,說(shuō)明了你的審美標(biāo)準(zhǔn),知道什么是好的,什么是不好的,什么是優(yōu)雅的代碼,什么是糟糕的代碼,你才能讓自己做的更好。
11.單元測(cè)試能力
沒(méi)有單元測(cè)試的代碼,只能說(shuō)是半成品。因?yàn)闆](méi)有什么能證明你的代碼是可以運(yùn)行的。測(cè)試驅(qū)動(dòng)開(kāi)發(fā)是一個(gè)非常好的敏捷過(guò)程的最佳實(shí)踐。單元測(cè)試還可以作為回歸測(cè)試,在修改代碼時(shí),起到警戒線標(biāo)志的作用。是否具有單元測(cè)試的意識(shí)是區(qū)分程序員是否合格的重要標(biāo)準(zhǔn)。寫不寫單元測(cè)試是區(qū)分平庸程序員和優(yōu)秀程序員的重要標(biāo)桿。
12.DRY
DRY是一種原則,就是Don”t Repeat Yourself.這條原則可以用到很多地方,比如你經(jīng)常要編譯,打包,部署應(yīng)用程序,供集成測(cè)試用。每次你都在重復(fù)你自己,寫一個(gè)自動(dòng)化腳本(比如用ant,批處理命令)來(lái)將這些工作自動(dòng)化,以提高效率。
本文導(dǎo)航
- 第 1 頁(yè):優(yōu)秀程序員應(yīng)該具備的12種能力
- 第 2 頁(yè):學(xué)習(xí)能力
上周熱點(diǎn)文章排行榜
- 奧哲與數(shù)環(huán)通達(dá)成合作,共筑企業(yè)數(shù)字化一站式轉(zhuǎn)型新生態(tài)
- 顛覆性創(chuàng)新技術(shù)——特斯拉土壤修復(fù)機(jī)器人!
- 三季度全球芯片代工市場(chǎng):臺(tái)積電第一,中芯國(guó)際營(yíng)收破20億美
- 科技看點(diǎn):小馬智行上市 我國(guó)5G基站總數(shù)達(dá)414.1萬(wàn)個(gè) 我國(guó)前10月
- 光刻機(jī)巨頭拋出重磅信號(hào) 阿斯麥(ASML)股價(jià)大幅上漲
- 射頻芯片企業(yè)前三季度業(yè)績(jī)PK:業(yè)績(jī)普降承壓前行,集成化、5
上周資料下載排行榜
論壇熱帖
- LF開(kāi)頭請(qǐng)問(wèn)這個(gè)是什么封裝元器件 jf_77000477
- 【飛凌嵌入式OK3588J-C開(kāi)發(fā)板體驗(yàn)】OK3588J-C開(kāi)發(fā)板開(kāi)箱評(píng)測(cè) jf_43382582
- 【書籍評(píng)測(cè)活動(dòng)NO.52】基于大模型的RAG應(yīng)用開(kāi)發(fā)與優(yōu)化 ElecFans小喇叭
- 求一份CS32L010的相關(guān)資料(數(shù)據(jù)手冊(cè)、用戶手冊(cè)、Pack包和例程等),謝謝 jf_43621189
- 請(qǐng)問(wèn)如何關(guān)閉獨(dú)立看門狗 jf_39582415
- 【「從算法到電路—數(shù)字芯片算法的電路實(shí)現(xiàn)」閱讀體驗(yàn)】+閱讀濾波器章節(jié)部分筆記 james_87
熱門博文
論壇熱帖
電子工程師技術(shù)應(yīng)用
電子工程師資料下載
- 經(jīng)典設(shè)計(jì)經(jīng)驗(yàn)筆記,電子工程師必備基礎(chǔ)知識(shí)
- 巧評(píng)電子工程師常犯的20個(gè)錯(cuò)誤
- 99%的電子工程師掉進(jìn)過(guò)這29個(gè)坑
- 工程師常犯錯(cuò)誤匯總,有你嗎?
- 電子工程師用得最多的17個(gè)軟件!
- 嵌入式開(kāi)發(fā)資料免費(fèi)分享
- 電子工程師便攜手冊(cè)PDF電子書
- 電子工程師出路在哪里?過(guò)來(lái)人分享
- 電子工程師必備元器件應(yīng)用寶典強(qiáng)化版電子書免費(fèi)下載
- 2018年中國(guó)工程師創(chuàng)新能量指數(shù)報(bào)告
熱評(píng)
- IR將功率半導(dǎo)體觸角伸往消費(fèi)市場(chǎng)
- 多功能算術(shù)/邏輯運(yùn)算單元(ALU) ,什么是多功能
- 動(dòng)態(tài)ip、靜態(tài)ip、pppoe撥號(hào)的區(qū)別
- ARM與MIPS的比較
- ThunderBolt端口驅(qū)動(dòng)及NET改WAP方法
- ds18b20中文資料詳解
- 滴滴人臉識(shí)別怎么破解
- 超級(jí)計(jì)算機(jī)榜單重新排名 中國(guó)天河二號(hào)已淪為世界第
- 電阻色環(huán)表_色環(huán)電阻識(shí)別方法
- iphone6概念機(jī)圖片曝光_iphone6上市時(shí)
博文
帖子
- 【書籍評(píng)測(cè)活動(dòng)NO.51】具身智能機(jī)器人系統(tǒng) | 了解AI的下一個(gè)浪潮! ElecFans小喇叭
- 請(qǐng)教關(guān)于CS1239低側(cè)采樣如何獲得使用更高的Gain? jf_94221193
- 高頻條件下的耦合線圈出現(xiàn)負(fù)值的原因是什么 jf_42363055
- 請(qǐng)問(wèn)如何關(guān)閉獨(dú)立看門狗 jf_39582415
- ads1291雙電源供電時(shí),Thermal Pad接AVSS嗎? ggfx
- 【米爾-Xilinx XC7A100T FPGA開(kāi)發(fā)板試用】+03.SFP光口測(cè)試(zmj) 卿小小_9e6
- DAC7621的reference性能精度,可以使用外部輸入ref嗎? 萬(wàn)物死
- 【「HarmonyOS NEXT啟程:零基礎(chǔ)構(gòu)建純血鴻蒙應(yīng)用」閱讀體驗(yàn)】+1-7章有感 夜孤影
- DIY了一臺(tái)無(wú)人機(jī),用全志T113芯片 文小二
- 電子產(chǎn)品結(jié)構(gòu)與導(dǎo)熱材料解決方案 jf_86221244
用戶評(píng)論
查看全部 條評(píng)論
查看全部 條評(píng)論>>