如果你是班傑明 富蘭克林,會怎樣學習程式設計?

2021-07-07 07:13:30 字數 1337 閱讀 4305

優秀的程式設計方法是極難教的。程式設計書籍大抵都是這樣開頭的:「這是x方法的例子,還有下面這個例子」。教教基礎是容易的,因為基礎知識也就那麼多。難就難在,要教明白每種選擇帶來的結果。一般我們會建議多寫**,慢慢提高水平。這是必要但非充分條件。要想學的更好,我們還要判斷應該寫哪些**,以及如何改善這些**。

我們接下來轉向與程式設計緊密相關的領域——寫作,尋求改善技藝的靈感。從很多方面看,程式設計就像是寫作。二者的核心關注點,都是以容易溝通的形式表達自己的思想。我們會發現二者都很困難,因為我們的思想是高度密集交錯的,而文字又是極其地線性化。利用文字,我們有無數中表達思想的方法,這使得學習寫作的藝術,以及程式設計的藝術,變得很困難。

幸運地是,班傑明·富蘭克林記錄下了他鍛鍊寫作技巧的方法。我們只需要檢視amazon**上傳記暢銷書單,就會發現富蘭克林的寫作水平之高超。數百年後,他的自傳仍位居暢銷書之列。如果這都證明不了他的寫作能力,我不知道到底還有什麼可以證明。

班傑明在少年時期就找到了練習的方法,並且一直刻苦地按這種方法練習寫作。下面是他的自傳中相關介紹的摘錄。

大約在這時候,我偶然看到了一本《旁觀者》的零本,是第三冊。在這以前,我從未曾看見過這個刊物。我買了這本散冊,反覆讀了幾遍,十分中意,我認為文章寫得好極了,如果可能的話,我想模仿它的風格。

因此我從中選了幾篇文章,簡要地摘錄下了每一句的大意,接著把它們擱置幾天。然後不看原書,用我自己想得起來的合適辭句,把每乙個句子盡量完整地表達出來,又湊成整篇的文章,使它表達得像以前一樣地完整。最後,我把我自己寫的《旁觀者》與原文比較,發現了一些我的錯誤,作了修正。

但是我發現我的詞彙貧乏,或是說我不能很快地想起適當的詞來用。我想,假如我以前沒有放棄寫詩的話,那時候我的詞彙一定會豐富得多了,因為經常不斷地有機會尋找具有同樣意義而有不同長度的詞去適合詩的韻律,或是不同音素的詞去湊韻腳,會迫使我不斷地搜尋具有不同形式的同義詞,這將有助於我記憶這些不同的詞並使我掌握它們。因此,我把其中的一些故事改寫成了詩,過了一些時候,當我差不多已經遺忘了原來的散文的時候,我又把它們重新還原。有時候我也把我摘錄的思想搞亂了,經過幾個星期以後,設法把它們用最好的次序排列起來,然後再把它們寫成完整的句子,組合成文章。這樣做,是為了教我如何整理思想的方法

《旁觀者》:2023年11月8日

找乙個你特別喜歡的程式,閱讀它的**。

記錄下每個主要元件的角色、輸入和輸出。

記錄下每個元件之間是如何互動的。

重寫這個程式。

把你的**與源**進行比較。

記錄下你要在哪方面改進,並學習相應的知識。

不要只是一味地寫程式。通過學習偉大的程式,並嘗試模仿這些程式,將會極大地提公升你的能力。

如果你覺得本文介紹的方法有用,請與朋友分享!每一次分享,都是乙份關愛!

譯文:

如果你是ip,你會怎麼選

如果你是網路層,你更喜歡icmp tcp udp三種報文中的哪乙個?如果你了解mtu和mss,那你應該很容易做出選擇 就像選擇物件一樣,你首先要了解對方是誰,有什麼優缺點,能給你帶來什麼 internet control message protocol,ip層的乙個組成部分,主要用來傳遞差錯報文以...

如果你是我的傳說

如果你是我的傳說 幽谷,有我 最驕豔的靈魂 傲立風中 美麗的無奈 為誰開 為誰紅 寂寞冰心 渴望 襲我暗香 兩相望問古今 情愛難為幾何 夢裡疏香暗度 正是消魂時節 花身應惜惜 投懷 送抱 君念我醉狂無?靜靜地看著你 讓我 讀你 眼底最深的曖昧 洩露了內心的渴望 等待你傾吐 最浪漫 最美的 動詞 河灘...

對於筆試題,如果讓你出?你會怎麼出?

對 裡面的很多東西都在不斷的嘗試,比如說對讀取 章節內容的方式,用httpwebrequest建立請求,httpwebresponse接受請求返回的資料方式,發現會時不時報一些異常 伺服器提交了協議衝突。這種異常是間斷性的,用socket方式訪問讀取偶爾有出現 伺服器積極拒絕,基礎鏈結已經關閉。後面...