在前言《程序員修煉之路-(0)前言:在路上, 再上路》中已經對知識體系進行了梳理,主要分爲問題定義、算法與數據結構、系統平臺API、編程語言實現、代碼設計、測試驗證等等。目前集中精力編寫算法與數據結構部分,這可能也是最艱難的一部分。其餘部分以前零零散散有所涉及,以後再慢慢補充。php
離散數學與具體數學。java
對於這一部分的內容編排,主要以《算法設計與分析基礎》、《算法》以及LeetCode算法題中的問題分類爲橫向,以《算法設計與分析基礎》中羅列的經典設計技巧爲縱向,貫穿每一小節。由於傳統算法書籍的結構常常是爲了講算法而講,目錄內容分類都很死板。而我想要的是解決這一類問題有哪些算法?都是用什麼技巧和思路設計的?linux
很是重要,單列一章。程序員
圖算法也一樣重要,與現實生活的緊密程度甚至超過了上面全部數據結構。golang
《如何解題》、窮解、減治、分治、動態規劃、貪心。web
計算機架構(計算機組成原理、彙編語言等)、操做系統(Linux和Windows經常使用系統API等)、編譯連接(編譯和連接的原理)。算法
《深刻理解計算機系統》,絕對的經典,永遠的CSAPP:數據庫
《操做系統概念》,9分的好書,不知道與《現代操做系統》相比哪本更好:編程
《Linux C一站式學習》,挺經典的一本書,仍是國產吧:windows
學習操做系統特別是Linux,Shell也是必不可少,有一陣子還很熱衷寫Shell:
Windows平臺下的編程實踐,《Windows程序設計》和《Windows遊戲編程大師技巧》能夠說是Windows平臺編程的兩本「聖經」了:
Java網絡編程基礎:
這一部分目前比較雜,以前看的《數據庫概念》沒有及時整理,待補充。
C/C++/Java等主流語言,如何實現咱們的設計,包括語言語法、內存分配、封裝抽象、分包引庫等小細節。
抽象層次定義、23種設計模式、重構改善設計。
單元測試、性能測試等技術。
主要是爲了練習C,業餘時間寫了很多代碼,從Web到桌面到遊戲到算法類的,涉獵有些雜了… 但無論怎樣,收穫仍是很大,將來仍是要堅持多實踐,多寫一些實用的小東西!
當年《算法導論》的學習筆記,堅持到動態規劃就淺嘗輒止了,DP挺難……