艾伦·凯给计算机科学专业学生的建议
https://tekkie.wordpress.com/2018/11/09/alan-kays-advice-to-computer-science-students/ 我再次逐字引用 Quora 上的一个答案,因为我认为它很有价值。Alan Kay 回答了“ 你会推荐什么书给计算机科学专业的学生?” 我的基本答案是:多读一些计算机领域以外的书籍。 值得尝试去理解“计算机科学”中的“科学”是什么意思,以及“软件工程”中的“工程”是什么意思。 现代意义上的“科学”意味着试图将现象融入尽可能具有解释力和预测力的模型中。可以存在 “人工科学” (参见赫伯·西蒙的重要著作)。一种理解方式是,如果人们(尤其是工程师)建造桥梁,那么这些桥梁就呈现给科学家,让他们通过建立模型来理解这些现象。其中的乐趣在于,科学几乎总能指出建造桥梁的更新、更好的方法,因此科学家和工程师之间友好的同事关系能够真正推动进步。 计算机领域的一个例子是约翰·麦卡锡(John McCarthy)在 50 年代末对计算机的思考,以及它们能够实现的广泛功能(也许是人工智能?),并创建了一种计算模型,将计算作为一种语言,可以充当其自身的元语言(LISP)。我最喜欢的这方面的书籍是麻省理工学院出版社出版的 《Lisp 1.5 手册》 (由麦卡锡等人编写)。这本书的第一部分至今仍是一本关于如何思考,尤其是关于计算的经典著作。 (受这一切启发,后来出版了一本名为 《Smalltalk:语言及其实现》 (作者:Adele Goldberg 和 Dave Robson,即“蓝皮书”)的书。其中还包含用 Smalltalk 编写的完整实现等。) 我非常喜欢的一本后来的“真正的计算机科学”书籍是Kiszales、Bobrow 和 Rivera 合著的 《元对象协议的艺术》 。这本书的开头部分尤其富有启发性。 真正的计算机科学的早期论文(1970 年)是 Dave Fisher (CMU) 的 “控制定义语言” 。 我最喜欢的关于计算的书可能有点牵强,但它真的很棒,文笔也很棒:马文·明斯基的 《计算:有限和无限机器》 (约1967年)。真是一本好书。 为了帮助学习“科学”,我通常会推荐各种各样的书籍: 牛顿的 《自然哲学的数学原理》 (终极科学著作和奠基文献)、布鲁斯·阿尔伯特等人的 《细胞的分子生物学》 。还有一...