有哪些比較基礎的計算機書籍?

要求是這樣的:

1)建立起計算系統的概念,理解計算系統自底向上、逐次構造的過程,了解經典計算系統

的工作基礎;

2) 了解計算機系統的底層機制,包括數據的機器級表示、數字邏輯、馮·諾伊曼模型、機器

語言、彙編語言、輸入和輸出、Trap 機制等;

3) 掌握結構化程序設計語言基礎,包括變數和運算符、類型、表達式、簡單I/O、控制結構、

函數、數組和指針等;

4) 理解結構化程序設計,能夠利用自頂向下、逐步求精的方法完成小規模的結構化程序;

5) 掌握系統地測試小規模程序的技術、方法與工具,掌握程序調試的技術、方法與工具;

6) 了解基本的數據結構與一些簡單演算法,包括數組、棧、鏈表、遞歸、順序查找、折半查

找、插入排序等。


按照題主的問題編號逐個回答

1)編碼:隱匿在計算機軟硬體背後的語言,此書從信息的編碼,數字的不同進位表示,到計算機採用的二進位機器級表示開始,到用電路構建一個簡單的加法器,觸發器,計數器,存儲器,甚至一個具有控制器,運算器,存儲器的簡易CPU,娓娓道來,真是醍醐灌頂。最後還談到了圖形界面的原理。此書作者更是被傳為聖經的《Windows程序設計》的作者Charles Petzold。讀完此書可對計算機硬體的原理與設計有一全面深入之認識,猶如身處群山之巔,一覽無餘。

2)深入理解計算機系統 上一本《編碼》通俗易懂,即使沒有計算機相關知識也能懂,但缺乏一些計算機機制的介紹。此書是國外著名的介紹計算機系統方面的書,從程序員的角度帶你暢遊計算機系統架構。涉及程序的機器級表示(機器碼,彙編),處理器體系結構,存儲器結構,系統IO,網路編程,並發編程,以及程序性能的優化。讀完此書可對計算機系統,程序設計有一深層次了解。

3,4)就C語言而言,KR的 C程序設計語言 的無疑是最好的參考書,不過對初學者來說還是有一定難度,輔以諸如 C和指針 ,C陷阱與缺陷 會有更好的效果。當然多寫程序才是王道,多寫才能發現問題,加深認識。

5)Debug Hacks 此書介紹GDB調試工具及調試技巧,本人現在主要就是使用gcc gdb啦。此書助你更好的找出臭蟲。

6)數據結構與演算法分析 介紹演算法和數據結構的書籍很多,但本人就是用這本書學習的,所以推薦。此書的前3章第7章就介紹了題主要求的一些數據結構和演算法,後面幾張介紹樹,排序,圖論演算法,及一些高級數據結構。讀完此書將助你設計更優美的程序。

以上書籍都是本人讀過的一些書,感覺非常好,但並非按照像上面的順序這樣死板的讀,況且一些書只有在一定基礎後才能理解,所以要常常瞻前顧後,左右參考,這樣才更加融會貫通。

P.S.

上面推薦的書籍都是國外的,如果題主對計算機系統非常感興趣,那麼我推薦一本國內的: Linux內核完全剖析,此書完全剖析0.12版Linux內核(代碼量不多),將帶你完全從零構建一個計算機系統,當然前提是要懂彙編,C,和一些操作系統的概念。真正讓你透徹無死角了解計算機系統。

好運~


作為一隻野生的菜鳥,一年前我看過這個問題,按照答主們的推薦還有自己私下尋找了不少書。時至今日寫下我認為對我有很大幫助的書籍。

1、《編碼:隱匿在計算機軟硬體背後的語言》 ,這本書真的淺顯易懂,從與非門到寄存器,再組成RAM,主要幫助你理解電信號如何轉換成二進位!你看完加運算的進位電路設計就會明白「溢出」是怎麼一回事了。

