Skip to content

Latest commit

 

History

History
132 lines (70 loc) · 5.13 KB

File metadata and controls

132 lines (70 loc) · 5.13 KB

计算机专业基础必读书单

书单简介

这是一个,只要是程序员,不管哪个方向、哪个岗位,都可以看、应该看的书单。

本书单主要参考:

适合人群

  • 非科班程序员
  • 想转计算机相关专业的在校生
  • 想提前自学的计算机专业在校生
  • 想要补习基础的程序员

必读书单

1. 离散数学

豆瓣入口

讨论入口

一切工科专业都是数学的分支,数学才是基础中的基础,编程只是数学理论的实现与应用。

书中所讲的线性代数 + 图论 + 数论,会出现在计算机行业的方方面面。这也是后续各种算法的理论基础。

2. 深入理解计算机系统

豆瓣入口

讨论入口

这是计算机系统的入门级书籍,“它告诉我们计算机是如何设计和工作的,操作系统有哪些重点,它们的作用又是什么”。

任何软件的基础都是硬件,这本书涵盖了《计算机组成原理》的内容。如果你在自学操作系统相关知识时,如果产生了“它为什么是这样设计?”的问题,或者在这里能找到答案。

在学习操作系统相关的知识前,学习这本书是非常有必要的。

3. 操作系统导论

豆瓣入口

讨论入口

操作系统是最复杂、最大、最优雅的软件之一。

作为从事程序设计的程序员来说,操作系统是必须要学习和研究的软件。

4. 面向对象程序设计

豆瓣入口

讨论入口

在没有更新的程序设计风格和模式出现之前,面向对象程序设计都是每一位程序员应该学习的基础知识。

5. 算法导论

豆瓣入口

讨论入口

算法的重要性就不必多说了,这里需要重点说明一点。

本书从某些方面来说与《数据结构与算法分析》(豆瓣入口)差不多,大家可以二选一,选择标准如下:

  • 如果一点数据结构基础都没有的,建议选择《数据结构与算法分析》,因为这本书是先讲数据结构的,侧重点也是数据结构,大学课程一般也是选择这个。
  • 如果有一定的数据结构和算法基础的,建议选择《算法导论》。

6. 设计模式

豆瓣入口

讨论入口

程序员必须要学设计模式,学设计模式必看这本四人帮的设计模式。

读这本书的最佳实践是:

  • 一边看,一边用自己最熟悉的语言实现;
  • 实现出例子之后,再配合书籍去思考这个设计模式的用处;
  • 结合自己的工作经历去思考,更适合在工作中碰到时再回来翻这本书。

7. 计算机网络

豆瓣入口

讨论入口

每个人不可能独自存活,人类需要沟通。同样,计算机的软件、硬件也需要沟通,也叫通信。这本书就是讲这方面的理论基础的。

虽然这本书主要是讲互联网网络通信的理论基础的,但只要啃下这本书,就一通百通。

8. 计算机安全

豆瓣入口

讨论入口

虽然不会经常碰到,但计算机安全的重要性毋庸置疑,这是所有程序员必学的基础知识。

建议学完《计算机网络》之后,再学《计算机安全》。

9. 数据库系统概念

豆瓣入口

讨论入口

数据库是程序员接触最多的系统之一,没有理由不学习和研究这个优秀的软件。

10. 编译原理

豆瓣入口

讨论入口

相对底层和深入的知识,不一定所有程序员都会涉及到,但是,学习这方面的知识必有收获。

11. 数据密集型应用系统设计

豆瓣入口

讨论入口

这是本书单唯一一本不在大学计算机专业课表的书,源自 Teach Yourself Computer Science 推荐的书籍。

软件系统本质是数据处理系统,学习数据处理的基础知识和原理是非常有必要的。