極客時間-左耳聽風-程序員攻略-理論學科

程序員練級攻略:理論學科

數據結構與算法

不管是作業務仍是作底層系統,常常須要使用算法處理各類各樣的問題。html

  • 基礎知識:《算法》,是算法領域經典的參考書,不但全面介紹了關於算法和數據結構的必備知識,還給出了每位程序員應知應會的 50 個算法,並提供了實際代碼。最不錯的是,其深刻淺出的算法介紹,讓一些比較難的算法也變得容易理解,尤爲是書中對紅黑樹的講解很是精彩。其中,還有大量的圖解,詳盡的代碼和講解,也許是最好的數據結構入門圖書。很差的是不深,缺少進一步的算法設計內容,甚至連動態規劃都未說起。
    • 算法書比較枯燥的話,你能夠看看這本有趣的《算法圖解》。
  • 理論加持:偏於理論方面的書——《算法導論》。
  • 思惟改善:《編程珠璣》來引導讀者理解並學會解決這些問題的方法。

算法訓練: LeetCode,兩類算法題git

  • 基礎算法題。其中有大量的算法題,解這些題都是有套路的,不是用遞歸(深度優先 DFS、廣度優先 BFS),就是要用動態規劃(Dynamic Programming),或是折半查找(Binary Search),或是回溯(Back tracing),或是分治法(Divide and Conquer),還有大量的對樹、數組、鏈表、字符串和 hash 表的操做。經過作這些題能讓你對這些最基礎的算法的思路有很是紮實的瞭解和訓練。
  • 編程題。好比:atoi、strstr、add two nums、括號匹配、字符串乘法、通配符匹配、文件路徑簡化、Text Justification、反轉單詞等,這些題的 Edge Case 和 Corner Case 有不少。這些題須要你想清楚了再幹,只要你稍有疏忽,就會有幾個 case 讓你痛不欲生,並且一不當心就會讓你的代碼寫得又臭又長,沒法閱讀。經過作這些題,能夠很是好地訓練你對各類狀況的考慮,以及你對程序代碼組織的掌控(其實就是其中的狀態變量)。

文章做者在 Leetcode 上作的一些題的代碼在這—— GitHub程序員

最後,咱們要知道這個世界上的數據結構和算法有不少,下面給出了兩個網站。github

  • List of Algorithms ,這個網站羅列了很是多的算法,徹底能夠當成一個算法字典,或是用來開闊眼界。
  • 數據結構動畫圖的網站 Data Structure Visualizations

其它理論基礎知識

  • 數據結構與算法分析》,這本書曾被評爲 20 世紀頂尖的 30 部計算機著做之一,做者 Mark Allen Weiss 在數據結構和算法分析方面卓有建樹,他在數據結構和算法分析等方面的著做尤爲暢銷,並廣受好評,已被世界 500 餘所大學用做教材。
  • 數據庫系統概念》,它是數據庫系統方面的經典教材之一。國際上許多著名大學包括斯坦福大學、耶魯大學、德克薩斯大學、康奈爾大學、伊利諾伊大學、印度理工學院等都採用本書做爲教科書。這本書全面介紹了數據庫系統的各類知識,透徹闡釋數據庫管理的基本概念。不只討論了數據庫查詢語言、模式設計、數據倉庫、數據庫應用開發、基於對象的數據庫和 XML、數據存儲和查詢、事務管理、數據挖掘與信息檢索以及數據庫系統體系結構等方面的內容,並且對性能評測標準、性能調整、標準化以及空間與地理數據、事務處理監控等高級應用主題進行了普遍討論。
  • 現代操做系統》,這本書是操做系統領域的經典之做,書中集中討論了操做系統的基本原理,包括進程、線程、存儲管理、文件系統、輸入 / 輸出、死鎖等,同時還包含了有關計算機安全、多媒體操做系統、掌上計算機操做系統、微內核、多核處理機上的虛擬機以及操做系統設計等方面的內容。
  • 計算機網絡》,這本書採用了首創的自頂向下方法,即從應用層開始沿協議棧向下講解計算機網絡的基本原理,強調應用層範例和應用編程接口,內容深刻淺出,注重教學方法,理論與實踐相結合。新版中還增長了無線和移動網絡一章,並擴充了對等網絡、BGP、MPLS、網絡安全、廣播選路和因特網編址及轉發方面的材料。是一本不可多得的教科書。
  • 計算機程序的構造和解釋》,這本書也很經典,是 MIT 的計算機科學系的教材。這本書中主要證明了不少程序是怎麼構造出來的,以及程序的本質是什麼。整本書主要是使用 Scheme/Lisp 語言,從數據抽象、過程抽象、迭代、高階函數等編程和控制系統複雜性的思想,到數據結構和算法,到編譯器 / 解釋器、編程語言設計。
  • 編譯原理》,這本書又叫 " 龍書 ",其全面、深刻地探討了編譯器設計方面的重要主題,包括詞法分析、語法分析、語法制導定義和語法制導翻譯、運行時刻環境、目標代碼生成、代碼優化技術、並行性檢測以及過程間分析技術,並在相關章節中給出大量的實例。與上一版相比,本書進行了全面的修訂,涵蓋了編譯器開發方面的最新進展。每章中都提供了大量的系統及參考文獻。
相關文章
相關標籤/搜索