前些時候,老闆交給我一份考核題,讓我提意見.據說公司將用這它來考核公司員工的業務水平.我很快地瀏覽了一遍考核內容.無非是一些有關C++和JAVA 語言的小技巧.很象計算機專業本科生的期末考試題.我本人是不同意用這樣的方法來考核程序員的.在我看來一個優秀的程序員就象一位心靈手巧的主婦,她可能 沒有上過廚藝學校,但只要她拿起鍋碗瓢盆,就能作出美味佳餚,她可能沒有做過室內裝修,但只要她動動腦筋,便能就地取材,把一個小家布置得溫馨別致.同樣 的道理,一個程序員,他可能還沒有很多C++的實際操作經驗,但是他如果具有一個優秀程序員的品性和知識準備,對計算機語言的本質有一定理解,那麼無論是 C++還是JAVA也只不過是巧婦廚房裡的一道小菜罷了.
那麼怎樣才能成為一個優秀的程序員呢?這就是我這裡要討論的內容.
工欲善其事, 必先利起器
中 國人常說"巧婦難為無米之炊". 中國文化的聖人孔子也說:"工欲善其事, 必先利起器".意思就是說:一個做手工的人,要想把工作做得完善,應該先把工具準備好.程序員寫程序,首先離不開文本編輯器.一個優秀的文本編輯器,不但 能夠大大提高軟件開發的速度,減少軟件的漏洞,而且能夠使編輯過程不是那麼枯燥.我覺得用EMACS編寫軟件,就好像在玩遊戲,不同的鍵盤組合象變戲法一 樣產生奇異的效果.
目前軟件開發界的編輯器很多.對編輯器的選擇,很大程度上取決於程序員的習慣.有時候往往是一個偶然的機緣決定了他的嗜好和偏愛.我從事軟件開發十多年,作了很多項目,接觸了不少類型的編輯器(VIM, VISUAL STUDIO, ECLIPS)
我 始終認為EMACS是最適合程序員使用的編輯器. VISUAL STUDIO界面呆板,無生氣.圖形界面常常繁瑣而缺乏邏輯,要想將其個性化,更是十分困難.而且只能在微軟的系統上開發,其局限性自然不說自 明.ECLIPS很適合開發大型的JAVA語言程序,但使用者還是很容易落入圖形界面繁瑣的圈套里.VI( http://en.wikipedia.org/wiki/Vi )和VIM(http://www.vim.org)在UNIX世界很受歡迎,它尤其是UNIX系統管理員必不可少的工具.因為VI常常是很多大型 UNIX服務器上唯一具備的編輯器.程序員偶爾也會需要在這些大型服務器上編輯一些小文件,在這種情況,如果對VI或VIM一無所知,未免有些貽笑大方. 所以我的觀點是:日常開發最好用EMACS,但必須對VI或VIM有一定的了解.比方說一些簡單的指令,這樣緊急情況下,不至於太過菜鳥.
EMACS即
Editor
MACro
S(宏編輯器文本編輯器). EMACS誕生於1975年的MIT, 最初由
Richard Stallman協同
Guy Steele共同完成. 自誕生以來,Emacs演化出了眾多分支,其中使用最廣泛的兩種分別是:
1984年由Richard Stallman發起並由他維護至2008年的
GNU Emacs,以及
1991年發起的
XEmacs。XEmacs是GNU Emacs的分支,至今仍保持着相當的兼容性。它們都使用了
Emacs Lisp這種有着極強擴展性的
編程語言.
在 http://www.gnu.org/software/emacs/網站上讀者可以下載EMACS軟件,同時,該網站還提供了大量的學習資源.如果你 還沒有完全被你過去的編輯習慣所控制,那麼我建議你不妨靜下心來,用兩到三天的時間,認真閱讀網站上提供的使用手冊.邊讀邊試着編寫一些小程序.相信我, 這絕對是一筆一本萬利的投資.它將使你終身受益.
先談這些,有時間接着再寫