俗話說(shuō),天下武功,唯快不破。也就是說(shuō)要練成天下高手的話,出招速度一定要快,這樣才能在江湖上立足,不至于掉了腦袋。而程序員要在IT界混出個(gè)名堂,也要有高效的工作效率才行。IT行業(yè)時(shí)時(shí)刻刻都產(chǎn)生著新知識(shí)、新技術(shù),要想跟上變革肯定要有幾把刷子。
而我本人很喜歡各種各樣的方式來(lái)提高自己的工作效率,可以分享給大家一些經(jīng)驗(yàn)。
1)鍵盤功底要扎實(shí)。敲鍵盤時(shí)要使用標(biāo)準(zhǔn)指法??赡苣阏J(rèn)為這是程序員的基本功,可是我發(fā)現(xiàn)其實(shí)很多程序員都做不到這點(diǎn)??粗麄兦么a時(shí)那笨拙的指法我就心急。其實(shí)煉成標(biāo)準(zhǔn)指法不難,相當(dāng)年我還是一指禪,打字極慢,痛定思定,在一周內(nèi)我打字必用標(biāo)準(zhǔn)指法,再別扭也要堅(jiān)持,一周后就適應(yīng)了標(biāo)準(zhǔn)指法了。現(xiàn)在不說(shuō)運(yùn)指如飛也算是略有小成。練習(xí)指法和鍵盤速度可以給大家推薦一些網(wǎng)站:http://10fastfingers.com/typing-test/english,這個(gè)就是練習(xí)標(biāo)準(zhǔn)指法的,我可以輕松上60 WPM(每分鐘60單詞),有個(gè)外國(guó)同事可以達(dá)到130以上,那才叫恐怖。http://typing.io/lessons,專門供程序員練習(xí)敲代碼的網(wǎng)站,融合了各種括號(hào)和標(biāo)點(diǎn),難度有點(diǎn)大。
2)要熟悉IDE的各種快捷鍵及特性。IDE基本上是碼農(nóng)們上班中使用時(shí)間最長(zhǎng)的軟件。首先要選擇一個(gè)趁手的IDE,俗話說(shuō),工玉成其事,必先利其器嘛。如果是C#陣營(yíng)的那肯定是最新版的Vistual Studio了,如果是Java陣營(yíng)的話當(dāng)然是Intellij了(eclipse作為開(kāi)源IDE,真心比不過(guò)Intellij)。我現(xiàn)在使用Intellij可以在95%的情況下不用鼠標(biāo),全鍵盤完成開(kāi)發(fā)過(guò)程中的大部分操作。我覺(jué)得沒(méi)有什么常用快捷鍵、不常用快捷鍵之分,只要你知道的快捷鍵就要拿來(lái)用。尤其是各種重構(gòu)快捷鍵必須要熟練掌握,當(dāng)我看到碼農(nóng)修改變量名時(shí)不用重構(gòu)快捷鍵,而是自己手動(dòng)在引用的地方一個(gè)個(gè)改,然后編譯查錯(cuò)時(shí),真為他們捉急。還有各種inline,introduce的快捷鍵真是好用到爆,掌握了這些快捷鍵可以說(shuō)對(duì)代碼進(jìn)行任何重構(gòu)都不費(fèi)除灰之力,我們的注意力也從手動(dòng)修改代碼轉(zhuǎn)移到如何發(fā)現(xiàn)壞味道了。Vistual Studio中推薦安裝ReSharper,其開(kāi)發(fā)公司與Intellij開(kāi)發(fā)公司是同一家。除了重構(gòu)快捷鍵,還要掌握一些IDE的特性,比如調(diào)試時(shí)可以插入指定條件來(lái)命中斷點(diǎn)等,這些就要平時(shí)的積累和學(xué)習(xí),另外還有好奇心。我敢說(shuō)你現(xiàn)在挨個(gè)看IDE菜單,至少有30%功能你從沒(méi)用過(guò)或不知道是干什么用的,其實(shí)里面有些功能是非常實(shí)用的,只是你沒(méi)嘗試而已。
3)至少熟練掌握一種shell終端。作為程序員老用圖形化界面咋行,要用那種古老的命令行界面才能顯示出你的高深嘛!鼠標(biāo)點(diǎn)界面誰(shuí)都會(huì),而命令行界面不是誰(shuí)都能駕馭。有些功能在命令行下要比圖形界面下高效N倍。比如我使用git提交文件時(shí)都是在命令行下查看哪些文件被修改了,哪些是新添加的,修改的部分是哪些等。使用圖形化界面要用鼠標(biāo)點(diǎn)來(lái)點(diǎn)去,效率實(shí)在太低。Linux系統(tǒng)下的終端太多了,就不推薦了。Mac系統(tǒng)下推薦使用iTerm2這個(gè)殼,其比MAC自帶的terminal多了不少實(shí)用的特性,也能方便切換自己喜歡的配色。Windows下當(dāng)然首推Windows Power Shell了。Windows Power Shell本身集成了常用的實(shí)用工具,并且與.net framework無(wú)縫結(jié)合,這點(diǎn)是那些在Windows上的類Linux模擬器(比如Cygwin)是遠(yuǎn)遠(yuǎn)比不了的。
4)具有一定編寫(xiě)shell腳本的功底。光會(huì)用現(xiàn)有的腳本還不行,還要會(huì)根據(jù)情況編寫(xiě)腳本來(lái)實(shí)現(xiàn)自己特定的一些目標(biāo)。比如我使用MAC機(jī)上的終端時(shí),經(jīng)常需要在不同目錄間跳來(lái)跳去,每次都打一串的cd …。.很麻煩,后來(lái)我就自己寫(xiě)了一個(gè)小工具,可以給指定的目錄起別名,想要跳到這個(gè)目錄只要敲別名即可(參見(jiàn) http://www.huangbowen.net/blog/2013/02/16/gtshell/)。還有我在Windows系統(tǒng)上工作時(shí),也經(jīng)常編寫(xiě)一些Power Shell腳本,比如一個(gè)命令就啟動(dòng)指定的FTP服務(wù)器,一些小命令用來(lái)實(shí)現(xiàn)快速在不同項(xiàng)目源碼間切換并執(zhí)行構(gòu)建命令等。這些命令編寫(xiě)起來(lái)都很簡(jiǎn)單,在提高工作效率方面很好幫助,因?yàn)橐恍┏S玫馁M(fèi)時(shí)的操作每天重復(fù)N次,讓人很厭煩,如果能夠使用腳本將其自動(dòng)化起來(lái),豈不是就把自己給解脫了?
5)多語(yǔ)言編程。在這個(gè)世界有太多太多的編程語(yǔ)言,但凡稍微流行的編程語(yǔ)言都有自己獨(dú)特的優(yōu)勢(shì),而我們要善于利用每種編程語(yǔ)言的特點(diǎn),而不是整天吵鬧那種語(yǔ)言更強(qiáng)大。我自己熟悉C#、java語(yǔ)言,也用JavaScript、Ruby、Python、Groovy做過(guò)一些東西,甚至為了理解函數(shù)式編程還專門學(xué)習(xí)了Haskell語(yǔ)言。這些語(yǔ)言都給我?guī)?lái)了實(shí)用的效果。比如我用Ruby寫(xiě)了一個(gè)插件,可以自動(dòng)把我主站上的博客同步到博客園中的博客來(lái)。我使用Groovy給我的Java代碼寫(xiě)單元和集成測(cè)試,比使用Java語(yǔ)言編寫(xiě)要快很多。我用Python和WebDriver寫(xiě)了一個(gè)論壇灌水工具來(lái)刷積分。你掌握的語(yǔ)言越多,你的視野就越廣,你對(duì)編程的理解就會(huì)越深入。當(dāng)然我不贊成盲目的求多,至少你要有2到3門精通的語(yǔ)言,從語(yǔ)言語(yǔ)法、語(yǔ)言運(yùn)行時(shí)、語(yǔ)言特性、語(yǔ)言API等方面都要有深入學(xué)習(xí)和見(jiàn)解,當(dāng)你再學(xué)習(xí)其它語(yǔ)言時(shí)也不會(huì)浮于表面的了。
6)這是最重要的一點(diǎn),時(shí)刻保持一顆好奇心,一顆堅(jiān)定不移的提高工作效率的決心。很多人都抱著差不多態(tài)度,心想“我雖不是標(biāo)準(zhǔn)指法,敲鍵盤速度也差不多”,“我IDE快捷鍵用的不多,也沒(méi)覺(jué)得那里影響到我開(kāi)發(fā)”,“我只會(huì)C#一種語(yǔ)言,還不照樣干到現(xiàn)在了嗎?”之所以有這種想法,是是因?yàn)槟銢](méi)有見(jiàn)到真正高效的人。我曾看到某IT界牛人那出神入化的VIM操作,簡(jiǎn)直已經(jīng)超越了指哪打哪的境界,已經(jīng)達(dá)到了鍵隨心動(dòng)的境界。我也看到某高級(jí)程序員使用IDE快捷鍵三下五除二就把一段丑陋的代碼給收拾的服服帖帖。耳濡目染之下讓我堅(jiān)定了這個(gè)決心,不做差不多先生。所以平時(shí)我和同事一起工作時(shí),就留心他們有哪些方法和工具來(lái)提高自己的工作效率。如果他們使用了一些好用的快捷鍵而我不知道,那我就會(huì)記下來(lái)下次自己用(快捷鍵熟練程度上我早已是我們項(xiàng)目組的number one)。如果看到他們使用了一些好的工具我也會(huì)立馬回去下載下來(lái)自己用。(比如前兩天我看到同事使用SuperPutty來(lái)連接遠(yuǎn)程主機(jī),其支持多tab方式,這正是我想要的功能。我回去立馬下載下來(lái),拋棄了以前的Putty)這樣時(shí)間長(zhǎng)了,集眾人之所長(zhǎng),你自然也成為效率達(dá)人了。
為了我追崇高效率那?我覺(jué)得最大的好處是能讓我的大腦從繁重的重復(fù)勞動(dòng)中解脫出來(lái),從而能集中精神思考更有價(jià)值的事情,而不是被一些雜音干擾。
-
程序員
+關(guān)注
關(guān)注
4文章
952瀏覽量
29805
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論