.NET程序員走向高端必讀書單彙總

現在程序開發工做愈來愈簡單(豐富的API、智能的IDE、愈來愈多的開發框架),普通人經過簡單的訓練,經過組合和複製就能完成衆多程序的功能。所以程序員這種過去高技術職業的代名詞,如今卻如此低賤,被稱之爲碼農。借用微觀經濟學原理,當供應量增長而需求不變時,價格平衡點將下移,所以普通程序員工資愈來愈低。並且大街上衆多的培訓機構還不停的產出,能夠預料到不久未來價格平衡點還將下移(不考慮通貨膨脹等因素)。那麼做爲有遠見的程序員更應該增強本身內功,成爲不可替代品。看書是對本身最有效的投資方式,我整理了已經看了和準備看的書籍,並按知識點分門別類供你們參考和討論。html

1、知識樹

計算機科學與技術是一門龐大而複雜的學科,不可能瞭解完全部內容,但能夠經過知識樹梳理了解整個領域的核心知識,爲後續應用作好準備。java

頂層技能樹

若是將計算機科學與技術當作是武學的話,左邊部分是內功,右邊部分則爲招式。武學高手能夠用簡單的招式發揮出巨大的威力,是由於內功的強大。所以要了解整個計算機科學與技術的全貌須要從內功開始。mysql

1. 基本能力

基本能力

1.1 數學

不少作應用系統的程序員會以爲數學基本上沒有用,由於在系統中基本沒有用過。但實際上數學是整個計算機的基石,所以對數學的瞭解不可或缺。若是是從事機器學習、數據挖掘、計算機圖形學的更須要較強的數學功底。程序員

1.2 英語

英語是程序員最重要的語言,大部分的技術書籍、協議、會議等均是英文,所以須要瞭解第一手的資料須要很強的英文讀寫能力,英語學習是一個按部就班的過程,可利用碎片時間學習。算法

1.3 語言表達

語言表達主要是書面和口頭,須要培養邏輯嚴密、語言流暢的語言表達能力。這個主要靠多寫多練好比在博客園上寫文章(像我如今同樣),多和同事朋友美女交流。sql

2. 計算機組織與體系結構

計算機系統的組織結構,以 馮·諾依曼模型做爲基礎,是計算機的硬件基礎。數據庫

核心知識點編程

  • 數據的機器表示
  • 彙編級機器組織
  • 接口和通訊
  • 存儲系統
  • 多處理器

參考書籍c#

3. 算法與數據結構

不少人以爲如今應用系統根本就不須要數據結構,高級語言早已經封裝好了,不須要學習。這個問題類比於若是隻幹搬磚砌牆的活,熟練掌握工具那也就夠了。可是要想設計建築的話,物理是必須學的。設計模式

核心知識點

  • 算法策略:窮舉算法貪心算法分治算法回溯法數值逼近
  • 基本算法:查找算法排序算法哈希表圖算法最小生成樹
  • 基本數據結構:列表

參考書籍

分類 書籍 難度 重要度
數據結構與算法分析 《數據結構與算法分析》 https://book.douban.com/subject/1139426/ 通常 精讀
算法描述語言入門 《c和指針》 https://book.douban.com/subject/3012360/ 通常 精讀

解釋下爲何要把《c和指針》放到這裏,由於我的以爲全部算法與數據結構描述語言中c是最爽的一種(沒有之一),而且在《c和指針》中不只講解了c語言,更對簡單的數據結構和算法作了講解,很是漂亮。建議必定在正式學習《數據結構與算法分析》前先看這本。

4. 操做系統

操做系統中的不少概念須要瞭解,好比進程、線程、資源互斥,在實際開發中不少地方都須要用到。

核心點:

  • 內存管理
  • 設備管理
  • 調度算法
  • 併發性

參考書籍

分類 書籍 難度 重要度
操做系統原理 《現代操做系統》 https://book.douban.com/subject/3667744/ 較難 泛讀

5. 計算機網絡

計算機和遠程通訊網絡尤爲是基於TCP/IP網絡的發展,使得聯網技術變得十分重要。

核心知識點

  • 網絡分層(Tcp/ip 4層結構)
  • 網絡傳輸安全
  • HTTP協議

參考書籍

分類 書籍 難度 重要度
計算機網絡 《計算機網絡》 https://book.douban.com/subject/1179807/ 較難 泛讀
HTTP協議 《圖解http協議》 https://book.douban.com/subject/25863515/ 簡單 精讀

