書里用了大量的例子介紹了遞歸、堆棧、鏈表、樹、圖等等非常常用的知識,并且還引申到Java的一些基本概念。
1.4 理解計算機系統
這本書主要是介紹計算機整體的軟、硬件系統的,包括處理器、存儲器層次結構、虛擬存儲器、鏈接、IO、網絡等等,
讀完它你大概知道你所寫的程序是怎么通過計算機的硬件和底層軟件系統運行的,
里面時不時提到C語言,所以先學C語言再學這本書比較合理(或者穿插著學也可以)。
另外,可選的,推薦再讀『計算要組成及匯編語言原理』,書不厚,240多頁,最主要是以Java虛擬機為例來講的。
我在讀自考大專時是用這本: IBM-PC宏匯編語言程序設計
1.5 算法導論
學算法的都知道這本書吧,非常有名,老實說這書有點難度,需要自己慢慢啃,
去大公司面試時特別用得著,快速排序、二叉樹、紅黑樹、動態規劃、最短路徑這類算法會常拿出來問的。
1.6 操作系統
進程、線程、CPU調度、同步、死鎖、內存管理、虛擬內存、文件系統、I/O系統這些最基本的概念和原理必須掌握和理解透,
對于以后的工作是相當有用的。
1.7 計算機網絡
http://book.douban.com/subject/1179807/
這本書一時沒找到,我就不拍照片了,只要大概了解一下即可,除非打算將來做網絡管理員之類的工作。
1.8 程序語言理論與編譯原理
這是我目前工作和研究的領域。
這類書比較偏理論,會有點難讀,不過我還是強烈建議你硬著頭皮認真讀一讀,
只要你能理解透書中的內容,以后你再學習新的程序語言都是件輕而易舉的事,
并且也是從事數據庫SQL引擎研究的前提。
先讀『自動機理論、語言和計算導論』,
里面告訴你什么是自動機、什么是正則語言、什么是上下文無關語言,還有圖靈機。
清華大學的『形式語言與自動機理論』也可以同時看。
接著就可以看『編譯原理』了,此書也叫“龍書”,當你想從事編譯器開發時這本書是必看的,
『編譯原理』出了兩個版本了,如果有錢的話我還是建議你兩個版本都買,
『編譯原理』和『自動機理論、語言和計算導論』的內容有一些重疊,
有些人一上來就直接看『編譯原理』而不看自動機和形式語言,這會有點難,
『自動機理論、語言和計算導論』算是『編譯原理』的前導課程。
最后可以再讀讀『程序設計語言原理』和『程序設計語言實踐之路』
這兩本書其實不偏重理論的,有了前面的基礎反而更簡單,算是各類程序語言的綜述,
各種泛式的語言都有涉及,包括: 過程式語言、面向對象、函數式語言,甚至基于邏輯的程序語言都講了(比如Prolog)。
1.9 數據庫
這也是我現在的工作和研究領域。
要說數據庫和程序語言是整個計算機學科應用最廣泛的領域應該沒有人會反對,
關系數據庫管理系統(RDBMS)在過去的幾十年直到現在都占著絕對的統治地位,
隨著互聯網、社交網絡的發展以及數據量的增長,圖數據庫、NoSQL都在蓬勃發展,
所以可以預計未來5年內數據庫會是一個非?;钴S的領域。
數據庫的理論書籍不需要讀得太多,
只要讀完上面的『數據庫系統基礎教程』『數據庫系統實現』基本上夠用了,
當然,你需要慢慢的品嘗、要精讀,至少要讀兩遍以上。
『事務處理』這本書如果你將來不從事數據庫事務領域的研究不需要讀,
前面兩本書中也會有好幾個章節講事務相關的知識。
至此,如果能學完、學好上面9小節中列出的書籍和相關知識,
那么恭喜你,你的計算機基礎已經打得非常牢固了。
2. Java相關書籍
2.1 入門
我用的版本比較老, 『Java核心技術』最新已出到第9版了,只有經得起時間考驗的書才值得一版再版,
原文轉自:https://github.com/codefollower/My-Blog/issues/1