《深入理解計算機系統》這本書需要什麼水平能看懂?

這本書你們的是怎麼讀的,買了本,結果發現似乎是自己知識還不夠,好多都看不懂,只有少數幾章看的比較懂,你們都是怎麼讀這本書的?求方法。


我從大一之初就接觸了這本書,那個時候覺得它相當棒,能看的出來是一本好書,但是我閱讀的速度真的很慢。讀的過程可謂是充滿了絕望,因為我不知道自己什麼時候才能把它讀完。但是我一直也沒有放棄讀完它的想法。學校里不開這門課,但是當我學完了很多計算機課程後,我發現能把它讀完了。讀完後我很舒服,覺得自己成長了。後來反過頭來去看,其實中文版翻譯的不是很好,為了領悟得更透徹,我基本上還是利用電子詞典翻看了英文版的大部分。

這本書即講了硬體也講了軟體,算是把兩者很好地融合在了一起,這是本書對於絕大多數讀者來說最驚艷的地方。其實就我的口味而言,我先是更關注硬體,因為這是基礎,先把硬體搞明白了,才能做好軟體的優化。如果讓我建議的話,先把硬體的看明白,看的透透的。多看、多讀幾遍。

讀不完,讀不懂,沒關係,完全可以暫時放一放。這不是一本一下子就能完全讀懂讀透的書,希望你不斷地學習,不斷的去讀。這樣或許是讀這本書的最好狀態。

說實話,有時我覺得讀書這東西充滿了悖論,懂的東西你不用去讀,不懂的東西才需要去讀,但是不懂的話能讀的明白嗎?特別是有些東西是超越生活實踐經驗的,在平時你可能根本接觸不到CPU、內存等等這些的構造,你編起程序來也根本從不用考慮編譯器是怎麼工作的,但是現在突然要告訴你這些東西的原理、構造,很難想像,也很難接受,這些都正常。不過說實話,以我的經驗來看,越是難以讀懂的書,恰恰正是說明你知識的短板,讀懂後回報很大,所以加油。

人的提高,把不懂的書讀懂就是一個很重要的途徑,有時甚至是唯一的途徑,這是讀書的中心所在,也是你思考的所在,祝好。


配合我之前寫的一系列日誌應該可以比較輕鬆讀下去 -&> 【讀薄 CSAPP】零 系列概覽


我看深入理解計算機系統時,找到了cousera上南京大學的計算機系統基礎課程,發現基本就是CSAPP的內容,講解的非常通俗易懂,看書不明白的地方,看視頻就懂了!強烈推薦!!!!!!!https://www.coursera.org/learn/jisuanji-xitong/


CMU一般是給大二學生開那個課,學過C以後就可以上了。如果之前在*nix上有些許開發經驗也會有幫助,但不是必須的。最好結合lab一起看書,那兩個bomb lab還是很有意思的。個人感覺最難的是cache跟optimization的章節,因為我們那個學期短,沒有做相關的lab。


第一遍的時候,很多知識點不太能理解,我就看第二遍,第三遍,直到理解為止(我比較笨)……

其實有基礎的話,認真看一遍還是能看懂的,關鍵是要先有一定的計算機基礎,這樣比較容易理解。


指的是什麼什麼Bryant的那本CSAPP?

如果配合網站上的資料看,基本上會開關機就應該能看懂。

資料:http://csapp.cs.cmu.edu/public/students.html

如果看不懂就google,google不出來就去stackoverflow上問。


最近在看這本書,看的很開心,所以挖墳寫幾句,請見諒 :D

書的英文名字是 Computer Systems A Programmer"s Perspective,從程序員的角度來看計算機系統,感覺英文名字 + 中譯版名字對比會更知道這本書的意圖。

自己的書是去年買的,但是買來吃灰了。最近在看計算機組成的東西翻出了這本書發現真的很好看。很多遺留的小問題都慢慢解開了。

開始學習編程的時候一般只是應用層的編程,然後這個階段看這本書對大多數人來說可能會有些不知所云,好比還不太會開車的時候去研究汽車工作的原理。但是隨著開車開了一些時間之後會對汽車的工作原理產生興趣,這時候看相關講解汽車工作原理的書就是豁然開朗的感覺了,看完之後更清楚哪裡會對哪裡產生影響,開起車來會更有感覺。(沒開過車,這裡是 yy 出來的,不曉得對不對 - -)同樣隨著程序越寫越多,可能會對底層的那些東西是怎麼工作的產生很多疑問,比如這本書第一章的例子:一個 Hello World 程序是如何運行起來的。

