做一個懶惰的程序員

首頁聲明一下,原文的地址是:http://blog.imalbert.com/archives/35.html,下面是原文:

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~(華麗麗滴分界線)

本文寫給所有可愛的程序員,(我)你們都是一羣可愛的,用雙手建造世界的思想家。

從今天起,我要做一個懶惰的程序員。

第一 拒絕鼠標

從今天,我將拒絕鼠標。

鼠標,是鼠標手的根源,無數的程序員都被鼠標手所困擾,這似乎已經成爲了程序人員的專利。我們養成了一個一個的“惡習”,比如,濫用鼠標右鍵刷新,看文檔的時候,喜歡用鼠標來標記正在閱讀的段落等等。這些非常規的使用使我們的手得了嚴重的疾病,我不知道,這樣繼續下去,當我們牙齒掉光的時候,是否還有能力撫摸妻子動人的面龐。

所以,我要從以下幾個方面拒絕鼠標的誘惑:(雖然某些時候它真的很方便)

1. 我要開始使用Emacs或是Vim

Emacs和Vim就是程序員的倚天劍和屠龍刀!花一點時間學習來學習它,即便我以後不做程序員了,也將會終生受益。因爲它同時也是普通人的編輯利器

作者本人曾經就是Emacs使用者,後來轉入了Vim。直言不諱的說,玩Emacs或Vim本就是一個享受的過程,因爲你總能無意間挖掘出它的一個又一個有趣用法。

如果你還執迷於Notepad++這些編輯器,看看這個Wiki:《Comparison of text editors》,你還有什麼理由不選擇它呢?

2. 我要使用鍵盤來瀏覽網頁

學會了Emacs或是Vim,我開始想把這種高效的用法用在瀏覽網頁上,畢竟這也會佔據我的大部分時間。

如果是Vim的話,可以選擇:Vimperator(firefox)或是Vimium(Chrome)

如果是Emacs的話,可以選擇:Firemacs(firefox)或是Edit with Emacs(chrome)

3. 我要使用鍵盤來操作系統

我要使用更多方便的工具來幫助我管理系統:

我要使用AutoHotKey,使重複工作一鍵完成。

我要使用Totoal Commander,使系統文件管理變成一件輕鬆而有效率的事情。

我要學習更多的快捷鍵,包括Win+R的常用命令Outlook的快捷鍵,讓這些以前只能緩慢移動鼠標的操作變成快捷的鍵盤操作。

第二 少用鍵盤,甚至少看屏幕

鼠標用的少了,鍵盤卻用得多了,這還不夠。

1 我將使用更多的時間來閱讀紙質的書籍,而非PDF

閱讀紙質書籍基於兩點:

第一,我們可能有Twitter,有新浪微博,有QQ,電腦面前閱讀有可能會使我們精力分散。

其二,閱讀紙質的書籍會更加集中精力,觸覺和視覺的結合會讓我們記憶更加深刻。

2 我將用更多時間進行交流和思考

我將騰出更多的時間用於思考,而不是膩在電腦面前。我將花更多的時間思考人生,思考設計,甚至思考我正在思考的東西。

第三 少寫代碼

1 構建自己的代碼庫

所有我寫過的代碼,我都要保存起來,反覆思考,修改,儘量讓其變成通用的代碼。

遇到所有我沒有寫過的代碼,我都要抓出其最獨立的代碼段,算法段,反覆思考,修改,讓其變成通用的代碼。

我要把所有我思考過的代碼都保存起來,放到我的代碼庫裏邊。遇到一個問題,先看看我的代碼庫裏有沒有?有的話就拿出來,直接用,或是修改一下再用,沒有的話才自己重新寫過,當然,這些新實現的代碼將再次進入我的代碼庫。如此一個良性循環,從此,很多相似的問題再也難不倒我,因爲我熟悉我的代碼就像熟悉自己的身體一樣。

因爲我承認:

1 我的記憶是有限的,它不能永遠記得所有細節。

2 再造輪子是一件可怕的事情,除非我能造得比人家更好。

2 讓代碼自己生成

最簡單的代碼生成是非邏輯生成,比如李先靜曾經舉過這樣一個例子:

前幾天遇到一個問題,要定義一組宏,它的格式是這樣的:

KEYMAP(GDK_Op_Left, GDK_F12, DIKS_F12)

KEYMAP(GDK_Op_Right, GDK_F13, DIKS_F13)、

大約有30多行,第一列的Op_Left之類是自定義的按鍵,是我們討論的結果,放在一個表格中,手工把這份表格轉換成以上的宏,不難也要不了多少時間,但這樣單調的事很容易出錯,特別對於我這樣粗心大意的人來說。於是決定用awk來做:

awk ‘BEGIN{i = 4} {print “KEYMAP(GDK_” $1 “, GDK_F” i “, DIKS_F” i “)”; i++}’ keys.txt

這就是代碼產生器!就一行代碼。簡單吧,它卻產生了30多行代碼。其實我經常在用這樣的代碼產生器,給我節省了不少時間,減少了出錯的可能。所以能用腳本就用腳本,腳本實現困難時才考慮用C/C++等編譯語言。

複雜的代碼生成便是邏輯生成,有這樣一篇文章可以參考:《淺談代碼生成

第四 不調試程序

我要抱着嚴謹的態度寫程序,我要如同追求藝術極致一般追求編碼的極致。雖然我們知道,這世界上有太多的程序員,他們遠遠比我們厲害。但這並不妨礙我們超越他們的腳步。

我要像熟悉自己的身體一樣熟悉我的代碼,熟悉我思維中的每一個誤區,每一個漏洞。我要寫出優雅,優美的代碼,而非依賴調試工具來找出問題。

我要善用我的眼睛,讓它接受每一段代碼,我要善用我的大腦,讓它模擬出每一段代碼的問題。我的思維會爲我調試一條語句,不管其是空指針還是內存泄露。我的眼睛會爲我找出每一個語法錯誤,不管是我粗心還是大意。(參見李先靜的博客:《程序員成長計劃》,像機器一樣思考, 1, 2, 3

寫完一段代碼我不會心急地運行,看它的效果,我會花上10分鐘檢查我的代碼,直到我確定,或者是“自以爲”是bug 0.

從今天起,做一個懶惰的程序員,雖然我知道這條路很難走,但這並不妨礙我的熱情。因爲我知道,總有一天,我會變得比那些現在我只能仰望的人更加懶惰!

發佈了24 篇原創文章 · 獲贊 12 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章