天天看點

碼農提高工作效率的幾種方式

俗話說,天下武功,唯快不破。也就是說要練成天下高手的話,出招速度一定要快,這樣才能在江湖上立足,不至于掉了腦袋。而程式員要在IT界混出個名堂,也要有高效的工作效率才行。IT行業時時刻刻都産生着新知識、新技術,要想跟上變革肯定要有幾把刷子。

而我本人很喜歡各種各樣的方式來提高自己的工作效率,可以分享給大家一些經驗。

  1. 鍵盤功底要紮實。敲鍵盤時要使用标準指法。可能你認為這是程式員的基本功,可是我發現其實很多程式員都做不到這點。看着他們敲代碼時那笨拙的指法我就心急。其實煉成标準指法不難,相當年我還是一指禅,打字極慢,痛定思定,在一周内我打字必用标準指法,再别扭也要堅持,一周後就适應了标準指法了。現在不說運指如飛也算是略有小成。練習指法和鍵盤速度可以給大家推薦一些網站:http://10fastfingers.com/typing-test/english,這個就是練習标準指法的,我可以輕松上60 WPM(每分鐘60單詞),有個外國同僚可以達到130以上,那才叫恐怖。http://typing.io/lessons,專門供程式員練習敲代碼的網站,融合了各種括号和标點,難度有點大。
  2. 要熟悉IDE的各種快捷鍵及特性。IDE基本上是碼農們上班中使用時間最長的軟體。首先要選擇一個趁手的IDE,俗話說,工玉成其事,必先利其器嘛。如果是C#陣營的那肯定是最新版的Vistual Studio了,如果是Java陣營的話當然是Intellij了(eclipse作為開源IDE,真心比不過Intellij)。我現在使用Intellij可以在95%的情況下不用滑鼠,全鍵盤完成開發過程中的大部分操作。我覺得沒有什麼常用快捷鍵、不常用快捷鍵之分,隻要你知道的快捷鍵就要拿來用。尤其是各種重構快捷鍵必須要熟練掌握,當我看到碼農修改變量名時不用重構快捷鍵,而是自己手動在引用的地方一個個改,然後編譯查錯時,真為他們捉急。還有各種inline,introduce的快捷鍵真是好用到爆,掌握了這些快捷鍵可以說對代碼進行任何重構都不費除灰之力,我們的注意力也從手動修改代碼轉移到如何發現壞味道了。Vistual Studio中推薦安裝ReSharper,其開發公司與Intellij開發公司是同一家。除了重構快捷鍵,還要掌握一些IDE的特性,比如調試時可以插入指定條件來命中斷點等,這些就要平時的積累和學習,另外還有好奇心。我敢說你現在挨個看IDE菜單,至少有30%功能你從沒用過或不知道是幹什麼用的,其實裡面有些功能是非常實用的,隻是你沒嘗試而已。
  3. 至少熟練掌握一種shell終端。作為程式員老用圖形化界面咋行,要用那種古老的指令行界面才能顯示出你的高深嘛!滑鼠點界面誰都會,而指令行界面不是誰都能駕馭。有些功能在指令行下要比圖形界面下高效N倍。比如我使用git送出檔案時都是在指令行下檢視哪些檔案被修改了,哪些是新添加的,修改的部分是哪些等。使用圖形化界面要用滑鼠點來點去,效率實在太低。Linux系統下的終端太多了,就不推薦了。Mac系統下推薦使用iTerm2這個殼,其比MAC自帶的terminal多了不少實用的特性,也能友善切換自己喜歡的配色。Windows下當然首推Windows Power Shell了。Windows Power Shell本身內建了常用的實用工具,并且與.net framework無縫結合,這點是那些在Windows上的類Linux模拟器(比如Cygwin)是遠遠比不了的。
  4. 具有一定編寫shell腳本的功底。光會用現有的腳本還不行,還要會根據情況編寫腳本來實作自己特定的一些目标。比如我使用MAC機上的終端時,經常需要在不同目錄間跳來跳去,每次都打一串的

    cd …..

    很麻煩,後來我就自己寫了一個小工具,可以給指定的目錄起别名,想要跳到這個目錄隻要敲别名即可(參見http://www.huangbowen.net/blog/2013/02/16/gtshell/)。還有我在Windows系統上工作時,也經常編寫一些Power Shell腳本,比如一個指令就啟動指定的FTP伺服器,一些小指令用來實作快速在不同項目源碼間切換并執行建構指令等。這些指令編寫起來都很簡單,在提高工作效率方面很好幫助,因為一些常用的費時的操作每天重複N次,讓人很厭煩,如果能夠使用腳本将其自動化起來,豈不是就把自己給解脫了?
  5. 多語言程式設計。在這個世界有太多太多的程式設計語言,但凡稍微流行的程式設計語言都有自己獨特的優勢,而我們要善于利用每種程式設計語言的特點,而不是整天吵鬧那種語言更強大。我自己熟悉C#、java語言,也用JavaScript、Ruby、Python、Groovy做過一些東西,甚至為了了解函數式程式設計還專門學習了Haskell語言。這些語言都給我帶來了實用的效果。比如我用Ruby寫了一個插件,可以自動把我主站上的部落格同步到部落格園中的部落格來。我使用Groovy給我的Java代碼寫單元和內建測試,比使用Java語言編寫要快很多。我用Python和WebDriver寫了一個論壇灌水工具來刷積分。你掌握的語言越多,你的視野就越廣,你對程式設計的了解就會越深入。當然我不贊成盲目的求多,至少你要有2到3門精通的語言,從語言文法、語言運作時、語言特性、語言API等方面都要有深入學習和見解,當你再學習其它語言時也不會浮于表面的了。
  6. 這是最重要的一點,時刻保持一顆好奇心,一顆堅定不移的提高工作效率的決心。很多人都抱着差不多态度,心想“我雖不是标準指法,敲鍵盤速度也差不多”,“我IDE快捷鍵用的不多,也沒覺得那裡影響到我開發”,“我隻會C#一種語言,還不照樣幹到現在了嗎?”之是以有這種想法,是是因為你沒有見到真正高效的人。我曾看到某IT界牛人那出神入化的VIM操作,簡直已經超越了指哪打哪的境界,已經達到了鍵随心動的境界。我也看到某進階程式員使用IDE快捷鍵三下五除二就把一段醜陋的代碼給收拾的服服帖帖。耳濡目染之下讓我堅定了這個決心,不做差不多先生。是以平時我和同僚一起工作時,就留心他們有哪些方法和工具來提高自己的工作效率。如果他們使用了一些好用的快捷鍵而我不知道,那我就會記下來下次自己用(快捷鍵熟練程度上我早已是我們項目組的number one)。如果看到他們使用了一些好的工具我也會立馬回去下載下傳下來自己用。(比如前兩天我看到同僚使用SuperPutty來連接配接遠端主機,其支援多tab方式,這正是我想要的功能。我回去立馬下載下傳下來,抛棄了以前的Putty)這樣時間長了,集衆人之所長,你自然也成為效率達人了。

為了我追崇高效率那?我覺得最大的好處是能讓我的大腦從繁重的重複勞動中解脫出來,進而能集中精神思考更有價值的事情,而不是被一些雜音幹擾。

作者:黃博文@無敵北瓜 

出處:http://www.cnblogs.com/huang0925

黃博文的地盤

繼續閱讀