所以真心希望有了些編程經驗卻不清楚應用層以下的那些東西的工作原理的同學回來看一下這本書,一定會很有收穫很開心的!


大三看的

你要有一定的編程經驗 這樣才會有足夠的疑惑感

尤其是稍微偏低層 系統級 映像最深的就是棧的調用了

然後才能覺得這本書會讓你恍然大悟 然後愛不釋手

很爽 真心的!


讀這本書用了兩個月(精確些是134小時),不算長是因為中間跳過、略讀了幾個章節(有些因為太偏硬體,有些是因為讀不懂)。

最開始讀的時候對C的掌握僅停留在「懂語法」層面上,不過個人感覺這對內容的理解並不大,書中用到C的地方都有專門寫給新手的tips。回頭看讀這本書的過程倒也幫我入了C的門,尤其是對底層的理解。

彙編是我針對這本書唯一去「補基礎」的部分,因為第三章讀起來發現實在太慢,後來就花了兩周刷完了清華王爽的《彙編語言》,再回去讀第三章就沒太大壓力了。

最後,習題一定要做,書中自帶小結答案,章節練習題網上也找得到詳解。

本書的使用指南 (評論: 深入理解計算機系統(原書第2版)) 建議閱讀這篇該書的「導讀」。


這本書,我幾年前看了,看的一知半解。最近又重新看的時候,就茅塞頓開。為什麼呢?

因為我現在具有抽象的意識了。這樣就明白,為什麼要有「進程」,「文件」這些概念。然後學起來比以前容易很多。

回到你的問題:具有抽象思維後的程序員就可以看懂。


它想要告訴你的內容是很好,很精闢。可惜不知道是翻譯問題還是什麼問題,寫書方式嚴重對新手不友好,寫得像文言文似的,我寧願它啰嗦點。由於人記憶力有限,你能想像我看到3.5.5章的時候,它拿著3.2章時只出現過一、兩的「抽象詞」來講嗎?不是我翻下博客,看到那個人把這本書的一兩句文言文翻譯成現代人話,我都看不下去。

書有點奇葩,真的,你看到第9章的時候,它有時表達的東西如果你看不明白,你需要翻回前一章?前兩章?前三章?也許應該翻回第一章,然後找到那句話,一對應起來就明白了。所以作為一個新手想看明白這本書,你應該把這本書背下來,它就像文言文一樣簡練精闢,幾乎每句話在後面的章節都不可或缺,這就是為什麼很多人要弄明白這本書,需要來來回回翻很多次。

這篇文章說出了我對《深入理解計算機系統》的心聲。


前言寫的很清楚。

這本在linux論壇有電子版下載,可以不用買。

看不懂的話去google play上借閱原版看英文的試試。我覺得應該不是出在譯文的問題上,因為這本絕對是翻譯中的經典,認真看不會理解困難。

具體哪一章不懂回到前言看都用到了哪些原理,對應查找別的閱讀資料補充。要是太細節的地方看不懂先放下繼續看。大一以前就可以上手的書,只要接觸一個月C大致會編程的時候這本就可以看。看作者的意思好像是Java比C更入門級,好反直覺。我比較渣,今天大概看了看,基本上包含了我的三門課,C語言,微機原理,以及計算機軟體技術基礎。學EE的表示,這個看不會可以放心睡覺當成課外讀物科科科~


【摘自京東讀者評論】《深入理解計算機系統》的作者提出一個很實際的要求:以前要求程序員都會寫彙編,
現在要求程序員都會讀彙編。這裡以一種「讀」的方式教人用彙編,不局限於很多細小的語法,讓僅僅懂得C的程序員也毫無障礙。僅僅100多頁,不僅初步講了
彙編的語法和使用,還配合大量的例子分析來解讀產生的彙編代碼,讓人理解深刻,實在是技高一籌。

更多內容:我是這樣啃《深入理解計算系統》的……


這書真的很棒!我讀完後受益良多!

1. 這本書需要什麼水平才能看懂

