给计算机专业初学者的图书推荐
对于在计算机和编程方面毫无基础的同学
很棒!你们现在这样的状态是最好的,请在开学前的暑假里阅读 The Little Schemer 并通过实际运行而理解里面的程序。
对于已经有 1 万行以上编程经历的同学
如果还没读过的话,推荐阅读 The Little Schemer,之后推荐阅读 SICP 和 CS:APP。
The Little Schemer:递归与函数式的奥妙 (The Little Schemer)
- 用最简单的设定和工具开始介绍编程
- 读者不需要有而且最好不要有任何编程经验
- 建议赶在任何「程序设计基础」课程之前,用本书和 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 语言入门。
- 那学校/学院不知道他们的课程安排有问题吗?
- 这不是咱能解答的。
- 我就要按照学校安排的课程来,有错吗?
- 你不会天真到真的觉得教你「程序设计基础」课的老师都有设计程序的经验吧?