前言:《程序員修煉之路-(0)前言:在路上, 再上路》程序員
在前言中已經對知識體系進行了梳理,主要分爲問題定義、算法與數據結構、系統平臺API、編程語言實現、代碼設計、測試驗證等等。目前集中精力編寫算法與數據結構部分,這可能也是最艱難的一部分。其餘部分以前零零散散有所涉及,以後再慢慢補充。面試
離散數學與具體數學。算法
對於這一部分的內容編排,主要以《算法設計與分析基礎》、《算法》以及LeetCode算法題中的問題分類爲橫向,以《算法設計與分析基礎》中羅列的經典設計技巧爲縱向,貫穿每一小節。由於傳統算法書籍的結構常常是爲了講算法而講,目錄內容分類都很死板。而我想要的是解決這一類問題有哪些算法?都是用什麼技巧和思路設計的?數據庫
《程序員修煉之路-(1)基礎(上):算法設計》編程
《程序員修煉之路-(3)排序(中):合併和快速排序》
《程序員修煉之路-(4)搜索(上):線性與二分查找》
《程序員修煉之路-(4)搜索(下):哈希表》
很是重要,單列一章。
圖算法也一樣重要,但一來能夠納入排序或搜索中,二來面試時考的很少,能夠不單獨列。
《如何解題》、窮解、減治、分治、動態規劃、貪心。
當年《算法導論》的學習筆記,堅持到動態規劃就淺嘗輒止了,DP挺難……
《<算法導論>第12章 二叉查找樹 (2)查找、插入與刪除》
《<算法導論>第14章 數據結構的擴張 (1)動態順序統計》
計算機架構(計算機組成原理、彙編語言等)、操做系統(Linux和Windows經常使用系統API等)、編譯連接(編譯和連接的原理)。
《深刻理解計算機系統》,絕對的經典,永遠的CSAPP:
《操做系統概念》,9分的好書,不知道與《現代操做系統》相比哪本更好:
《<Operating System Concept>進程基礎知識》
《<Operating System Concept>進程調度》
《Linux C一站式學習》,挺經典的一本書,仍是國產吧:
學習操做系統特別是Linux,Shell也是必不可少,有一陣子還很熱衷寫Shell:
Windows平臺下的編程實踐:
《<Windows遊戲編程大師技巧>2、Windows編程模型》
《<Windows遊戲編程大師技巧>3、Windows高級編程》
《<Windows遊戲編程大師技巧>4、GDI、控件和突發奇想》
《<Windows遊戲編程大師技巧>5、DirectX基礎知識和使人生畏的COM》
Java網絡編程基礎:
這一部分目前比較雜,以前看的《數據庫概念》沒有及時整理,待補充。
C/C++/Java等主流語言,如何實現咱們的設計,包括語言語法、內存分配、封裝抽象、分包引庫等小細節。
C語言:
主要是爲了練習C,業餘時間寫了很多代碼,從Web到桌面到遊戲到算法類的,涉獵有些雜了… 但無論怎樣,收穫仍是很大,將來仍是要堅持多實踐,多寫一些實用的小東西!
《用Qt開發簡單的瀏覽器(一)》和《用Qt開發簡單的瀏覽器(二)》
《<Windows遊戲編程大師技巧> T3D遊戲控制檯程序實例及第一部分總結》
《貝葉斯公式與拼寫檢查器》和《Trie的應用及拼寫檢查器的優化》
抽象層次定義、23種設計模式、重構改善設計。
單元測試等技術。