计算机的学习也就那几门基础课,语言(如C,C++,Java等),数据结构与算法,数据库,计算机网络,计算机组成,操作系统,编译原理等。
下面列出书单共大家参考,这些书都是各个方面的经典书籍,非常值得一读。这些书也是我看过的书或者正在准备看的。
1.语言方面
C语言推荐著名的K&RC程序设计语言和C陷阱与缺陷
当初我学C语言时是刚刚接触编程,对指针啊,各种声明等很困惑,感觉编程很难,但当我看完C陷阱与缺陷后感觉豁然开朗,它告诉你为什么这样,怎样理解各种复杂的声明。
倒不是说这本书有多么好,而是它确实是我的编程启蒙书,它让我对编程感兴趣。当然,现在再看这本书很简单,有基础的一上午就看完了。因为这本书对我意义非凡,所以
在这啰嗦两句。
C++推荐C++ Primer 5th,这本书我感觉非常好,讲解清晰,知识点覆盖全面,关键是翻译的非常好,几乎找不到错误。如果想深入学习C++,则推荐深度探索C++对象模型,
如果用C++写项目,在写之前推荐看一下Effective C++和Effective STL。如果以后想主用C++,则推荐更近一步学习模板,
推荐Modern C++ Design.
Java推荐Java 核心技术 9th上下两卷或者Java编程思想 4th,我感觉后者较难,前者较容易,有C++基础的还是看后者吧。
如果以后想主用Java还推荐看深入理解Java虚拟机(第2版,国人写的为数不多的好书之一。
2.数据结构与算法
强烈推荐算法 4th,非常好的一本书,通俗易懂,Coursera上还有作者的公开课哦。当然也少不了经典的算法导论,不过如果前者仔细看了,
后者作为补充,粗略看看就行了(如果你不做算法工程师的话)。另外,听说数据结构与算法分析 C++语言描述也不错哦。
3.数据库
数据库理论方面推荐看数据库系统概念,俗称帆船书,比较厚,比较难,重点章节读一下就行了,没必要全读完。如果要问选择哪种数据库,当然是MySQL了,
看高性能MySQL 3rd,MySQL领域经典之作。
4.计算机网络
如果说到计算机网络, W.Richard Stevens的大名几乎是无人不知,无人不晓的。他的TCP/IP详解 卷1虽然出版时间早,但仍值得看。
还有一本计算机网络(第6版)也是非常好,我现在正在读。
5.计算机组成
计算机组成也叫计算机体系结构,是一门非常重要的基础课。计算机体系结构 量化研究方法称为计算机体系结构的圣经,必读。
还有一本严格来说并不在计算机体系结构范围内,但也有涉及,就是大名鼎鼎的深入理解计算机系统,非常好的一本书。
6.操作系统
只推荐一本现代操作系统(第3版),俗称马戏团书,作者是大名鼎鼎的Andrew S. Tanenbaum。
7.编译原理
由于还没学,了解不多,只推荐一本以免误人子弟编译器设计 2nd。