計算機一些經典書籍動輒五六百頁厚的要命,真的要一頁一頁的讀嗎?

時間 2021-07-12 08:15:34

1樓:

你提的這三本,前兩本我是真的一頁一頁讀完了,收穫很大。我導師跟我說,每隔幾個月,就把深入理解計算機系統翻一遍,當然我沒做到,至今也就從頭到尾完整翻過一遍,零零碎碎地用到啥就翻過去看啥有一些。演算法4也是這樣,對演算法更有體會,看到了這些演算法的簡潔實現,感慨「大神就是大神」之餘,對那些看上去很複雜的演算法也不再還沒寫就懼怕了,有時候用到什麼會回來翻翻書,當工具書用了。

經典的書就是經典的書,是值得反覆看的。至少從頭到尾翻過一遍,偶爾再回來翻翻某些章節。《C程式語言》,我從頭到尾完整翻過3遍,單從語言以及對一些原理的理解上說,我敢說自己精通了。

經典是有必要讀的。實踐也是必要的。在學校裡寫5000行左右的小專案,比寫1000行以內的小程式體會更多收穫更大。

工作了,從頭開始構建乙個10萬行的專案,其中還涉及多人合作,體會又不一樣。我的觀點,理論結合實踐,兩手抓兩手都要硬。光有實踐,遇到點問題就撓頭了;光有理論,一些實踐中總結的經驗連聽都沒聽過,容易埋雷。

兩個例子。

1:剛工作時,組裡用Qt開發,我此前從沒接觸過GUI,只是C++底子還行。於是用一周時間上手Qt,立刻開始幹活。

沒過兩三個月,很多同事有問題都會問我。這就是底子厚基本功紮實的好處。

2:前段時間實現乙個協議,按協議的寫法:乙個傳送方可能對應多個接收方,如果傳送方1秒後未收到回執,就重傳。

我就原封不動,為每個接收方都搞了個1秒的定時器。後來看到同事的寫法:全域性只有乙個300毫秒的定時器,每次定時器超時,遍歷所有接收方,判斷需不需要重傳。

同事問我我搞那麼精確幹嘛?按我的寫法,如果接收方多了,定時器開太多,系統會慢。他這樣寫,無非是損失一點點精度,需求又沒說要把超時時間弄那麼精確,只要超過1秒給它重傳就行了。

我驚為天人,這就是我經驗不夠造成的,容易埋雷。

2樓:程式喵大人

分階段。拿《深入理解計算機系統》舉例。

如果你基礎一般的話,對作業系統的理解還沒有梳理出乙個體系,沒有達到可以構建「面」的層次,那其實我是建議你先把整本書通讀一遍的,當然,很多廢話略過。

3樓:AmberGarden

一般來說,某一方面的知識都是成體系的,而且有很多細節。如果乙個人在學習的時候喜歡從大局觀的角度上來看,那麼他就比較容易能夠了解各個知識點之間的關聯,對構建自己的知識體系幫助較大,而且學習效率較高。如果乙個人在學習時看的比較細,那麼他就能更清晰地了解區域性領域內的關聯關係,對實際落地的助力更多,缺點就是消耗的時間太多

從我個人的角度來說,體系和細節都應該注重。無論是高中搞競賽還是現在的學習中,這兩種學習方式我都會兼顧:

選取一本還不錯的書作為基礎書籍,先按章節學習理清整個知識脈絡。在該階段,我會在每學習完一段時間想想書裡講解的各種知識,並記錄下當時沒有理解或者思路並不清晰的問題。如果書中用大量篇幅講述了某部分知識但是我當時沒看懂,我也會記錄下來。

這是第一遍快速的讀,要盡量理清整個知識體系的脈絡,同時也允許自己有不理解的地方。在下一次讀這本書的時候,我們就需要特別關注這些問題。

再讀這本書的時候,你可能就會發現有些之前沒有弄明白的問題已經懂了。這是因為書對於知識的講述是線性的,而實際的知識體系是立體的。書籍只是找乙個最簡單合適的角度來切入這個知識體系,並不代表這些知識就一定與後面講解的知識沒有關聯。

因此再次閱讀時,哪怕你沒懂,學習的難度已經降低了,至少看懂的概率比一開始高了不少

最後這本書中的內容就可以作為你的基礎知識集。再看其它書籍的時候如果有了新發現,就可以將這本書沒講到的知識點記錄在書籍的夾縫(或者筆記)中

需要注意的是當前這本書是不是真的太細了。比如鍊表,把怎麼操作的思路給講得清清楚楚就好。如果它講了單鏈表,又把雙鏈表,環形鍊表又事無鉅細地講了一遍,那其實就是太細了

