程序員修煉之路

0.前言:在路上,再上路

在前言《程序員修煉之路-(0)前言:在路上, 再上路》中已經對知識體系進行了梳理,主要分爲問題定義、算法與數據結構、系統平臺API、編程語言實現、代碼設計、測試驗證等等。目前集中精力編寫算法與數據結構部分,這可能也是最艱難的一部分。其餘部分以前零零散散有所涉及,以後再慢慢補充。php


1.計算機數學

離散數學與具體數學。java


2.算法分析設計

對於這一部分的內容編排,主要以《算法設計與分析基礎》、《算法》以及LeetCode算法題中的問題分類爲橫向,以《算法設計與分析基礎》中羅列的經典設計技巧爲縱向,貫穿每一小節。由於傳統算法書籍的結構常常是爲了講算法而講,目錄內容分類都很死板。而我想要的是解決這一類問題有哪些算法?都是用什麼技巧和思路設計的?linux

2.1 理論基礎

2.2 線性表

2.3 排序

2.4 搜索

2.5 字符串

很是重要,單列一章。程序員

2.6 圖

圖算法也一樣重要,與現實生活的緊密程度甚至超過了上面全部數據結構。golang

2.7 總結

《如何解題》、窮解、減治、分治、動態規劃、貪心。web


3.系統平臺

計算機架構(計算機組成原理、彙編語言等)、操做系統(Linux和Windows經常使用系統API等)、編譯連接(編譯和連接的原理)。算法

3.1 體系結構

《深刻理解計算機系統》,絕對的經典,永遠的CSAPP:數據庫

3.2 操做系統

《操做系統概念》,9分的好書,不知道與《現代操做系統》相比哪本更好:編程

3.2.1 Linux

《Linux C一站式學習》,挺經典的一本書,仍是國產吧:windows

學習操做系統特別是Linux,Shell也是必不可少,有一陣子還很熱衷寫Shell:

3.2.2 Windows

Windows平臺下的編程實踐,《Windows程序設計》和《Windows遊戲編程大師技巧》能夠說是Windows平臺編程的兩本「聖經」了:

3.3 計算機網絡

Java網絡編程基礎:

3.4 數據庫

這一部分目前比較雜,以前看的《數據庫概念》沒有及時整理,待補充。

3.5 編譯連接


4.編碼實現

C/C++/Java等主流語言,如何實現咱們的設計,包括語言語法、內存分配、封裝抽象、分包引庫等小細節。

4.1 開發工具

4.1.1 編輯器

4.1.2 調試工具

4.1.3 項目構建

4.1.4 版本控制

4.1.5 持續集成

4.2 C/C++

4.3 Java

4.4 PHP

4.5 Golang

4.6 Web


5.程序設計

抽象層次定義、23種設計模式、重構改善設計。

5.1 抽象層次

5.2 編碼規範

5.3 設計模式

5.4 方法論

5.5 架構設計


6.測試驗證

單元測試、性能測試等技術。

6.1 單元測試

6.2 性能測試


附錄

附1:業餘實踐項目

主要是爲了練習C,業餘時間寫了很多代碼,從Web到桌面到遊戲到算法類的,涉獵有些雜了… 但無論怎樣,收穫仍是很大,將來仍是要堅持多實踐,多寫一些實用的小東西!

附2:公開課

附3:《算法導論學習筆記》

當年《算法導論》的學習筆記,堅持到動態規劃就淺嘗輒止了,DP挺難……

相關文章
相關標籤/搜索