2、王爽的《彙編語言》,這本書很精簡,沒有龐大的概念。一直是邊做實驗邊學,帶你用指令操作寄存器,並且跟蹤結果,你能清楚觀察到內存中每個位元組的變化!做完實驗你就有體會,數據類型確實挺重要的,因為沒準你會覆蓋別的數據!這裡面直接操作地址,想學好指針的千萬別錯過!

3、為了深入理解彙編與電路之間的關係,推薦第三本書《Digital Computer Electronics》,是一本解構4位CPU電路的書(剛回去翻,發現找不到了,很可惜,這本書對我的幫助很大!)。反正我記得最清楚的是,一條彙編指令mov ax,cs 存儲在內存中,後半部分其實存的是兩個寄存器ax,cs 對應的地址,前半部分存的是mov 對應的二進位。前半部分進入解碼器進行解碼,接著通過控制矩陣找到這兩個地址,再進行操作。

4、讀完以上三本估計你就能很好理解大部分計算機概念了,現在推薦《C程序設計語言》和《C primer plus》,《征服C指針》,這三本介紹了很多C語言特性,注意必須採用《老碼識途》中的方法邊寫邊調試,對比不同的寫法在寄存器,內存中每個位元組的變化,如此你才算是真正懂的了,光看書是沒用的,很快就忘記了!

5、數據結構推薦程傑《大話數據結構》,代碼很少,直接用插圖形式描繪數據結構執行過程。我看完這本書,再去找c語言演算法代碼來調試,簡直太容易理解了。

6、語言層面差不多了,下面的就要進入操作系統了,推薦hurlex同學的《一個基於x86架構的簡單內核實現》和《xv6-book》,另推薦網易公開課李志軍老師的《操作系統》課程

7、資料庫方面推薦《mysql 必知必會》,入門書!不是原理書,教你資料庫語句。

8、編譯原理方面推薦網易公開課華保建老師《編譯原理》!然後推薦目錄 | TIPI: 深入理解PHP內核,因為前面介紹了C語言嘛。懂JAVA的可以看看《兩周自製腳本語言》,是從零開始的。

9、網路方面太深奧了,推薦一本新書《網路是怎樣連接的》,從你打開瀏覽器訪問頁面說起。知乎還有類似的問題呢!

用戶用瀏覽器訪問一個網站的時候背後的過程與步驟是怎樣的? - 互聯網 - 知乎

10、瀏覽器方面推薦《how browsers work 》中文 版,也就幾十頁,看一看有好處的!

11、選擇一門高級語言!人生苦短,作為一個新手,入門是最重要的!聽說C ++ 很牛逼,要不要學C ++ 呢 ?然而到最後我也沒碰過幾次C ++ ,又想學JAVA ,被JAVA 虛擬機給難住了。最後我放棄了!反正好久沒碰,一次偶然機會獲得一份開源PHP WEB程序(可以賺錢的),又不想讓別人覺得我這是抄襲的!嘿嘿,我就想起給它換個樣子!果然學HTML,CSS,JavaScript就有勁了!

綜上所述,建立迅速反饋機制,激發興趣才是王道!如果一直陷入原理中不能自拔,容易越學越放棄。


謝邀,正好今年夏天的時候,在畢業生賣書的地攤上找到一本書,還挺好的,叫做《Computer Science Illuminated》(計算機科學概論,點亮你的計算機世界),作者是Nell Dale和John Lewis。

http://www.amazon.cn/Computer-Science-Illuminated-Student-Study-Guide-Dale-Nell-B/dp/0763726265/ref=sr_1_7?ie=UTF8qid=1356683364sr=8-7

這是第二版的,英文版的比較貴,卓越上有一本第三版的中文譯本。http://www.amazon.cn/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6%E6%A6%82%E8%AE%BA-%E6%88%B4%E5%B0%94/dp/product-description/B001TDM10Y/ref=dp_proddesc_0?ie=UTF8s=books

這本書的內容比較豐富,但是對於任何一個話題都沒有具體的展開詳述,畢竟只有600多頁的篇幅,而其中任何一個章節的內容拿出來進行系統敘述都可以變成一本600頁以上的書。這本書只能讓你有一個概要性的、宏觀上的理解,如果要求深入,請另外選擇書籍。

