我最近才意識到,如果你對著電腦,用著編譯器、IDE 和工具等,是搞不出什麼好程式碼的。最佳的程式設計地點是——遠離你的這些工具——在一個能讓你正確思考的地方,有條不紊地寫程式碼。一般來說,對於一種你熟的不能再熟的程式語言,在你的大腦計算機裡翻譯程式,甚至和用編譯器編譯(還有直譯器解釋)是一樣容易的。甚至,你可能最後想出來的程式比計算機更復雜更酷。
有一次,我在火車上旅行。我雖然帶了筆記本,但是沒有網。而不幸的是,我用的是商業程式語言(IDL),需要得到網站許可方能使用。但是沒網就意味著得不到網站的授權,得不到網站的授權,就意味著我就完全沒法執行編譯器和 IDE。哦,my God!IDL 的商業許可不但貴,而且它的編譯器還限制我在自己的編輯器上寫程式碼,這個破程式語言,誰愛用誰用!但是我想說的是,這件事啟發了我。
我記得我在哪裡看到過這樣一個帖子,概括起來的中心意識是:我從我第一個老闆那學到的其中一個最好的教訓是:當你的程式碼不能如期執行時,不要老是依賴偵錯程式,試著自己思考一下。 但是因為有了編譯器,使得很少有人會去這麼做。這種心態很容易理解,也很正常。我們一般的編碼流程是:
1) 寫程式碼,即使寫得很差
2) 編譯之後執行程式碼
3) 用簡單的事例測試
4) 發現不能工作
5) 小小的改一下,再看看問題是否能解決
6) 不斷重複過程
最後得到的程式碼很可能滿是 bug、不便於測試,然後程式設計人員自己都無從下手了。
遠離你的電腦,迫使你不得不先在自己的大腦裡思考一遍——當然,這會比你用電腦來編譯和執行程式碼所花費的時間更長。但是,你不會想著——在程式碼裡小修改一下再執行看看——這種愚蠢的事,你會思考要用哪些程式碼執行什麼。也正是在火車上的那一天,我意識到,自從我過了 Computing A-Level 考試,我就再也沒有在紙上寫過一句程式碼。
在另一次我寫程式碼的時候,我想試試能不能遠離電腦來寫程式碼,我先是想出了一段高質量基本無 bug 的程式碼,然後寫在紙上面,思考是否有需要糾正的,然後複製到電腦上,再想想有沒有問題了,最後才在編譯器上編譯。而我從紙上拷貝過去的程式碼,儘管有涉及大量遞迴的影像分割程式,但是奇蹟般的,我一次就成功了!
這種感覺真的超級棒。最後,我希望我的這個建議能對各位有用!
英文原文:Want to write some code? Get away from your computer!
本文轉載自:http://news.html5tricks.com/code-better-get-away-from-pc.html