编辑推荐

适读人群:适合阅读《温伯格技术思想三部曲:程序开发心理学(银年纪念版)》的,不仅仅是处在软件行业第一线的程序员;各个软件开发单位的团队领导、项目主管、高层管理人员,以及人力资源经理、文档撰写人员、程序开发工具的设计者、程序开发语言的设计者,甚至所有其工作与程序开发有关的人,都能从《温伯格技术思想三部曲:程序开发心理学(银年纪念版)》中得到启发。
  

——科研成功之道(修订版)

——两届SoftwareJoltAward震撼大奖得主!软件开发世界的地图,经典中的经典

——永不退色的计算机科学经典著作

内容简介

温伯格技术思想三部曲:程序开发心理学(银年纪念版)》出自软件领域著名思想家,美国计算机名人堂首批成员之一的GeraldM.Weinberg温
伯格之手。《温伯格技术思想三部曲:程序开发心理学(银年纪念版)》关注的是程序开发过程中人的因素,堪称这一领域的开山之作。《温伯格技术思想三部曲:程序开发心理学(银年纪念版)》的初稿完成于整整40年前,作者当时慧眼独具,前瞻性地提出了将程序开发作为一种人类行为来考察的观点。几十年来,《温伯格技术思想三部曲:程序开发心理学(银年纪念版)》已让数读者从中受益,时至今日仍然是畅销全球的经典之作。

作者简介

邓俊辉:1970年出生的。毕业于清华大学的计算机系,清华大学博士。现在于清华大学计算机系工作,副教授。

目录

目录
第一篇作为人类行为的程序开发
1阅读程序4
一个例子6
机器的局限7
语言的局限8
程序员的局限9
历史遗留问题10
规范11
小结12
思考题12
参考资料13
本章评注14
2优秀程序的要素16
技术规范18
日程计划20
适应性21
效率23
小结26
思考题26
参考资料27
本章评注28
3如何研究程序设计30
自省31
观察33
实验36
心理学测量39
利用行为科学中的数据42
小结44
思考题45
参考资料46
本章评注50
第二篇作为社会行为的程序开发
4程序开发组59
正式与非正式组织机构59
自然环境与社会结构62
错误与唯我独尊65
私式程序开发69
建立与维护程序开发的环境73
小结78
思考题78
参考资料80
本章评注81
5程序开发团队85
团队的组建85
目标的设定与认同90
团队的领导者及其领导方法97
团队中可能出现的危机104
小结111
思考题112
参考资料114
本章评注115
6程序开发项目119
在变化中保持稳定性119
绩效评价124
项目结构130
大型项目中共同的社会性问题134
小结138
思考题139
参考资料141
本章评注143
第三篇作为个人行为的程序开发
7程序开发任务的差异150
专业的与业余的程序开发150
程序员想要做什么155
程序开发工作的不同阶段162
小结168
思考题169
参考资料170
本章评注172
8性格因素174
疯狂的轰炸机174
性格的改变176
性格中经久不变的部分179
关键的性格特征182
性格测试186
程序员的性格测验190
小结192
思考题193
参考资料194
本章评注195
9智力水平及问题求解能力197
心理定势197
问题求解的一些维度201
程序开发的智力因素203
智力测验207
程序员的智力测验209
小结215
思考题216
参考资料217
本章评注220
10积极性、培训及经验222
积极性223
培训、课程学习与教育228
学习的阻力232
如何学习程序开发237
小结243
思考题244
参考资料245
本章评注246
第四篇程序开发工具
11程序语言253
程序语言与自然语言253
程序语言设计257
小结261
思考题261
参考资料262
本章评注264
12程序语言设计的一些原则266
一致性266
简洁性273
局部性与线性279
传统与创新283
专用的、多用的以及玩具式语言289
小结293
思考题295
参考资料296
本章评注300
13其他的程序开发工具302
程序测试工具302
操作系统307
分时与批处理315
文档管理319
小结328
思考题328
参考资料330
本章评注334
第五篇结语
图表索引344

精彩书摘

  《程序开发心理学(银年纪念版)》:
  在返回的飞机上,他才有机会进行平静的反思——这是近一星期来的第一次反思。很快他就意识到这种方法的错误所在,并且悟出一个更好的方法——将整个工作分成两个部分。主运行程序只要不断地简单循环,依次检查精心设计的一组功能规范表,并且在每次确定方案时,只需对其中的各零件分别进行一次单独的测试。这样,该程序至少能保证输出合理数目的轮胎、引擎及其他零件。只要按照实质上与工程的技术规范一致的形式写好输入,这些功能规范表本身将能被编译出来。这就允许工程人员——而不必是程序员——来根据技术规范进行核对,同时在改变规范要求中的某个零件后,也可以在沿判定树继续向下前进的过程中,不必改变后续的所有零件。
  下飞机前,他已经把这两个程序都编写完了。接下来只用了一天的时间就完成了对程序的检查,再用两天与当地装配厂的工程师一道做好了输入的各技术规范表格。经过在装配厂一周的测试,正当准备返回底特律,并把其成果告诉那里的人们时,他收到一份电报,告知该项目已被撤销——理由是,这个程序根本“不可能”完成。
  他匆匆挂了电话就登上了飞机,带着他完成的这个程序返回了底特律。在看过演示后。主管们被他说服并相信该项目可以继续,他们要求他给其他程序员做一次报告。很自然地,这些程序员的态度非常冷淡——这又是一个我们将在后面回来讨论的现象——在他讲解其方法的过程中,他们只是静静地坐在那里。甚至到最后,也没有人提出什么问题——直到旧系统最初的创建者举起了手。
  “但是你的程序需要运行多长时间呢?”他问道——语气的重点放在“你的”上。
  “这取决于输入,”程序员回答,“但是平均而言,每张卡要10秒。”
  “啊哈,”对方不无得意地说,“要知道,我的程序处理每张卡片只需1秒。”
  听到这里,所有听众——毕竟,他们都为那个1秒的程序付出过“心血”——似乎心里都长出了一口气。但是我们显得年轻而天真的主人公,并没有屈服于这种论调。相反地,他语气平和地说:“但是你的程序不可行。如果不考虑可行性,我可以写出一个程序,每秒钟能处理一百万张卡片——其速度甚至可以超过读卡器。”
  毫无疑问,这些话并不能让他得到来自听众的更多支持。尽管如此,这番话里却包含了对一切程序进行评估时必须依据的一条根本性真理。如果程序根本无法正常运转,对其效率、适应性及生产成本的评估就毫无意义。
  ……

其他推荐