程序开发心理学

2004年清华大学出版社出版的图书
《程序开发心理学》是2004年1月1日清华大学出版社出版发行的图书，作者是（美）杰拉尔德·温伯格。
图书简介
在书中，作者从人类行为、社会行为、个人行为等角度，分析了人在计算机程序开发的过程中所表现出的行为及其影响，探讨了诸如什么样的程序员才是好的程序员，怎样才能打造出优秀的开发团队，我们在求职或招聘时做的那些智力测验是否真的有用，等等这类问题。
本书出自软件领域著名思想家，美国计算机名人堂首批成员之一的Gerald M.Weinberg温伯格之手。本书关注的是程序开发过程中人的因素，堪称这一领域的开山之作。本书的初稿完成于整整40年前，作者当时慧眼独具，前瞻性地提出了将程序开发作为一种人类行为来考察的观点。作者的行文深入浅出，书中所举例子看似信手拈来，然而却发人深省，值得读者细细品读。几十年来，本书已让无数读者从中受益，时至今日仍然是畅销全球的经典之作。
适合阅读本书的，不仅仅是处在软件行业第一线的程序员；各个软件开发单位的团队领导、项目主管、高层管理人员，以及人力资源经理、文档撰写人员、程序开发工具的设计者、程序开发语言的设计者，甚至所有其工作与程序开发有关的人，都能从本书中得到启发。
宣传语
堪称软件领域开山之作的本书由美国计算机名人堂首批成员之一、美国软件界著名思想家，Weinberg最初于1969年完成的，40年过去了，本书受欢迎的程度却丝毫未减，这在计算机程序开发这个日新月异，新技术、新产品层出不穷的领域无疑是个惊人的奇迹！此次翻译的是本书的《银年纪念版》，即25周年纪念版。
作者简介
40多年前Weinberg进入了程序开发领域，最初的工作是IBM的普通职员，后来担任了包括数据处理方面的主管在内的许多职位，并担任过“水星计划”监管程序开发的主管。从那以后，他的名字在软件工程界就开始广为人知，并且由于他在人和技术两方面的新颖的观点，而使他得到了来自全世界的赞誉。作为一位极有影响力的作家、演说家和咨询大师，Weinberg还举办了多次旨在帮助人们提高生产能力的研讨会。在他的20多本著作中，有《咨询的奥秘》、《成为技术领导者》、《质量软件管理》系列丛书等多部经典作品（都已由Dorset House出版社出版）。
译者序
能够有幸翻译Weinberg（温伯格）的这部作品，对于我来说实在是荣幸之至。温伯格的大名自不必说，这位软件领域著名的思想家，美国计算机名人堂首批5位成员之一，在全球的计算机界都享有极高的声誉。他那独特的视角和高瞻远瞩的预见能力，使他的每部作品都熠熠生辉，不仅令无数读者折服，而且也使他拥有了大量的拥趸。众多忠实的“温伯格迷”们狂热地追逐着温伯格的每部作品，甚至还建立了专门的组织和网站，以交流学习的心得体会。自20世纪70年代以来，温伯格通过撰写大量的专著、开设培训班、举办研讨会，以及为企业和项目做咨询，已经影响了、且继续影响着一代又一代的程序员，并开辟了一个又一个全新的研究领域。
《程序开发心理学》就是这样一部开山之作。此次翻译的是本书的《银年纪念版》，即25周年纪念版，不过从作者1969年在意大利休假时完成本书的初稿时算起，距今已经整整40年的时间。然而虽然过去了这么长的时间，本书受欢迎的程度却依然丝毫未减，在计算机程序开发这个日新月异，新技术、新产品层出不穷的领域，这无疑是个惊人的奇迹。而本书之所以成为一个奇迹，恰恰是由于温伯格独具慧眼，抓住了程序开发中普遍适用的规律性的东西，前瞻性地提出了将程序开发作为一种人类行为来考察的观点。在40年后的今天，我们已经超越了技术本身，将更多的注意力放在程序开发中人的因素方面，相关的著作也在书架上日渐增多。然而只要我们捧起此书，细细品读，就会愈发惊叹于温伯格早在40年前就已对我们今天仍然面对的诸多问题进行过深入的思考和探索，而他的真知灼见，时至今日仍然会让我们受益匪浅。
能从本书中受益的，绝不仅仅是处在软件行业第一线的程序员；各个软件开发单位的团队领导、项目主管、高层管理人员，以及人力资源经理、文档撰写人员、程序开发工具的设计者、程序开发语言的设计者，甚至所有其工作与程序开发有关的人，都能从本书中得到启发。当然，为了从这个宝藏中能够有所收获，读者必须暂时忘却自己习惯于专注的技术细节，而是像作者那样做一个思考者，更多地思考诸如软件项目有多少不是因为技术、而是因为人的原因而失败，什么样的程序员才是好的程序员，怎样才能打造出优秀的开发团队，我们在求职或招聘时做的那些智力测验是否真的有用等等这类问题。思考得越多，经历越丰富，体会也就会越深。我们通过思考，不仅能更好地领会到作者的深意，更会给自己的职业生涯铺就通往更高层次的阶梯。
在翻译本书的过程中，我们一如既往地得到了博文视点各位编辑的鼎力支持和帮助。作为译者，最惶恐的莫过于不能完美地表达出作者的原意，而使一部伟大的作品受损。幸运的是，这次博文视点推出的是本书的中英文对照版，读者可以随时参考原文，以更真切地体会原作的妙处。当然，这也给了我们很大的压力，由于水平有限，如果有翻译不当之处，还请读者多多谅解。
关于本书的内容，这里不想赘言，还是把探索的乐趣留给读者自己吧。几十年来读者的溢美之辞已经说明：大师就是大师，经典就是经典。这本《程序开发心理学——银年纪念版》值得我们每个人都将它摆在案头，时时翻阅。让我们静待10年后《金年纪念版》出版的那一天吧。希望我们每个人，乃至于整个中国软件行业，在这期间都能够取得长足的进步。
译 者
2009年9月于北京
图书前言
《程序开发心理学》是一本令人称奇的书——就像一位年逾125岁而仍健在的老人一样令人称奇。我们所从事的这一行业瞬息万变，据我所知，还没有其他任何一本计算机图书，能够在初次出版后长达25年内活力不减——而且依然在继续。
更让我感到惊讶的是，我在编写这本书的时候，居然从未意识到它会有什么不同寻常之处。在写此书之前的15年里，我一直在编写代码、领导程序员团队，以及向程序员提供培训和咨询。我曾想写一本关于程序开发行业的小说，这个行业在当时还鲜为人知。但我后来意识到，我还没有足够的技巧来成为一名小说作家，作品很难让人信服。这样，我在1969年到意大利休假的八周时间里，灵感涌动，于是就写下了这本《程序开发心理学》的初稿。
那时，我已经出版过几本关于如何为各种计算机编程的畅销的技术书籍，而《心理学》这本书对我来说是一次全新的探险。这本书的出版费了很大的周折——这些是我在此前出版的几本书时所不曾经历过的。出版我之前几本书的出版社McGraw-Hill，虽然从本书手稿的几位审校那里得到了对这本书的高度评价，但他们却认为没有人会花钱买这样的书。于是我把书拿给了Prentice-Hall，而他们很不情愿地说，如果我同意让他们出版我的一些赚钱的“技术类”书籍，他们就出版这本书。然而我觉得自己需要找一个更有热情的出版社，所以我将这本书同时给了另外4家出版社。由于已经耽误了2年，我决定谁先接受出版，就选同谁合作。最后这4家出版社都表示愿意出版，但第一家是Van Nostrand Reinhold——1971年，这本书终于出版了。具有讽刺意味的是，就在这本书面世的当天，负责此书的编辑却被解雇了，理由是“不理解计算机出版业”。
尽管Van Nostrand出版社对我这本书的编辑的判断力有如此的看法，但《心理学》这本书还是迅速成为了技术类书籍中的畅销书，前后共印刷了20次，在超过25年的时间内一直在印刷。后来Van Nostrand将这本书以及他们所有的计算机图书的版权都卖给了另一家大出版社——而这本书因为印刷中断，连续几个月缺货。在与这家出版社经过几乎是没有尽头的谈判之后，我重新获得了这本书的版权，并请Dorset House出版社来出版这本书的银年纪念版。
我之所以要出版这本银年纪念版，是出于以下几个原因：
1．让新一代软件人能够读到这本书的原版；
2．提供一个从历史的视角来审视这个年轻领域的机会；
3．利用这一生只有一次的机会，对软件行业的发展做一个评述，并对我以前的想法做一次反思。
在这个新版本中，我并未对软件心理学方面进行更新。其中的一个原因是，Ben Shneiderman和其他人在这方面做得比我强多了。另外一个原因是，正如Ben曾经评价的，这本书确实与其说是谈论软件心理学的，倒不如说是谈论软件人类学的——这两个主题在我后续撰写的书里都做了进一步的讨论。
最重要的是，我想通过重新审校这本书并记录我的想法，来停下脚看看这25年以来我和软件业已经走了多远。尽管本书第一版也许不能称之为这个行业的转折点，但它的确是我自己的一个转折点。从那时起，我便很少编写代码，很少做团队管理工作了。从另一方面来看，我却培训了成千上万的程序员和团队领导，并为几百个软件项目提供了咨询。我把更多的精力用于代码评审、设计方案、设计方案评审、了解需求和评审需求等工作。除此之外，我还特别倾注了大量时间来培训那些可能成为软件主管的人，并为他们提供咨询。然而，我有时仍然想回到以前那种全职程序员的简单生活中去，而不需要考虑这么多其他事务。这种想法在软件行业中很普遍，但是很少有人会这样做。
现在，我清楚地看到，这本《心理学》第一版实际上是我自己所做研究（例如对团队、领导能力、问题解决方法，以及问题定义等的研究）的一个路线图。这些主题非常重要，但又没有被很好地理解。我用了20多年的时间来丰富这些主题的细节内容。回顾那些我在《心理学》之后
写过的书，我发现自己确实在填补这些“空洞”。请允许我以时间顺序列出这些书：
1973：Structured Programming in PL/C, An Abecedarian是尝试以一种全新的方法教授程序开发和编写程序文本的实验成果。1
1975：An Introduction to General Systems Thinking直接探询了深入思考系统的思考过程2（这本书在随后的20多年中一直不断地重印）。
1975：Structured Programming3。Dennis Geller、Tom Plum和我一同编写了这套获奖的结构化程序设计系列丛书，它再次探询了一些关于思考和教授程序开发的一些新方法。
1976：High-Level COBOL Programming试图将COBOL程序员的思维过程转换为新的模式。4也许此书没有收到效果。
1977：The Ethnotechnical Review Handbook。Daniel Freedman和我自己出版了这本手册的第一版，试图激励并教授人们在开发的各个阶段阅读程序。在当时，没有一家商业出版社愿意出版关于技术评审这类话题的书。（这本书的最新版本仍在重印发行。5）
1977：Humanized Input: Techniques for Reliable Keyed Input是一本较早研究人机交互设计的先驱之作。6
1979：The Ethnotechnical Review Handbook进行了改版，加入了大量我们在阅读和分析程序的过程中学习到的东西。
1979：The Principles of Specification Design: Film Series and Workbook是我与Bob Marcus一同编写的，代表了我们在改善问题定义方面所做的首次尝试。7
1979：On the Design of Stable Systems是我与搭档Dani Weinberg一同编写的，此书将思维模式延伸到如何设计有生命力的系统中。（这本书的第二版仍在印刷，书名为General Principles of Systems Design。8）
1982：Are Your Lights on? How to Figure Out What the Problem Really Is。Don Gause和我在此书中继续进行了问题定义方面的研究。这本书在这个领域中仍然是一本很受欢迎的入门读物。9
1982：Rethinking Systems Analysis & Design讨论了系统分析师们如何思考，或应该如何思考。10
1982：Understanding the Professional Programmer讨论了程序员们如何思考，或应该如何思考。11
1985：Computer Information Systems: An Introduction to Data Processing。Dennis Geller和我在本书中，对软件工作的教授方法以及思考过程做了进一步的探索研究。12
1985：The Secrets of Consulting讲述了软件开发人员（以及其他人）和他们的客户之间的咨询关系。这本首创新颖的书直到今天仍然销售火爆，说明了咨询业有一定的普遍规律。13
1986：Becoming a Technical Leader继续深入探讨了领导和团队的话题，而且至今仍然销量可观。14
1989：Exploring Requirements: Quality Before Design。Don Gause和我一同编写，在更深的层次上探讨了问题定义这一主题。15
1991：What Did You Say? The Art of Giving and Receiving Feedback。与Edie和Charlie Seashore一同编写，总结了人们在来回传递信息时是如何互动的。16
1991—1997：Quality Software Management系列书籍，共4册，囊括了我所掌握的关于软件开发和软件人员管理的所有知识。这套系列丛书对系统的思考、测量、行为和变化等方面进行了心理学方面的探索。17
直到完成Quality Software Management系列丛书之后，我才感觉到对自己在四分之一个世纪前开始探索的问题有了一个结论。回顾这些年，尤其是从《心理学》第一版的角度回顾，我发现自己最终成为了一名比自己预料的还要蹩脚的预言家。但是值得表扬的是，我已料到自己将会是一个比自己预料的还要蹩脚的预言家。事实上，这正如任何一次技术评审一样——比我希望得差劲，但还是比我担心的情况要好一些。
至于这本银年纪念版，我决定采纳自己常在技术评审时给别人的建议：我不会试图掩藏我的错误，因为这些错误对我的读者而言可能是最有价值的收获来源。我对原始版本未做任何改动——原汁原味，全盘保留——以供您参考，我只是在思想受到触动的地方加入了一些“事后诸葛亮”式的评注。我希望通过这个时间穿梭式的前后对比，能带给您一些启示，只要能够对您有些许帮助，我就会感到莫大的宽慰。
第一版序言
这本书的主要目的只有一个——引发大家对一个全新领域的研究，这个新领域就是作为人类活动的计算机程序开发，或者简而言之，就是程序开发心理学。所有的其他目标都从属于这个主要目的。例如，我尽力让这本书看起来生动有趣，而不是那么太强调技术，以便让更多的人愿意阅读这本书，让读者不是只有程序员，还有程序开发的主管，以及那些如今以各种方式与编程相关联的人们。我努力实现的目标，就是让读者在读过这本书后会说：“是啊，程序开发不仅仅是一件只与硬件和软件有关的事。从现在起，我要换个角度看待这些事情了。”
因为这是一个全新的领域——用全新的方法看待我们熟悉的事物——所以不可能总有“科学的”证据来支持某些观点。事实上，本书中的许多观点仅仅是作者的意见——常常是很坚定的意见，这些意见除了我多年的个人观察之外，并没有其他什么更好的理论基础。毫无疑问，这些观点中有很多显然存在错误，就如同证据更多的许多观点也会有错误一样。但是，错误的观点与无用的观点之间存在着天壤之别。如果哪位读者对我在书中表达的观点有疑问，我诚恳地希望他能够用实验证明我的谬误。
正如我希望在文中用众多实例证明的那样，大量的偏见和误解阻碍着我们这个行业的发展。我和我的学生们已通过极其简单的实验，对这些偏见和误解发起了挑战。然而我们的资源非常有限，而问题却是如此巨大。据各种方法估计，当今从事程序员工作的人已达数十万。如果我们的经验能起到一些指导作用，让这些程序员和他们的主管能将程序员作为一个人，而不是又一台机器来看待，那么这些程序员的工作将会更加高效，并且从工作中得到更大的满足。
我相信，如果我们能用心理学的观点来看问题，那么我们的硬件和软件设计也会取得巨大的进步。希望这本书能鼓励设计师们将这个新的视角加入到他们的设计理念中。我并不指望本书中有限的想法和思索能够给他们提供所需的所有信息，而只是希望本书能够启发他们找到新的信息源。时至今日，程序开发尽管在工程或者数学层面已经比较成熟了，但是在心理学层面上却仍然非常稚嫩，所以即使是心理学方面的微小进展，也会带来巨大的帮助。我自己以及我的学生在教授、学习和进行程序开发时应用心理学的经验，就很好地证明了这一点。我希望每一位读者都能亲自感受一下这种体验。
阅读本书时，你会很容易看出本书中的思想来自很多人，其中很多都是我的学生，他们来自IBM公司设在纽约、日内瓦以及纽约州立大学宾厄姆顿分校的系统研究所。正是由于在十多年间有幸在学生中结识如此众多的第一线程序员，才让我有机会将我个人的种种经历扩展成各种各样的程序开发情景。这对于任何一个人来讲，恐怕终其一生都不可能有如此丰富的经历。无需多言，为了保护那些清白或者有过失的人，我们对这些经历中的一些进行了适当的处理。
如果没有与我的学生们进行长时间的讨论，如果没有他们那些丰富而又极具启发性的实验，那么这本书就不可能完成。而假装谦虚地说，本书所有的错误都是我自己的，这样做毫无意义——因为毫无疑问，一些与我有关的经历被这样那样地误传了。我的责任是，采纳这些经历来支持某些观点——正如读者的责任是根据自己的经历和需要，对每个观点进行判断。我最不希望看到的是，读者把这本书中的所言所想奉若神明——这正是我们要竭力摒弃的一种态度。这本书的内容只是供给思考的食物，而不是个人思考的替代品。
我想在此感谢那些为我个人，为本书贡献良多的学生们。同样感谢我所有的老师和我的朋友们。老师、朋友和学生——其实每个人都兼具这三种身份，我也希望他们每个人都能这样看待我，把我作为他们的良师益友兼学生。我要把这本书献给他们，我的感激之情不仅限于献辞那一页上，而且已融入于每句话和每个段落中。我要感谢我的妻子，她不仅照顾我的日常起居，还从一位人类学家的角度，逐页阅读了这本书。我对她的感激，用言语远远不足以表达。
Gerald M. Weinberg
第一版序言 评注
这本书的主要目的只有一个——引发大家对一个全新领域的研究，这个新领域就是作为人类活动的计算机程序开发，或者简而言之，就是程序开发心理学。
四分之一个世纪之前，第一版的序言这样写道。这些年来有哪些变化呢？这个我当时自负地定下的目标，是否已成功实现了呢？
是啊，我又年长了25岁，即使没有变得更加聪明，至少更加谦虚了。现在确实有许多人都在将计算机程序开发当作一项人类活动来研究，但是我却不敢说，正是这本书开启了这样一个全新的领域——无论它是否真的可以称作一个“领域”。
教材使用建议
奥斯卡王尔德曾经在许多场合宣称，他能够就任何主题侃侃而谈半个小时，而不用事先准备。当一位听众为了刁难他，请他谈谈“女王”时，他高傲地回答道：“先生，‘女王’不是一个主题。”
即便对于王尔德这样健谈的人，都很难对一个不能做主题的事情展开谈论。很多人并不相信程序开发心理学是个话题。当然，几乎没有哪所大学开设这门课程，所以任何一位想开先河的先驱都会面临一条艰难的道路。一本像本书一样的教科书应该能给这些人提供一些帮助，但至少对于首次尝试而言，对本书的使用提一些建议，应该不算过分。
这本书是伴随着一门名为“程序开发心理学”的课程而逐步完成的。这门课程是为我们计算机系统方向的研究生设置的，这些学生都有一定的编程经验，而且至少已接受了一年的研究生教育。这门课程并不适合那些尚不能独立编写程序的人，也不适合向研究生以下年级，以及主修计算机系统或计算机科学专业的本科高年级学生开设。
这门课程是以讨论课的形式传授的，因为对于那些懂得如何阅读书籍的人，我并不想采用课堂讲授的形式。这门课程要上两个学期，每学期各两个学分，这样安排是为了尽量让学生们有足够多的时间来亲身体验一下。每位学生都需要设计并完成一个小实验，其中一些实验对本书的贡献很大（书中提到了很多这样的实验）。这门课程每周上一次，每次上2个小时或者更长，上课之前学生们需要阅读教材或相关的资料，为特定的讨论主题做好准备。
关于课外读物，我有一个建议。由于很多参考资料都是发行量很少的出版物，或是不公开的技术报告，所以我会事先复印这些阅读资料，并发给每一位学生。这种方式似乎可以鼓励学生们有规律地完成阅读作业。
我们在进入“如何研究程序开发”的主题时，有些急于求成，因为很少有学生具备行为科学方面的基础，更别说行为科学方面的实验了。只有在这些方面做好准备之后，学生们才能够开始他们的项目，而我们才能够继续讲授后面的内容。虽然没有必要让这门课程要求每个学生都做实验，但是如果学生们需要做实验，这种情况下尽力让他们早一些开始就非常重要了。
如果不要求或者不希望学生们做实验，那么这门课程也刚好可以放在一个学期中教授——无论是以讨论的形式，还是以课堂讲授的形式。在任何情况下，我都强烈建议每周至少进行一次讨论，每章末尾的问题题可以作为准备讨论主题的指导——可以要求学生做笔记，或为他们布置书面作业。
使用本书的另一种方式，是开设一周或两周的集中培训课程，如暑期学院或管理培训研讨会等。在这样的课程中，只能取消实验，不过仍然可以通过一个让学生充当研究对象的简单实验，使他们体验一下实验的过程。本书中建议的实验有很多，其中任何一个都适合这种培训课程，但是如果需要满足时间上的限制，就必须事先做好充分细致的准备。类似地，由于时间有限，所以要保证每位学员都能得到一份完整的阅读材料。最后，如果只是为了缓解学生的学习压力，可以将讨论分散开，安排到每次课堂讲授之后进行。对于由富有经验的程序员或程序员主管组成的班级，讨论就显得尤为重要，因为他们在讨论中相互学到的东西，并不比从教员或者教材那里学到的少，甚至可能会更多。对他们而言，讨论的主题非常重要，而且非常贴近他们的工作，所以只要教员稍加引导和组织，课程的成功就能得到保证。
目录
《银年纪念版》前言 XVI
第一版序言 XXVI
第一版序言 评注 XXX
教材使用建议 XXXIII
第一篇 作为人类行为的程序开发 1
第一篇 作为人类行为的程序开发 评注 7
第1章 阅读程序 9
一个例子 11
计算机的局限性 13
语言的局限性 17
程序员的局限性 19
历史问题 21
规范 23
小结 25
参考资料 27
第1章 阅读程序 评注 29
第2章 优秀程序的要素 31
技术规范 35
进度计划 39
适应性 41
效率 45
小结 51
问答题 51
参考资料 53
第2章 优秀程序的要素 评注 55
第3章 研究程序开发的方法 59
自省 61
观察 65
实验 69
心理学测量标准 75
利用行为科学的数据 81
小结 83
问答题 85
参考资料 87
第3章 研究程序开发的方法 评注 93
第二篇 作为社会行为的程序开发 99
第二篇 作为社会行为的程序开发 评注 105
第4章 程序开发组 109
正式与非正式的组织机构 109
物理环境和社会组织 115
错误和自我主义 119
无私的程序开发 127
创建和维持程序开发环境 135
小结 143
问答题 143
参考资料 145
第4章 程序开发组 评注 149
第5章 程序开发团队 155
团队的组建 157
设立和接受目标 165
团队领导及其领导地位 177
危机中的团队 191
小结 203
问答题 205
参考资料 207
第5章 程序开发团队 评注 211
第6章 程序开发项目 217
在改变中保持稳定 219
衡量绩效 227
项目结构 239
大型项目中共同的社会问题 245
小结 251
问答题 253
参考资料 257
第6章 程序开发项目 评注 261
第三篇 作为个人行为的程序开发 265
第三篇 作为个人行为的程序开发 评注 271
第7章 程序开发任务的差异 275
专业的与业余的程序开发 277
程序员想要做什么 285
程序开发工作的阶段 297
小结 307
问答题 307
参考资料 311
第7章 程序开发任务的差异 评注 315
第8章 个性因素 317
个性的改变 321
个性中始终如一的部分 325
关键的个性特征 331
个性测试 341
程序员的个性测试 347
小结 351
问答题 351
参考资料 353
第8章 个性因素 评注 357
第9章 智力，或问题解决能力 359
心理定势 361
问题求解的一些维度 365
程序开发的智力因素 369
智力测验 377
程序员的智力测验 379
小结 389
问答题 391
参考资料 391
第9章 智力，或问题解决能力 评注 397
第10章 积极性、培训与经验 401
积极性 403
培训、课程学习与教育 409
学习的阻力 417
如何学习程序开发 427
小结 437
问答题 437
参考资料 439
第10章 积极性、培训与经验 评注 443
第四篇 程序开发工具 447
第四篇 程序开发工具 评注 453
第11章程序开发语言 457
程序开发语言与自然语言 459
程序开发语言的设计 467
小结 475
问答题 475
参考资料 477
第11章 程序开发语言 评注 481
第12章 程序开发语言设计的一些原则 485
一致性 487
简洁性 499
局部性与线性 509
传统与创新 515
专用的、多用的以及玩具式语言 525
小结 533
问答题 535
参考资料 537
第12章 程序开发语言设计的一些原则 评注 543
第13章 其他程序开发工具 547
程序测试工具 549
操作系统 557
分时与批处理 573
文档 579
小结 595
问答题 595
参考资料 599
第13章 其他程序开发工具 评注 605
第五篇 结语 611
第5篇 结语 评论 619