以下是一些簡要的章節:

Laying the Groundwork(基礎知識)

  • Chapter 1 The Big Picture(全景圖),本書的層次,計算機和軟體的歷史。

The Information Layer(信息層面)

  • Chapter 2 Binary Values and Number Systems(二進位值和計數系統),二進位、八進位、十進位、十六進位的計算和轉換。

  • Chapter 3 Data Representation(數據表示),模擬量和數字量,如何表示數據,數怎麼表示,文字、聲音、圖像、視頻怎麼表示。

The Hardware Layer(硬體層面)

  • Chapter 4 Gates and Circuits(邏輯門和電路),門電路、晶體管、加法器、存儲器的簡單原理。

  • Chapter 5 Computing Components(計算部件),馮式結構、CPU指令周期、外存結構和非馮式結構。

The Programming Layer(編程層面)

  • Chapter 6 Problem Solving and Algorithm Design(問題解決和演算法設計),設計簡單演算法、自頂向下、測試和面向對象。

  • Chapter 7 Low-Level Programming Languages(低級編程語言),機器語言和彙編。

  • Chapter 8 High-Level Programming Languages(高級編程語言),編譯器和解釋器、編程範式、函數式編程、常用的程序結構(IO、選擇、循環、子程序、遞歸等)、類型系統。

  • Chapter 9 Abstract Data Types and Algorithms(抽象數據類型和演算法),數組和鏈表、排序、二分查找、棧和隊列、樹。

The Operating System Layer(操作系統層面)

  • Chapter 10 Operating Systems (操作系統),操作系統的功能、內存管理、進程管理、CPU調度。

  • Chapter 11 File Systems and Directories(文件系統和目錄),文件操作、目錄樹、磁碟結構。

The Application Layer(應用程序層面)

  • Chapter 12 Information Systems(信息系統),電子表格和資料庫系統。

  • Chapter 13 Artificial Intelligence(人工智慧),思考機器、知識表示、專家系統、神經網路、自然語言處理和機器人。

  • Chapter 14 Simulation and Other Application(模擬器和其他應用),模擬系統、CAD和嵌入式系統。

The Communication Layer(通信層面)

  • Chapter 15 Networks(網路),網路的結構和模式、網路協議和地址。

  • Chapter 16 The World Wide Web(萬維網),使用網路(搜索引擎、即時通信等),HTML、互動式頁面和XML。

In Conclusion(結論)

  • Chapter 17 Limitations of Computing(計算的局限)


除了大學本科計算機專業的教材。

除了大學本科計算機專業的教材。

現在還流行重要的事情說三遍嗎?大學教材裡面那些基礎知識,科普價值很好了。除此之外,我覺得,如下:

《數學之美(第二版)》 吳軍【摘要 書評 試讀】圖書

無論如何你要讀一本叫做《數學之美》的書,無論你最終要不要從事演算法強相關的工作,這本書也許都會給你的決定帶來一定的影響。他足夠不簡單,因為裡面很多演算法思想支撐了谷歌大部分項目,甚至你所熟知的阿爾法狗,他足夠簡單,絕對不會讓你讀起來頭疼,起碼比起大學高數教材。(關於數學我有很多想法,春節之後我會寫相關公眾號)

《圖靈程序設計叢書:征服C指針》 前橋和彌, 吳雅明【摘要 書評 試讀】圖書

編程語言我覺得只有C、C++和Java是需要較為深入去學習的,其他全是在既有編程理論的派生。每個學生大一都會學C語言,但是大四的時候往往C語言是他們最不熟悉的語言。這不是這個語言的困難,而是大一的時候沒有編程基礎,沒有計算機操作系統基礎所致。C語言是面向過程編程?No,我覺得它是面向操作系統編程。試試讀一本叫做《征服C指針》的書吧,指針,是C語言的精華。

《C++ Primer(中文版)(第5版)》 斯坦利·李普曼 (Stanley B. Lippman), 約瑟·拉喬伊 (Josee Lajoie), 芭芭拉·默 (Barbara E. Moo), 王剛, 楊巨峰【摘要 書評 試讀】圖書

