奧推網

選單
家居

【第734期】程式設計師進階必讀書:《sicp》改變你對程式設計的所有認識!

今天的內容是關於討論你認為哪些書對程式設計有影響。

「SICP」「SICP」,改變我對於程式設計以及世界觀的書籍。作為一個程式設計師,從各種途徑中都能夠聽到「SICP」是你進階不可不讀的一本書籍。在看了評論之後,覺得自己有必要去學學這本奇書的皮毛。目前只看完了一章,做完了第一章的題目。所以就只能拿第一章的內容來說事。改變我程式設計的部分:過程可以作為第一級的元素使用。

簡單地說第一級的元素能夠:

用作變數名;二,可以提供給工程作為引數;三,可以由過程作為結果返回;四,可以包含在資料結構中。

後面的三個特效能夠讓程式設計師在寫程式的時候,構建出表達能力強大,而且語法簡潔的過程;逐步地構建程式。在以前只見過指令式程式設計的時候,覺得寫程式就是應該像流水一樣,自然而然地透過每一個順推的步驟寫。這種情況下面,往往導致自己寫出來的程式都是以坨為計量單位的。當自己看到書上類似「使用牛頓法求平方根」這種問題,透過小的過程模組化,最後使用超級簡潔的方法呈現出來的時候,就覺得能夠這樣程式設計絕對是種享受。另:我覺得這部分的內容可能和「重構」那本書上講的各種重構方法是有異曲同工之妙的,只不過「重構」闡釋的方法,是從爛程式碼中提取出模組化的程式碼,而「SICP」上來就告訴你,好的程式碼,應該就是這麼寫的吧。

改變我世界觀的部分:第一章開篇的序言心智的活動,除了盡力產生各種簡單的認識之外,主要表現在如下三個方面:

將若干簡單認識組合為一個複合認識,由此產生出各種複雜的認識。

將兩個認識放在一起對照,不管他們如何簡單或者複雜,在這樣做時並不將它們合二為一。由此得到有關它們的相互關係的認識。

將有關認識與那些在實際中和它們同在的所有其他認識隔離開,這就是抽象,所有具有普遍性的認識都是這樣得到的。—- John Locke, An Essay Concerning Human Understanding簡單來說,知識的獲得可以透過:組合,對比,抽象來獲得。這三個方法,我表示夠我一生都受益了。我看書不多,這本書的內容到現在看的不多,但是能夠給我帶來很深感觸,讓我心甘情願花大力氣閱讀,去弄情況上面的知識,去用心做練習的,「SICP」是第一本。願自己能夠堅持地把這本書認真地學完。

「Apprenticeship Patterns」一本關於程式設計師職業生涯規劃的5星讀物。如果您想不斷地磨練自己的程式設計技術,如果您對於自己的程式設計師職業生涯感到迷茫,如果您是一個對於自己有要求的人,真心地建議您去看完這本書。

注:書中前面幾章的理念,不光適合程式設計師,還適合各種和技術相關的職業。重構。對於大部分的程式設計師來說,知道怎麼重構,絕對會讓你的程式碼質量上一層樓。程式設計師的思維修煉。個人覺得,根本不是針對程式設計師的,就是針對思維修煉的。雖然並沒有成一個體系,實用有效。

「Algorithms by Sedgewick」基礎的演算法入門書,有完整的 Java 程式碼,在 Coursera 上長期開課,作者和授課人都是 Sedgewick,高德納的入門弟子。對於那些一開始啃不下 CLRS 或者別的演算法書的人,這本書是一本很好的入門。

「駭客與畫家」如果你是個程式設計師,你應該讀它;如果你不是一個程式設計師,你可以讀它來讀懂程式設計師。

以上就是今天的內容,大家可以分享你們的小秘密書籍。