给计算机专业初学者的图书推荐

updated:Aug 16, 2020

对于在计算机和编程方面毫无基础的同学

很棒!你们现在这样的状态是最好的,请在开学前的暑假里阅读 The Little Schemer 并通过实际运行而理解里面的程序。

对于已经有 1 万行以上编程经历的同学

如果还没读过的话,推荐阅读 The Little Schemer,之后推荐阅读 SICP 和 CS:APP。

The Little Schemer:递归与函数式的奥妙 (The Little Schemer)

  • 用最简单的设定和工具开始介绍编程
  • 读者不需要有而且最好不要有任何编程经验
  • 建议赶在任何「程序设计基础」课程之前,用本书和 HtDP 学习第一门编程语言

How to Design Programs

推荐将 The Little Schemer 书和 How to Design Programs (HtDP) 书结合阅读。HtDP 这本书是完全在线的。

C 程序设计语言 (TCPL, The C Programming Language)

  • 学 C 语言只用这本书,注意并不是通篇胡扯的《C 程序设计》 (谭浩强著)
  • 这本书是 C 语言的发明人写的
  • 「电类」专业第一年会有 C 语言的课,但 C 语言充满糟粕,并不适合作为第一门编程语言
  • 建议在读 TCPL 之前,先读 the Little Schemer

深入理解计算机系统,原书第 3 版 (CS:APP3e, Computer Systems: A Programmer's Perspective, 3rd Edition)

  • 讲述一个程序员视角看到的计算机,这本书在很多学校被作为「计算机系统导论」课的教材
  • 帮助理解计算机系统运行的本质
  • 需要 C 语言基础,里面有实验
  • 包括了计算机专业之后多门专业课要讲到的内容

说给刚高考完对计算机相关专业有兴趣的同学

请立刻以最快的速度下单列表中的第一本书,然后玩命学它。

一点点的解释

有的同学对本页面抱有疑问。虽然每个问题解释起来都不麻烦,然而单独对每个人一遍遍解释还是太费时间了,于是仿照 The Little Schemer 的「一问一答」体例,写在这里好了。

为什么推荐这些书?
因为它们是适合有兴趣的人的好书。
具体到第一本书,它到底好在哪里?
窝有个很绝妙的解释,但是这里地方太小写不下。
这些是学校接下来课程要用到的书吗?
恰恰相反。这些是应该学但是学校课程没有安排的内容。
那学校安排了什么相关课程?
最早的一门计算机相关课程是「程序设计基础」。
那从「程序设计基础」课入门不好吗?
不好。它的教学方法和它选用的 C 语言并没有「简单」到适合零基础入门。 此外,它可能依然即将选用臭名昭著的某本胡说八道的教材。 所以很多人学得糊里糊涂。
可是听说 C 语言是「基础」?
这个「基础」不是「适合新手入门」的意思。 总之,不要试着从 C 语言入门。
那学校/学院不知道他们的课程安排有问题吗?
这不是咱能解答的。
我就要按照学校安排的课程来,有错吗?
你不会天真到真的觉得教你「程序设计基础」课的老师都有设计程序的经验吧?