如果你喜歡C++(我認為迄今為止流行語言裡面最爛的),《C++ Primer》是一本不錯的書,據說還有Plus版本,但是我沒看過,不要看譚浩強的書,如果你真的是在學習編程的話。C++程序員都很自負,自負到這門語言最流行的兩本書的中文版都沒有中文名字。

《計算機科學叢書:Java語言程序設計(基礎篇)(原書第10版)》 梁勇 (Y.Daniel Liang), 戴開宇【摘要 書評 試讀】圖書

雖然我幾乎告別了Java開發,但是作為前Java和Android程序員,在我有限的編碼生涯裡面,Java是一門在我個人的編程思想上帶來很多思考的語言。

入門學習Java建議讀一下《Java語言程序設計》,分為基礎篇和進階篇,基本上從語法層面把Java語言講解的深入淺出了。

《Java編程思想(第4版)》 埃史爾, 陳昊鵬【摘要 書評 試讀】圖書

當你寫了兩三千行Java代碼的時候,這個時候你對面向對象、多線程、網路、圖形都有了一定的認識的時候,可以看一下《Java編程思想》,這本書我前後度過三遍,以後我也許不會寫太多Java程序,但是這本書是會時常拿出來看一下的。關於面向對象,關於項目設計,沒有比這本書更好的入門書籍了。

毫無疑問,這是一本需要動腦子多過動手的書。雖然極致的面向對象也有問題,但是單純就面向對象而言,讀了這本書就無需其他了。

《深入理解Java虛擬機:JVM高級特性與最佳實踐(第2版)》 周志明【摘要 書評 試讀】圖書

後來我讀了一本叫《深入理解Java虛擬機》的書,這本書需要一定的編譯和操作系統知識,這本書對我的價值不在於對Java的理解,而是對很多通用語言,是怎樣在PC上運行起來,有了相對清晰的認識。

對了,不要看《瘋狂Java講義》什麼的,李剛寫的書都是垃圾。安拉啊,這種不會寫作的人為什麼要縱容他出書?

《第一行代碼:Android(第2版)》 郭霖【摘要 書評 試讀】圖書

學Android的時候我就看過一本《第一行代碼》,之後就是看官方文檔就好。

《圖靈程序設計叢書:圖解HTTP》 上野宣, 於均良【摘要 書評 試讀】圖書

《圖靈程序設計叢書:圖解TCP/IP(第5版)》 竹下隆史, 村山公保, 荒井透, 苅田幸雄, 烏尼日其其格【摘要 書評 試讀】圖書

計算機網路超級重要,這句話出自於一個掛了計算機網路這門課的我之口。其實,我覺得重要的是TCP/IP協議族,一定要懂。做web開發很多人都看《http權威指南》,特別是前端工程師。這本書我沒看過,有時間會看一下,我看過的是一個日本人寫的《圖解HTTP》還有《圖解TCP/IP》,這兩本書不那麼厚,深入淺出,我非常喜歡。

《正則表達式必知必會(修訂版)》 福達 (Ben Forta), 楊濤, 等【摘要 書評 試讀】圖書

正則表達式是呼吸,無論你做演算法開始做前端還是做後端,不管你學什麼語言,正則都是很常用的。《正則表達式必知必會》這本手冊很有價值,我手邊會一直放一本。

《高性能MySQL(第3版)》 施瓦茨 (Baron Schwartz), 扎伊采夫 (Peter Zaitsev), 特卡琴科 (Vadim Tkachenko), 寧海元, 周振興, 彭立勛, 翟衛祥, 等【摘要 書評 試讀】圖書

《MongoDB權威指南(第2版)》 霍多羅夫 (Kristina Chodorow), 鄧強, 王明輝【摘要 書評 試讀】圖書

《SQL Hacks》 Andrew Cumming, Gordon Russell【摘要 書評 試讀】圖書

