《编程卓越之道:深入理解计算机》是《编程卓越之道》系列六卷中的开篇。编写卓越代码需要综合运用知识、经验,以及经过多年的探索才能学到的技能。本系列的目的就是把作者过去几十年积累的经验分享给各位新手和老鸟程序员。我希望这几本书能够帮助你们缩短学习时间,在学习时不会出现采用“笨办法”学习时的挫败感。
本书是这个系列的第一卷,介绍了典型的计算机科学或者计算机工程课程中经常被一带而过的底层细节。这些细节是解决很多问题的基础,编写高效代码离不开这些信息。我已经尽力让各卷的内容相互独立,但掌握第一卷的内容仍然是理解后续各卷的前提。
《编程卓越之道》的第二卷《运用底层语言思想编写高级语言代码》会将本书介绍的知识立即应用到实践中去。第二卷将教会读者如何对用高级编程语言编写的代码进行分析,并判断编译器生成的机器码的质量。优化编译器并不能保证生成的机器码就是最优的,源文件中使用的语句和数据结构也会严重影响编译器生成的机器码的效率。第二卷将教会读者不使用汇编语言也能写出高效的代码。
除了高效,卓越代码还有其他很多特征,本系列的第三卷《软件工程化》涵盖了部分内容。第三卷将讨论软件开发隐喻、开发方法、开发人员类型、系统文档及统一建模语言(UML,Unified Modeling Language)。第三卷将让读者打下软件工程的基础。
卓越的代码始于卓越的设计。本系列的第四卷 Designing Great Code 将介绍软件的分析和设计过程(包括结构化设计和面向对象设计)。第四卷将教会读者如何把初始概念转换为符合系统要求的设计。
本系列的第五卷 Great Coding 将教会读者如何写出让别人容易理解和维护的代码,以及如何摆脱各种软件工程书籍中提到的“繁忙工作”,从而提高自己的生产力。
卓越的代码要有实效。因此,如果没有专门用一卷来讨论测试、调试及质量保障,就太不负责任了。能够正确测试代码的程序员不多。一般来说这不是因为程序员认为测试工作无聊或者没有价值,而是因为他们完全不知道如何测试程序,如何消除错误,如何保证代码质量。为了解决这个问题,本系列的第六卷 Testing,Debugging,and Quality Assurance 将介绍如何有效地测试应用程序,摆脱测试中工程师普遍认为吃力不讨好的事情。