关于CS:APP
《深入理解计算机系统》(Computer Systems: A Programmer’s Perspective;CS:APP)这本书作为CMU核心课程的核心教材,一直被众人所推崇。这本书的主要内容就如它的英文名称那样:以一个程序员的视角看待计算机系统(现在的中文书名翻译给人一种这本书非常精深的错觉)。实际上这本书的内容并没有太过于深入,并且一直都作为计算机科学与技术专业低年级的计算机基础课来开设。所需要的前置知识也不是很多,一般来说学习过C语言之后就可以看了,并不需要提前学习汇编(本书第三章会讲解汇编的基础内容)。但个人感觉在学习过王爽的8086汇编以后学习本书的汇编会顺利不少。
我在三月份时得知本书第三版的英文版即将出版就早早预订了(第三版中文翻译版早已出版),苦苦等待一个月以后终于如愿成为了这版CS:APP的第一批读者。
读这本书的感受第一就是非常地爽,可以说这本书可以引领你从表层的程序一直深入到计算机内部的运作方式中,里面对于一些概念的理解也是给人一种前所未有的透彻感觉(溢出的图形表示、补码的权值理解等等)都切中了问题的本质。
除了书本上的内容,CMU的课程官网上还提供了9个lab,这9个lab也一直深受CMU开设的课程的学生们的喜爱,在lab中我们可以将在各章中学习到的知识运用到解决一个有趣的问题中,并且通过自动化的评分机制评估对知识的掌握程度。这9个lab同样是这本书的核心内容。