小時候?qū)W寫字的時候。用鉛筆寫字,寫錯了,就會用個橡皮擦去擦掉,然后再繼續(xù)寫。而我小時候,因?yàn)橘I了劣質(zhì)橡皮擦,擦了之后弄的本子又臟又亂。父親看到了之后,就給我一支鋼筆,讓我用鋼筆寫字。就這樣,我在小學(xué)二年級下學(xué)期開始用鋼筆寫字了。而且之后我還練過毛筆字。我父親就是個書法高手。
有趣的是,雖然鋼筆寫錯了之后,不能擦掉,劃個斜杠,旁邊從新寫。但隨著一次次的認(rèn)真去寫,寫錯的幾率越來越低。后面形成一個習(xí)慣,就很難寫錯字了?,F(xiàn)在雖然寫字的地方越來越少,但寫出來,都說我寫字好看……慚愧,作為我父親的兒子,如果寫個字還拿不出手,那就不配當(dāng)兒子了。
然后看那時的同學(xué)們,不管寫的好看與否,但寫錯很容易。而且橡皮擦?xí)屓擞幸蕾囆睦?,而不想去糾正為什么寫錯了。擦了可能就忘了為什么寫錯。
我開始干程序猿這個行業(yè),開始學(xué)的時候,調(diào)試器是必備的工具。但久而久之,我發(fā)現(xiàn),調(diào)試器其實(shí)就像我學(xué)寫字的時候的那個“橡皮擦”。讓你找問題是編譯后的問題,更容易忽視編碼本身的問題。
當(dāng)我一次次的忍住不用調(diào)試器的時候,我多次審查我的代碼,從基本解決出錯的根源。久而久之,調(diào)試器越來越用不上了。而且形成了一個更良好的寫代碼習(xí)慣,以及審查代碼的經(jīng)驗(yàn)。如果出現(xiàn)一個問題,我可以直接通過上下文就找到出錯地點(diǎn)。最終無法解決問題,才會啟動調(diào)試器去解決。
學(xué)新的語言,比如Lua,好多人都問,有沒有調(diào)試器?我一般會告訴剛學(xué)語言的初學(xué)者。不要用調(diào)試器,一開始會很難受,但久而久之,就會知道,不用調(diào)試器,寫出來的代碼質(zhì)量更高。而我現(xiàn)在寫Lua這樣的腳本語言的代碼,根本就不用調(diào)試器。
其實(shí)這也是我一個感悟,不僅僅是干我這個行業(yè)。其實(shí)很多行業(yè)都有“糾錯”的最后工具,但依賴這種工具會讓行業(yè)能力越來越差。
忍受開始的不熟練,放棄那個橡皮擦。