你不可能不用資料庫。我學資料庫就看三本書,《高性能MySQL》、《Mongodb權威指南》還有《SQL Hacks》。也許對除了DBA之外的開發人員,SQL和索引相對是最重要的,所以我選擇這幾本書。《高性能MySQL》和《Mongodb權威指南》很細緻耐心的介紹了這兩種資料庫是怎樣運行的,對於知其然知其所以然很有意義。《SQL Hacks》中文版沒有了,你可以選擇英文版,這本書是值的購買英文版的,裡面有很多寫SQL的小技巧。

《PHP深度分析:101個核心技巧、竅門和問題解決方法(原書第2版)》 沙菲克(Davey Shafik), Matthew Weier O#x27;phinney, Ben Balbo, 等, 周廣輝, 楊建軍, 王春學【摘要 書評 試讀】圖書

做Web開發的時候,我讀過幾本PHP的書,唯一一本值的推薦的是《PHP深度分析》,雖然PHP社區標準凌亂的沒朋友。(難以忍受,他們好像就不存在標準!),但是這本書講解的很多開發思路還是比較值得借鑒的。(C、C++、Java之後所有介紹語言入門的書我都不推薦了,都差不多)

《CSS揭秘》 Lea Verou【摘要 書評 試讀】圖書

後來在奇虎360實習的時候,看到前端團隊人手一本《CSS揭秘》,就也買了一本,瀏覽過,還沒細看,這本書也應該值的推薦。

《圖靈原創:Go並發編程實戰》 郝林【摘要 書評 試讀】圖書

同樣在360認識了一門叫Go的語言,超級喜歡,推薦《Go並發編程》。

後來寫過的代碼多了,和別人也開始協同開發,見識了各種糟糕的代碼,在不斷改善代碼優雅度的時候,閱讀過一些編程藝術的書。

《重構:改善既有代碼的設計》 馬丁·福勒 (Martin Fowler), 熊節【摘要 書評 試讀】圖書

《重構:改善既有的代碼設計》是一本值的推薦的書,它是用Java寫的,相信很多人不會有閱讀障礙,而且這本書幾乎吹毛求疵指出了所有的不合理的代碼設計(這種設計也許以後會伴隨你的一生)。

《代碼大全(第2版)》 史蒂夫?邁克康奈爾 (Steve McConnell), 金戈【摘要 書評 試讀】圖書

《代碼整潔之道》 馬丁 (Robert C. Martin), 韓磊【摘要 書評 試讀】圖書

《代碼大全》和《代碼整潔之道》是兩本同樣類型的書,我一直覺得這種書,應該經常看,每一次閱讀都能有新的發現。

《高效程序員的45個習慣:敏捷開發修鍊之道 (圖靈程序設計叢書 11)》 蘇帕拉馬尼亞姆(Venkat Subramaniam) 亨特(Andy Hunt), 錢安川, 鄭柯 書評 簡介 電子書下載 Kindle電子書

《高效程序員的45個習慣》也應該接觸,你應該知道敏捷開發究竟是怎樣一回事兒。

《演算法導論(原書第3版)》 Thomas H.Cormen, Charles E.Leiserson, Ronald L.Rivest, Clifford Stein, 殷建平, 徐雲, 王剛, 等【摘要 書評 試讀】圖書

就演算法而言,我讀過《演算法導論》,這本書我讀過兩遍,用什麼樣的辭藻形容這本書的價值都不為過。

《編程之美:微軟技術面試心得(兩種封面 隨機發貨)》 《編程之美》小組【摘要 書評 試讀】圖書

《劍指Offer:名企面試官精講典型編程題(紀念版)》 何海濤【摘要 書評 試讀】圖書

為了面試,我讀過《編程之美》和《劍指offer》,這兩本書裡面的演算法用來練習思維還是很有價值的,畢竟面試題都不會太難。

《鳥哥的Linux私房菜:基礎學習篇(第3版)》 王世江, 鳥哥【摘要 書評 試讀】圖書

即使你最開始編程是在windows平台,但是你遲早接觸Linux,《鳥叔的Linux私房菜》長盛不衰,願你喜歡他的語言風格,不過操作系統這種東西,只要上手,學起來很快。

