最近阅读了温伯格的《程序开发心理学》一书,非常有趣,作者试图用学术的方法去研究影响程序开发的因素,在这个过程中也提出了一些自己对程序开发的看法。书中对如何提高程序员团队的开发效率给出了作者自己的意见,特别强调了培训对程序开发的重要性,指出需要将选拔程序员的问题就转化成为培养程序员的问题。可能是因为英文文本中的专业表述比较多?翻译版充斥着长难句,阅读体验很差。
程序开发心理学
第一篇 作为人类行为的程序开发
第一章 阅读程序
第二章 优秀程序的要素
技术规范
日程计划
适应性
Fisher基本定理:一个系统对某一特定环境的适应性越强,它适应新环境的能力也就越弱。
往往需要在通用性和易于修改之中做取舍。
效率
“如果知道系统内存页面的大小,我们就可以对我们的程序进行适当的裁剪,使每段的大小正好与内存的一页吻合。这样,就可以避免过多的页面交换……但这也会带来类似的问题——即使计算机能够提供额外的页面空间,这样一个程序也无法加以利用;反过来,要是系统提供的页面空间更小,那么这个程序的性能将会达到最差。”
小结
好程序的必备要素:
- 在多大程度上满足功能要求?
- 能否按照计划完成?
- 条件改变时,是否可能修改?修改的成本?
- 程序效率如何?效率指的是什么?为了补偿某方面的低效率,是否会牺牲其他方面?
评注
代码质量最重要的新要素就是经济的因素。
第三章 如何研究程序设计
重要的是不要停止怀疑
自省
观察
霍桑效应:因受到他人关注而带来的提高或进步。
实验
对通过观察所得到的的庞大数据进行处理需要付出高昂的代价,为了降低处理的代价,一个办法是设计实验。
心理学测量
“To Measure is to know”——Maxwell
利用行为科学中的数据
评注
最优秀的程序员往往是那些最善于自省的。
第二篇 作为社会行为的程序开发
“建立在命令与纪律之基础上的行为,与建立在理解一致之基础上的行为是何等之不同。前者是一种酷似阅兵式的运行方式,但是对于真实的生命而言,这种方式毫无意义&#