給非計算機專業學生提供一份較為全面的書單以自學計算機專業知識,你有哪些好書值得推薦?

如題。希望知友能儘可能全面的給出答案。


感謝邀請……

題主這個「計算機專業知識」著實是包羅萬象,即便是計算機專業的學生恐怕也難以做到「全面」。

都知道計算機科學主要分為偏軟和偏硬兩個方面,我自己是軟體為主的,所以下面的推薦也是以軟體為主。

書是一個方面,不過自學的效率確實不如聽課強,所以題主不妨去參加一些相關的MOOC課程。

自學要想學好最好是專一,且找好自己的學習路線,不要東看看西看看,下面推薦的書雖多,但也並非都要看。為了避免選擇恐懼症,一個類型我只推薦一本。

-----------------------------------------------------

基礎篇:

這個基礎篇基本上就是學計算機必備的知識,不會的話,後面的東西也容易看不懂的。

C++:

C++ Primer 中文版(第 5 版) (豆瓣)

這本書讀起來會給你耳目一新的感覺,前面有很小的篇幅介紹了C++的基本語法,後面會緊接著就貼合STL進行講解。看慣了其他書的編排後,對這本書的編排可能稍有不適,但是這種編排確實可以降低讀者對STL的恐懼心理(人們通常認為靠前的章節比較容易)。更多的評價請點進去看。

Java:

JAVA核心技術(卷1) (豆瓣)

這是Java的入門書籍,國內也有從上面東摘摘西抄抄的教材,料很足,學習曲線也很合適,在對C++有了一定基礎後,Java將是讓你更進一步理解OO設計的好基友。這本書還有卷2,涉及了網路相關的技術,如果感興趣可以讀,如果沒興趣,看完這個,想用Java做Web開發的話,去找JavaEE或者一些Spring框架的書來看就好了。

C#:

C# 編程指南

C# 教程 (C#)

這個不是書。但是我覺得這個比書要好,在你已經具備了一定的基礎之後(特別是Java),可以說學習C#是很簡單的,最新的技術、最新的框架都在MSDN上,這個絕對是學習C#的絕佳工具。

CLR via C#(第4版) (豆瓣)

進階必修課,翻譯質量也不錯

數據結構:

數據結構與演算法分析 (豆瓣)

這本書寫得很清晰很明白,也有很多可以讓你實踐的東西,這裡的鏈接是C語言描述版,應該也有其他語言描述的版本。不過數據結構這種東西,概念都是互通的,區別只是實現而已。

演算法:

演算法競賽入門經典 (豆瓣)

這本書是劉汝佳大神的,雖然是針對進行演算法競賽的人寫的,但是對於自學者,學習演算法最關鍵的「動手做一做」在這本書中體現得淋漓盡致。除了書上的例題,在習題部分作者也提供了大量的可在OJ上自行訓練的題目,多數題目都可以通過搜索題目編號來找到題解。整本書針對入門者,淺顯易懂,但全部掌握也需多下功夫。演算法導論 (豆瓣) 無疑是好書,但是過早閱讀,可能負擔太大,更何況並非是計算機專業。

進化:

下面的書,有原版,盡量看原版……

基礎 -&> 軟體工程方向

Head First 設計模式 (豆瓣)

入門書,適合一點都不懂設計模式的人用來基礎入門

構建之法(第二版) (豆瓣)

基礎 -&> 數據處理

資料庫系統概念 (豆瓣)

數據挖掘導論 (豆瓣)

基礎 -&> 形式化研究

離散數學及其應用 (豆瓣)

形式語言與自動機理論 (豆瓣)

編譯原理 (豆瓣)

-----------------------------------------------------

其實發現也沒什麼太多可以編輯的……看好上面那些就要好久好久了,可以說已經是比較系統的知識體系了。

平時也不妨讀讀大神的Blog Matrix67: My Blog ,擴展下自己的知識面和基本素養。


猿blog —— 推薦的書單

地址 : zhisheng17/CoderBlog

C語言

  • 《C程序設計語言》
  • 《C語言參考手冊》

C++

  • 《Essential C++》
  • 《C++ Primer》
  • 《深度探索C++對象模型》
  • 《C++程序設計語言》
  • 《Think in C++ C++編程思想》

Java

  • 《 Java語言規範》
  • 《Java並發編程實戰》
  • 《Java核心技術 卷1》
  • 《Java核心技術 卷2》
  • 《 Java編程思想》
  • 《Effective Java》
  • 《深入分析Java Web技術內幕》修訂版
  • 《深入理解Java虛擬機:JVM高級特性與最佳實踐》第二版

Python

  • 《Python學習手冊》
  • 《Python核心編程》
  • 《Python網路數據採集》
  • 《Flask Web開發:基於Python的Web應用開發實戰》

GO

  • 《GO並發編程實踐》

Network

  • 《計算機網路自頂向下方法》
  • 《計算機網路》
  • 《計算機網路系統方法》
  • 《TCP/IP詳解卷1》
  • 《TCP/IP詳解卷2》
  • 《TCP/IP詳解卷3》

演算法

  • 《演算法導論》
  • 《演算法》

數據結構

  • 《數據結構與演算法分析C語言描述》

程序設計

  • 《程序設計實踐》

Unix/Linux

  • 《The Design Of The Unix Operating System》
  • 《 Unix環境高級編程》
  • 《Unix網路編程卷1》
  • 《Unix網路編程卷2》
  • 《Unix超級工具》
  • 《Unix編程環境》
  • 《Unix編程藝術》
  • 《鳥哥私房菜——基礎知識篇》
  • 《鳥哥私房菜——伺服器篇》
  • 《Linux內核設計與實現》
  • 《Linux系統編程》
  • 《深入理解Linux內核》
  • 《 Linux設備驅動》

UML和面向對象

  • 《面向對象分析與設計》
  • 《UML面向對象建模與設計》
  • 《UML用戶指南》
  • 《設計模式》

計算機組成/體系結構

  • 《深入理解計算機系統》
  • 《計算機體系結構量化研究方法》
  • 《計算機組成與設計:硬體/軟體介面》
  • 《計算機組成與嵌入式系統》
  • 《MIPS體系結構透視》

分散式/架構

  • 《分散式系統概念與設計》
  • 《分散式系統原理與范型》
  • 《大型網站技術架構:核心原理與案例分析》
  • 《大型網站系統與Java中間件實踐》

大數據/HADOOP

  • 《Hadoop權威指南(中文第2版)》

數學系列

  • 《數學分析新講》
  • 《數學之美》

Git

  • 《Git 權威指南》

安卓

  • 《第一行代碼 android》
  • 《Android 開發藝術探索》
  • 《安卓群英傳》

其他

  • 《人月神話》
  • 《編譯原理》
  • 《事務處理》
  • 《彙編語言程序設計》
  • 《程序員的自我修養—鏈接、裝載與庫》
  • 《代碼揭秘----從c/c++角度探索計算機系統》
  • 《編程之美》
  • 《劍指offer》


照著http://ocw.mit.edu中你感興趣的課中的Readings看就是了

http://coursera.org上cs好的課也很多


照著cs專業課全看就行了


推薦閱讀:

零基礎入行圖像演算法工程師需要學習哪些課程?
如何高質量得將紙質書轉換成PDF文檔?
我想問現在計算機培訓的那麼多,培訓3個月就出來造假3年工作經驗,讓我這種好好學習的氣不過,怎麼辦?
主板上的南北橋是什麼東西?

TAG:程序員 | 編程 | 計算機 | Java | 計算機技術 |