6. 信息管理

信息管理技術在計算機的各個領域都是相當重要的 , 它包括了信息獲取、信息數字化、信息的表示、信息的組織、信息變換和信息的表現 ; 有效存取算法和存儲信息的更新、數據模型化和數據抽象以及物理文件存儲技術.

核心知識點

  • 數據建模
  • 數據庫系統
  • 關係型數據庫系統(Mysql最佳)

參考書籍

分類 書籍 難度 重要度
數據庫基礎 《數據庫系統概念》 https://book.douban.com/subject/1929984/ 較難 泛讀
mysql數據庫 《高性能Mysql》 https://book.douban.com/subject/4241826/ 通常 精讀

7. 開發語言及框架(以.net平臺爲例)

這個主要到程序領域了,本文以.net平臺爲例。

核心知識點

  • CLR
  • 面向對象程序設計
  • Web編程

參考書籍

分類 書籍 難度 重要度
虛擬機技術 《CLR via c#》 https://book.douban.com/subject/4924165/ 較難 精讀
面向對象程序設計 《敏捷軟件開發 c#版本》 https://book.douban.com/subject/1140457/ 通常 精讀
C#語言 《深刻解析c#》 https://book.douban.com/subject/4822302/ 通常 精讀
  《c#與.net4高級程序設計》 https://book.douban.com/subject/6062550/ 通常 精讀
ASP.NET 《asp.net高級程序設計》 https://book.douban.com/subject/6428937/ 通常 精讀
JavaScript 《JavaScript權威指南》 https://book.douban.com/subject/10549733/ 通常 精讀
  《JavaScript模式》https://book.douban.com/subject/11506062/ 通常 精讀
  《javaScript語言精粹》https://book.douban.com/subject/3590768/ 通常 精讀
HTML&CSS w3c網站 簡單 精讀

8. 軟件工程

軟件工程學科涉及到爲高效率地構建知足客戶需求的軟件系統所需的理論、知識和實踐的應用。 軟件工程適用於各種軟件系統的開發 , 它包含需求分析和規約、設計、構建、測試、 運行和維護等軟件系統生存週期的全部階段。軟件工程使用工程化方法、技術和度量 , 它使用管理軟件開發的工具、軟件製品的分析和建模工具、質量評估與控制工具、確保有條不紊且有控制地實施軟件演化和複用的工具。 軟件可由我的開發者或者開發小組進行 開發 , 他們 要選擇 最適合 開發 環境 的工具、方法和途徑。質量、進度、成本等軟件工程的要素對軟件系統的生產都是十分重要的.
核心知識點

  • 軟件設計
  • 軟件過程
  • 軟件項目管理

參考書籍

分類 書籍 難度 重要度
軟件設計 《head first 設計模式》 https://book.douban.com/subject/2243615/ 通常 精讀
  《企業架構模式》 https://book.douban.com/subject/4826290/ 通常 精讀
軟件工程 《軟件工程》 https://book.douban.com/subject/6047742/ 通常 精讀
項目管理 《如何管理軟件企業》 https://book.douban.com/subject/4178846/ 通常 泛讀
項目管理 《軟件項目管理與敏捷方法》 https://book.douban.com/subject/4837350/ 通常 精讀

2、學習方法

要想學完以上知識光靠死記硬背是不行的,要有科學的方法,下面書籍包括了科學的學習方法。

分類 書籍 難度 重要度
學習方法 《總體學習》 https://book.douban.com/subject/25783654/ 通常 精讀
閱讀方法 《如何閱讀一本書》 https://book.douban.com/subject/1013208/ 通常 精讀
時間管理 《另外8小時》 https://book.douban.com/subject/10535830/ 通常 精讀
  《把時間看成朋友》 https://book.douban.com/subject/5171244/ 通常 精讀
禪修 《正念禪修》 https://book.douban.com/subject/23037911/ 通常 精讀

3、後記

以上書籍是計算機科學上須要學習的書籍的整理,部分看過,也有不少還沒看過或沒看完,並且因爲知識有限還有不少書籍或知識點沒有例出。但願能夠有更多朋友一塊兒來完善這個書單,讓咱們每一個人均可以享受到知識所帶來的樂趣

我相信,只要合理利用時間,堅持學習,在加上科學的方法,定可得到愈來愈多的知識,一樣的財富也會隨之而來。

相關文章
相關標籤/搜索