《圖靈交互設計叢書:設計師要懂心理學(全彩印刷)》 魏因申克 (Susan Weinschenk), 徐佳, 馬迪, 余盈億【摘要 書評 試讀】圖書

即使你不是產品經理,也應該有一點點產品思維,基於此,我覺得你應該讀一下《設計師要懂心理學》,交互設計,真的很重要。

《人月神話(40周年中文紀念版)》 小弗雷德里克·布魯克斯 (Frederick P.Brooks), UML China翻譯組, 汪穎【摘要 書評 試讀】圖書

至於《人月神話》,我感覺這本書可以大四重修完掛掉的學科後重新認真讀一遍。

等有時間,寫一篇計算機學生學數學的書單和心得,一切都沒有那麼糟。如果你更喜歡演算法,也許那一篇裡面有很多你喜歡的書。

微信公眾賬號:程天寫代碼,分享編程心得和有趣的事兒。


----2016.8.31---

看了黑客和畫家,非常喜歡這本書。 作者不僅告訴了你編程的知識,還有歷史,管理,經濟學等知識 ,知識面很廣,對視野的擴大很有幫助!

---2017.8.30-----

發現上一次回答這個問題,已經是去年了。我想補充一點點吧。 感覺基礎真的很重要,基礎薄弱的話,學到後來真的很難受。 基礎很重要!基礎很重要!基礎很重要!重要的事情說三遍。

1.數據結構與演算法分析

2.演算法導論

學演算法的感覺很苦。但學了之後感覺會好多了。基本功打佬了,後來就不用回爐,常常補課了。校招的同學,要多刷刷演算法了。畢竟很多考題都涉及很多演算法

3.c++程序設計

美國梁勇的書。寫的基礎知識點,但都是很實用。看了很多國內寫c語言的書,指針概念寫的雲里霧裡,根本解釋不清楚,反而越說令人越昏。一本好的入門書令你事半功倍。

4.深入理解計算機系統

這個本書很難,第一次看會看不懂,看的時候也很痛苦。需要看多幾次,可能看到第三遍才有新的感覺。

5.編譯原理

龍書,難度也很大,慢慢看。需要回爐。

6.人月神話

7.c kr

c語言的經典教材。難度還可以。

8編程之美,劍指offer,等刷題書對於需要面試的小夥伴,有不小的幫助。

9.看github 和 leetcode

為什麼沒有推薦一些具體的語言書呢,比如python,php,前端等等。因為個人認為具體的語言雖然會在一定時間內,火起來,工資也不錯。但是過了一段時間後,某種語言可能衰落,又有新的語言會熱門。所以沒有所謂的永恆的熱門語言,但是萬變不離其宗。學好演算法等基礎東西,什麼時候都不會過時,基本功打紮實。硬功夫要過關。


只推薦一本神書:《編碼:隱匿在計算機軟硬體背後的語言》

渴望交流是大多數人的天性。在本書中,「編碼」通常指一種在人和機器之間進行信息轉換的系統。換句話說、編碼即是交流。有時我們將編碼看得很神秘,其實大多數編碼並非都是這樣。大多數的編碼都需要被很好地理解,因為它們是人類交流的基礎。――《編碼的奧秘》

手電筒、英國人入侵、黑色的貓和蹺蹺板與計算機有什麼必然聯繫?本書向我們展示了使用語言的一些直觀方法並創造新的方法來進行相互之間的交流。此書使我們明白了這種創造性――以及我們人類對交流的迫切需求――已經促進了過去兩個世紀的革新。

在本書中,作者Charles Petzold用常見的對象和諸如布萊葉育文、摩爾斯電碼之類大家熟悉的語言系統,為那些曾經想知道計算機和其他智能機器內部「生命」奧秘的人們編排了一個生動的敘述。

本書由靈活的圖解和生動的故事組成。沿著作者的這種介紹思路,通過本書的學習你將會發現你已經獲得了一個理解今天的PC、數字多媒體和網際網路的真實背景。無論你的技術水平怎樣,本書都將會使你陶醉,並且很可能喚醒讀者參與計算機事業。


