不得不說,這本書比起其他一些講程式設計的書籍來說,似乎顯得有些「功利」了,就是從面試出發,告訴你乙個個的問題和解決方案。很直接,但也很有效。
首先呢,由於我還是乙個學生,也並不算是什麼業界眾人,所以一些業界眾人不重視基礎導致看到這本書立馬有種茅塞頓開的感覺我並沒有,反而是對於這種問題有一種油然而生的親切感。我在上學期的資料結構課程中,剛剛學習了這些相關的問題的基礎知識,可以說看到問題以後第一時間也有一些想法。但是在看到後面的除去最優解的時候,我反而沒那麼樂觀了。為何?即,在我已經學過高階的方法,例如雜湊表,看到相應的問題時自然很容易想到去用這個方法,但是呢,如果我沒有學過,這個情形就很像是在工作中遇見乙個全新的問題的時候,我要怎麼去解決它。很可惜,當我設身處地去思考的時候,一頭霧水。
其實呢,說到底,書中大部分都是演算法問題。的確相比起一些枯燥的功能性程式設計問題來說,他要有趣很多,再配合上乙個較為貼切的問題背景,讓人有了一種,我真的通過程式設計解決了生活中的一些問題的感覺。比起acm的需要大量數學知識來解決問題,這本書的作者,把這些問題變得更加輕鬆,更像是乙個程式設計問題。
《程式設計之美》不能算是一本很優秀的演算法入門書,它沒有具體地講有多少種排序演算法,沒有講鍊錶、棧和佇列、樹、圖以至於網路,也沒有具體地系統講關於時間複雜度的分析。但是我認為,這正是這本書的優點所在。程式設計之美》就很好,我想編輯可能和我的想法一樣,他們把那些枯燥乏味的演算法基本知識全部拋開,只把那些程式中美麗的東西以一種平易近人的口吻徐徐道來,讓你沉浸其中,欲罷不能。試想,在書架床頭放這麼一本書,當你工作之餘,信手拈來看上幾頁,或仔細思考那些題目中的玄機,或看看問題的解答中閃耀的智慧型的光芒,是不是也會被那些美麗的東西感染,進而更喜歡自己的程式設計工作,更何況那些問題的解答也會給你帶來實用性的知識。
就裡面的題來說,關鍵的不是如何解決,而是如何一步步走到最終的結果。這個思考的過程,才是最珍貴的。
隨手開啟,找道題,或者看完題後先自己想方法,然後和書裡的說明相互驗證,或者一點點看下去,邊看邊思考,這兩種方法都能得到很多樂趣。書中很多問題都是先給出直觀解法,通常這都是效率很低但最容易理解的,然後分析什麼地方可以改進,比如將問題不停分解,分解到可以一眼看出答案,然後遞推出整個問題的解;對於一些一眼看不出答案的問題,可以先簡化,比如2維化一維,比如假設初始只有乙個數需要處理等等,對於簡化的問題通常比較容易得出答案,然後再擴充套件得出原問題的解。這種方式不僅給出問題的解法,還給出了思考的過程,下次遇到問題,就可以依照這個思考過程來解決問題。
Linux核心設計與實現第十周讀書筆記
關於裝置驅動與裝置管理,我們討論四種核心成分。在linux以及所有unix系統中,裝置被分為以下三種型別 並不是所有裝置驅動都表示物理裝置。有些裝置驅動是虛擬的,僅提供訪問核心功能而已。我們成為 偽裝置 支援模組的好處是基本核心映象可以盡可能地小,因為可選的功能和驅動程式可以利用模組形式再提供。模組...
第十周周小結
2.本次工作任務 本週老師沒有明確的給每個團隊留這週的作業,因為每個團隊的專案進入到了開發階段,老師只是要求每個團隊每天必須有要有明確的任務,提交量和團隊內部每日例會總結上傳到碼雲倉庫,助教每天每天進入倉庫檢視,他們專案倉庫的提交結果並進行點評和打分。我負責的團隊 web5組,web8組,web9組...
第十周總結
這周一開始說的是要考試,但是最後又說等通知,所以就有時間複習了,要是真的這周考試那就涼涼了。之前學的有的忘了,有的是根本都不會,反正都得從頭開始看。這周講課的時候我看了看講課表,嗯,下下個星期就到我了。下個星期又要考試,所以說還是考試重要,講課先放到一邊,等考試過了再說,畢竟考的那兩門都挺難的。不過...