4樓:

目錄是文字媒介最偉大的發明,請依照目錄看自己哪些感興趣,哪些需要學習,很多書都可以被當作工具書需要就翻不需要就放著,沒人能告訴你你該學啥因為我們不了解你的情況,興趣,和水平。

5樓:

一頁一頁這樣幹過,但是第一遍的時候沒有這樣幹。最開始讀演算法的時候,只是大概了解了整體書內容結構。後續有針對性的讀取書中的內容。

6樓:

兩個最關鍵的點:你的目標是什麼,你要掌握什麼。

我們最常見的說法是,要構建乙個體系。作為乙個計科人,最能體現我們的專業性的第一性就是層次結構的計算機系統,第二性是沒有最好、只有更好(沒有一種演算法對於所有的問題都是最優的,沒有一種計算機系統對於所有的應用都是最優的,只有各種折衷)。

本科是打基礎的階段,所以,我們要掌握構建體系的一般性知識與技術,以及使用這些知識與技術構建體系的理論與方法。這些東西,我們要熟而又熟,成為本能。

在計算機學科的幾十年發展的歷史上,曾經提出的理論、方法與技術多如牛毛,最後留下來的東西,並不算多。另外,由於較前沿的研究需要相當的前置知識與能力,所以,90年代中後期的發展並不適合初學者學習。

所以,我的意見是,深入理解計算機系統、演算法4、演算法導論,都不太適合作為教材和主要學習材料。

如果你立志成為一名電腦科學某個方向的學者、專家,那麼,要精心規劃整個成長過程。

本科階段,要打好基礎,初步接觸某個方向。碩士階段,要初步構建出這個方向的體系,接觸前沿。博士階段,在這個方向的前沿進行探索。

博士畢業之後的前幾年,要開始進一步拓展這個方向,之後,開拓新的方向。

這裡面最重要的一點,就是學校的傳承、團隊的傳承。

7樓:

深入理解計算機系統做lab就好,幾個lab質量挺高的。

演算法書也是對著目錄把演算法掃一遍刷題,leetcode之類的。書反而是小頭。

正經躺在床上一本書掃一遍乙個晚上,大綱就知道了,計算機方向的,動手實驗一下就會了,實驗器材要麼電腦要麼伺服器,都在手邊。

8樓:舒琴

你花三個月讀三千篇各種資訊新聞零散的網路文章,基本三個月就忘乾淨了,

與你花三個月讀一本書,學到的東西大半生受益匪淺,

自己選。

事實可能是:你花一年讀十本普通計算機書籍,不如花一年精讀一本計算機經典書籍。二十個普通程式設計師,可能比不上乙個20X程式設計師。

肯花功夫的人,老天不會虧待他;想走捷徑的人,我不知道結果會怎樣。

真正需要你讀的書不會超過百本,但它們給你的教益可能是終生的。衡量一下投入產出比。

如何閱讀厚厚的經典技術書籍?化整為零,制訂計畫,堅持學習,嚴格貫徹,自會收到好的效果。

聰明的人肯花笨功夫。這裡的笨功夫就是讀必讀書籍,無論這書有多厚有多難。花不了這種笨功夫,泯然眾人矣,那就不要抱怨內卷嚴重了。

關於一些計算機基礎知識?

極端 需要數學基礎 高等數學,線性代數,概率論數理統計和隨機過程,離散數學,數值分析。數學基礎知識蘊含著處理智慧型問題的基本思想與方法,也是理解複雜演算法的必備要素。抄今天的種種人工智慧技術歸根到底都建立在數學模型之上,要了解人工智慧,首先要掌握必備的數學基礎知識。線性代數將研究物件形式化,概率論描...

數學和計算機哪個專業更好一些?

就是蹦 我是計算機專業,曾經參加數學建模的時候,你其實就發現計算機和數學不可分的,查資料就又會發現,很多計算機學習的演算法都會有數學專業的大牛參與。平時出去打ACM比賽的時候,做的每乙個演算法題,最終都會歸結到解乙個數學問題。如果乙個計算機專業的人將來做軟體開發什麼的,可能用前人造出來的演算法就可以...

能推薦一些學計算機基礎的書嗎?

zsam 個人覺得電腦科學概論是本很好的入門書 對於沒接觸過的 為什麼這麼說呢?因為這本書可以讓你較全面的了解很多方面的相關知識,有助於你學習的時候不限於單方面的範圍。看完後再去學習對應詳細的資料。這樣子感覺會好很多。 瀟瀟灑灑 搬運工感覺還可以 forry 不知道答主你具體情況怎麼樣,基礎到底怎麼...