猿blog —— 推薦的書單

地址 : zhisheng17/CoderBlog

C語言

  • 《C程序設計語言》
  • 《C語言參考手冊》

C++

  • 《Essential C++》
  • 《C++ Primer》
  • 《深度探索C++對象模型》
  • 《C++程序設計語言》
  • 《Think in C++ C++編程思想》

Java

  • 《 Java語言規範》
  • 《Java並發編程實戰》
  • 《Java核心技術 卷1》
  • 《Java核心技術 卷2》
  • 《 Java編程思想》
  • 《Effective Java》
  • 《深入分析Java Web技術內幕》修訂版
  • 《深入理解Java虛擬機:JVM高級特性與最佳實踐》第二版

Python

  • 《Python學習手冊》
  • 《Python核心編程》
  • 《Python網路數據採集》
  • 《Flask Web開發:基於Python的Web應用開發實戰》

GO

  • 《GO並發編程實踐》

Network

  • 《計算機網路自頂向下方法》
  • 《計算機網路》
  • 《計算機網路系統方法》
  • 《TCP/IP詳解卷1》
  • 《TCP/IP詳解卷2》
  • 《TCP/IP詳解卷3》

演算法

  • 《演算法導論》
  • 《演算法》

數據結構

  • 《數據結構與演算法分析C語言描述》

程序設計

  • 《程序設計實踐》

Unix/Linux

  • 《The Design Of The Unix Operating System》
  • 《 Unix環境高級編程》
  • 《Unix網路編程卷1》
  • 《Unix網路編程卷2》
  • 《Unix超級工具》
  • 《Unix編程環境》
  • 《Unix編程藝術》
  • 《鳥哥私房菜——基礎知識篇》
  • 《鳥哥私房菜——伺服器篇》
  • 《Linux內核設計與實現》
  • 《Linux系統編程》
  • 《深入理解Linux內核》
  • 《 Linux設備驅動》

UML和面向對象

  • 《面向對象分析與設計》
  • 《UML面向對象建模與設計》
  • 《UML用戶指南》
  • 《設計模式》

計算機組成/體系結構

  • 《深入理解計算機系統》
  • 《計算機體系結構量化研究方法》
  • 《計算機組成與設計:硬體/軟體介面》
  • 《計算機組成與嵌入式系統》
  • 《MIPS體系結構透視》

分散式/架構

  • 《分散式系統概念與設計》
  • 《分散式系統原理與范型》
  • 《大型網站技術架構:核心原理與案例分析》
  • 《大型網站系統與Java中間件實踐》

大數據/HADOOP

  • 《Hadoop權威指南(中文第2版)》

數學系列

  • 《數學分析新講》
  • 《數學之美》

Git

  • 《Git 權威指南》

安卓

  • 《第一行代碼 android》
  • 《Android 開發藝術探索》
  • 《安卓群英傳》

其他

  • 《人月神話》
  • 《編譯原理》
  • 《事務處理》
  • 《彙編語言程序設計》
  • 《程序員的自我修養—鏈接、裝載與庫》
  • 《代碼揭秘----從c/c++角度探索計算機系統》
  • 《編程之美》
  • 《劍指offer》


《深入理解計算機系統》


書單list:

入門:

c系列:

C和指針

C專家編程

C陷阱與缺陷

深入系統:

Unix環境高級編程

深入理解計算機系統

深入理解Linux內核

Linux內核設計與實現

情景分析

深入Linux內核架構

Unix編程藝術

程序員自我修養:鏈接裝載與庫

網路編程:

Unix網路編程 卷1

TCP/IP詳解 卷1 卷2

面向對象思想:

C++系列: C++ Primer

(more)Effective C++ (More)Essential C++

深入探索C++對象模型

設計模式


作為 C++ back-end 愛好者:

Computer Systems: A Programmer"s Perspective

Thinking in C++

Introduction to Algorithms


Introduction to Computing Systems: From Bit and Gates to C and Beyonds, Yale N. Patt