理想情況下,這本書是需要一定C語言基礎的。同時,我覺得如果是完全沒有基礎的人,一邊學C一邊看著書,也是應該能看懂得。

我是大一開始看的這書,我以前有些C的基礎,剛開始學CS那會,偶然看到一個關於參考書的list。就從淘寶(有很便宜的二手書/盜版書)買了這書和C Primer Plus。另外,牆裂推薦C Primer Plus和C++ Primer兩本書,寫得也是非常棒!不建議初學者讀C Programming Language什麼的。

自那以後,就是把CSAPP和C Primer Plus兩本書一起服用。爽(笑著流淚.jpg)

2. 我開始讀這書的時候是什麼樣的基礎

恩,以前寫過C, C++,但都是很簡單的那種。大一寫一個快速排序,寫了一下午。勉強算知道C入門了吧

3. 怎麼讀這本書

我說說我當年的方法吧。

這書對大一的我,蠻難的,剛開始進度也非常慢,就像題主說的,能看懂得很少。

但是!就像很多人說的,看不懂,你可以Google呀

然而,Google出來的...也經常看不懂(當然也可能是我語文英語不好啦...反正當時wiki上好多東西,我就是讀幾遍不理解)...

但是!還有計算機課的老師/助教呀!雖然可能和他們的課沒啥關係(我當年問的基本是C語言的老師/助教)。我下了課有機會就會去問。。事實證明這個方法非常有效牆裂推薦(機智.jpg)

在看懂的基礎上,我一邊學C,一邊用C去實現CSAPP中提到的一些現象/實驗(印象很深刻的是那個矩陣乘法的,同一種矩陣乘法,三種實現方法,性能差異居然會辣么大,確實非常...刺激?),這個策略非常有效。CS是需要動手的,許多東西,動過手之後才能真正理解。

在這個過程中,雖然這書有難度,但是在看的過程,可以感受到自己看待CS的角度在一點點發生變化,可以感受到自己的一直在提高。

如果你也這麼做,也感受到這種變化,我相信你會堅持把這本書看完的。

最後說說收穫吧。這本書看完之後... 感覺真是... 好多課都不用去上了... 相關課程學得也真是... 異常輕鬆。。。


學習和實踐了一點fpga包括各種組合時序邏輯的實現,x86計算機硬體架構電路實現包括內存,io等,linux操作系統和一些基本原理概念,彙編基礎,c語言基礎,回過頭來看,才發現這本書就是一本計算科學的聖經,才發現作者才是軟硬全能的大神。


大二時看過,那時懵懂,抄書吧…… 後來自學了彙編、寫x86平台os。真的很贊的一本書!奉勸學生們大學裡要花一年時間就研究它,做做習題。10年過去了,我現在重讀此書


這本書是高中基友他們學校本科生大二下學期的教材.你可以上 http://cs.cmu.edu 上面看看他們在大一和大二上學期的關於CS的課,就能得知其preRequisite. 據他說這門課在他們學校挺火的,每年都要搶.題主可以搜索一下 google: 15-213 cmu 2013 spring


計算機專業,大二買了此書,但直到大二升大三的暑假才開始真正學C語言編程,大三上三個多月看完了java核心技術,java程序語言設計,java 語言導學以及java多線程和並發兩書,同時及之後學習了計算機組成原理和操作系統和編譯原理,雖然有了編程和計算機的基礎,但仍解釋不清一個程序究竟是怎麼運行的,對編程一團亂麻似懂非懂。現在準備考研,發現本書可以整合硬體和操作系統知識,同時又能鞏固和補充考研知識,每晚圖書館回來,就翻翻該書,既實用又有趣,技術類書籍可以寫成這樣,真的很好。


書本前面部分,有作者關於本書需要的基礎知識的講解~


《深入理解計算機系統》一本由淺入深的計算機書籍,錯過這本書會是巨大遺憾,底層的機制都可以學到。


推薦閱讀:

htc vive的硬體性能到底處於什麼水準,它的價格有多大的下降空間?
MSRA 在五年之內會不會被微軟關閉?
有沒有可能讓計算機去理解代碼,從而寫代碼?
有哪些圖片你第一次看見就毫不猶豫的改成了電腦桌面?
C語言中「.」與「->」有什麼區別?

TAG:計算機 | CSAPP | 深入理解計算機系統書籍 |