本杰明·富蘭克林會怎樣學習編程?
優秀的編程方法是極難教的。編程書籍大抵都是這樣開頭的:“這是X方法的例子,還有下面這個例子”。教教基礎是容易的,因為基礎知識也就那么多。難 就難在,要教明白每種選擇帶來的結果。一般我們會建議多寫代碼,慢慢提高水平。這是必要但非充分條件。要想學的更好,我們還要判斷應該寫哪些代碼,以及如 何改善這些代碼。
我們接下來轉向與編程緊密相關的領域——寫作,尋求改善技藝的靈感。從很多方面看,編程就像是寫作。二者的核心關注點,都是以容易溝通的形式表達自 己的思想。我們會發現二者都很困難,因為我們的思想是高度密集交錯的,而文本又是極其地線性化。利用文本,我們有無數中表達思想的方法,這使得學習寫作的 藝術,以及編程的藝術,變得很困難。
幸運地是,本杰明·富蘭克林記錄下了他鍛煉寫作技巧的方法。我們只需要查看Amazon網站上傳記暢銷書單,就會發現富蘭克林的寫作水平之高超。數百年后,他的自傳仍位居暢銷書之列。如果這都證明不了他的寫作能力,我不知道到底還有什么可以證明。
本杰明在少年時期就找到了練習的方法,并且一直刻苦地按這種方法練習寫作。下面是他的自傳中相關介紹的摘錄。
大約在這時候,我偶然看到了一本《旁觀者》的零本,是第三冊。在這以前,我從未曾看見過這個刊物。我買了這本散冊,反復讀了幾遍,十分中意,我認為文章寫得好極了,如果可能的話,我想模仿它的風格。
因此我從中選了幾篇文章,簡要地摘錄下了每一句的大意,接著把它們擱置幾天。然后不看原書,用我自己想得起來的合適辭句,把每一個句子盡量完整地表 達出來,又湊成整篇的文章,使它表達得像以前一樣地完整。***,我把我自己寫的《旁觀者》與原文比較,發現了一些我的錯誤,作了修正。
但是我發現我的詞匯貧乏,或是說我不能很快地想起適當的詞來用。我想,假如我以前沒有放棄寫詩的話,那時候我的詞匯一定會豐富得多了,因為經常不斷 地有機會尋找具有同樣意義而有不同長度的詞去適合詩的韻律,或是不同音素的詞去湊韻腳,會迫使我不斷地搜索具有不同形式的同義詞,這將有助于我記憶這些不 同的詞并使我掌握它們。因此,我把其中的一些故事改寫成了詩,過了一些時候,當我差不多已經遺忘了原來的散文的時候,我又把它們重新還原。有時候我也把我 摘錄的思想搞亂了,經過幾個星期以后,設法把它們用***的次序排列起來,然后再把它們寫成完整的句子,組合成文章。這樣做,是為了教我如何整理思想的方法
本杰明·富蘭克林式編程練習模式
-
找一個你特別喜歡的程序,閱讀它的代碼。
-
記錄下每個主要組件的角色、輸入和輸出。
-
記錄下每個組件之間是如何交互的。
-
重寫這個程序。
-
把你的代碼與源代碼進行比較。
-
記錄下你要在哪方面改進,并學習相應的知識。
不要只是一味地寫程序。通過學習偉大的程序,并嘗試模仿這些程序,將會極大地提升你的能力。
如果你覺得本文介紹的方法有用,請與朋友分享!每一次分享,都是一份關愛!