此書目錄基本上和題主要求完全一致, 主要使用基於 von Neumann 模型的 LC3(little computer 3, 一個純粹為教學使用而設計的系統) 來解釋計算機系統結構中的一系列概念.

前 10 章從 Digital Logic Structure 出發, 一直講到了 Instruction Set Architecture, 介紹了 ISA 是如何實現的.

後 10 章講 C 語言, 但是與前文內容對照, 有一些編譯器的內容.

看 Preface 中的說法, 適合本科低年級閱讀. 據說曾經是南大的教材? 一般宣傳的時候都會因為某獎說是與 Donald E. Knuth 齊名, 不過感覺這位的書要比 Knuth 的平易近人許多.

最後, 個人覺得比起關注書中的具體內容, 作者對不同部分的聯繫的論述更值得一看.

----------------------------------------------------------------------------------

BTW, 非常有幸上過作者的課, 很有意思的老爺爺.


計算機系統概論, 黑皮的. 看完之後可以再看看操作系統, 計算機網路這些是計算機的基礎, 還有興趣就是Linux系統的基本知識架構, 資料庫DBMS, 編程語言這些了,看那方面感興趣就看哪些

說實話還是要有個大概的知識脈絡, 再決定接下來的步驟, 這一點國內的CS做的都不好


計算機文化[美]JuneJamrichP

計算機科學概論(J.G.)(Brookshear)布魯克希爾

計算機科學概論(美)戴爾,(美)劉易斯

計算機科學導論(美)佛羅贊,(美)莫沙拉夫

真正的基礎教材,先從廣度著眼。


還是讓我來回答吧

1、計算機體系結構

2、計算機組成原理

3、c語言

4、數據結構

5、軟體工程

6、演算法

每本書在百度上面搜索一下就好了,看國外的版本,不要看國內的版本


作為過來人,覺得看再多書還不如真正幹起來,代碼寫起來,先想一個狂拽酷炫吊炸天的需求,然後一個個分析實現可能性,實現方法,然後不懂的去查資料,獲得的進步絕對是看書看不來的,即使書中的知識再多,實踐起來完全是另一回事。


計算機導論你值得擁有


我也是一名初學者,如果想對計算機從硬體到軟體有一個全面的認識,強烈推薦看這本書

這本書從布爾運算開始講一直講到編程中高級語言是怎麼形成的,操作系統是怎麼工作的,總而言之看完這本書對計算機體系會有全面的認識。除了這本書,如果想要去了解基本的演算法就去看羅森的離散數學

這本書不但講了離散數學該講的集合結構比如樹,圖,關係有較為全面的介紹,還對他們的應用比如你所說的插入演算法,合併演算法,快速排序什麼的有較為了解的介紹。看完這本書就會對演算法大致入門。

如果要了解更深刻就只能去看演算法導論和具體數學了。如果高中有競賽經驗推薦先看具體數學,因為如果你看懂了一部分(尤其是多項式,和式,整數那部分),那麼看演算法導論的障礙就很小了。


離問題事隔三年,我還是要答一下,以造福後來者.

關於提問者的這幾個問題其實只要一本書就可以完美解答.

中文名 計算機科學概論
英文名 Computer Science : An Overview


吐血推薦

同一個系列的,還有程序是怎樣跑起來的,圖解TCP/IP 等。


csapp 可以了解計算機組成,《演算法》或者《演算法導論》可以了解數據結構和演算法

還要計算機操作系統的書

《tcp ip 詳解 卷1》可以了解計算機網路,更深入可以讀卷2


先看失控


大學計算機基礎


《深入理解計算機系統》


推薦閱讀:

chrome 主頁被劫持,每天首次打開chrome都會進入2345的界面,求助解決辦法?
譚浩強《C語言程序設計》第三版怎麼樣?從零開始學會被帶偏嗎?
計算機網路方面有哪些書籍值得推薦?
計算機科學領域的高大上名詞(中英文)有哪些?
演算法在前端開發的中實際應用有哪些?

TAG:書籍推薦 | 計算機 | 計算機技術 | 計算機網路 | 計算機科學 |