1. 程式人生 > >第十周讀書筆記

第十周讀書筆記

什麽 樂趣 地方 編程之美 直接 容易 基本知識 是不是 中大

  不得不說,這本書比起其他一些講編程的書籍來說,似乎顯得有些“功利”了,就是從面試出發,告訴你一個個的問題和解決方案。很直接,但也很有效。

  首先呢,由於我還是一個學生,也並不算是什麽業界眾人,所以一些業界眾人不重視基礎導致看到這本書立馬有種茅塞頓開的感覺我並沒有,反而是對於這種問題有一種油然而生的親切感。我在上學期的數據結構課程中,剛剛學習了這些相關的問題的基礎知識,可以說看到問題以後第一時間也有一些想法。但是在看到後面的除去最優解的時候,我反而沒那麽樂觀了。為何?即,在我已經學過高級的方法,例如哈希表,看到相應的問題時自然很容易想到去用這個方法,但是呢,如果我沒有學過,這個情形就很像是在工作中遇見一個全新的問題的時候,我要怎麽去解決它。很可惜,當我設身處地去思考的時候,一頭霧水。

  其實呢,說到底,書中大部分都是算法問題。的確相比起一些枯燥的功能性編程問題來說,他要有趣很多,再配合上一個較為貼切的問題背景,讓人有了一種,我真的通過編程解決了生活中的一些問題的感覺。比起ACM的需要大量數學知識來解決問題,這本書的作者,把這些問題變得更加輕松,更像是一個編程問題。《編程之美》不能算是一本很優秀的算法入門書,它沒有具體地講有多少種排序算法,沒有講鏈表、棧和隊列、樹、圖以至於網絡,也沒有具體地系統講關於時間復雜度的分析。但是我認為,這正是這本書的優點所在。編程之美》就很好,我想編輯可能和我的想法一樣,他們把那些枯燥乏味的算法基本知識全部拋開,只把那些程序中美麗的東西以一種平易近人的口吻徐徐道來,讓你沈浸其中,欲罷不能。試想,在書架床頭放這麽一本書,當你工作之余,信手拈來看上幾頁,或仔細思考那些題目中的玄機,或看看問題的解答中閃耀的智慧的光芒,是不是也會被那些美麗的東西感染,進而更喜歡自己的編程工作,更何況那些問題的解答也會給你帶來實用性的知識。

  就裏面的題來說,關鍵的不是如何解決,而是如何一步步走到最終的結果。這個思考的過程,才是最珍貴的。隨手打開,找道題,或者看完題後先自己想方法,然後和書裏的說明相互驗證,或者一點點看下去,邊看邊思考,這兩種方法都能得到很多樂趣。書中很多問題都是先給出直觀解法,通常這都是效率很低但最容易理解的,然後分析什麽地方可以改進,比如將問題不停分解,分解到可以一眼看出答案,然後遞推出整個問題的解;對於一些一眼看不出答案的問題,可以先簡化,比如2維化一維,比如假設初始只有一個數需要處理等等,對於簡化的問題通常比較容易得出答案,然後再擴展得出原問題的解。這種方式不僅給出問題的解法,還給出了思考的過程,下次遇到問題,就可以依照這個思考過程來解決問題。

第十周讀書筆記