首页 > 其他 > 详细

温伯格技术思想三部曲:程序开发心理学——第7章、程序开发任务的差异

时间:2015-11-29 19:48:08      阅读:346      评论:0      收藏:0      [点我收藏+]

写在读书笔记之前

在微信里,我订阅了“程序视野”的公众号,有一次阅读一篇文章,我得到一个观点:在读一本书的时候,不要期望作者的话,每一句都碰到自己的心坎上,只要自己能够从中受到一点点教益,就已经是一种收获了。现在读书,我觉得轻松了一些,不必再纠结于一些细节(那些没有搞明白的东西)。


在以前,我读书的时候,只是一句一句的读,几乎不去考虑作者讲述问题的思路,其中问题是什么,解决方法是什么,结论是什么。现在读书的时候,我会注意这些字眼:错误、问题、方法、标志、例子、结论。


读书笔记


程序开发任务的差异

=====================================================

专业的与业余的程序开发


一位业余程序员可能刚刚用六条语句写成一个BASIC程序,可以用来求解二次方程的根,便开始就程序开发的理论与实践侃侃而谈;这是最令专业程序员们反感的一件事情之一。我们很清楚,这种激烈的反感背后,是因为这两行为之间差异没有为大家承认;如果缺乏这种承认,专业程序员就会感到自己的地位被贬低了。


两者最为深刻的区别在于,他们所编写的程序的最终用户。几乎无一例外,业余程序员编写的程序而言,其唯一可能的用户只有作者自己;然而,专业程序员总是在为别人开发程序。任何业余程序员都不会承认,在自己与专业程序员之间有一道无法跨越的鸿沟。一方面是来自于语义上的错觉,把他们所编写的“程序”与程序员编写的“程序”混为一谈,这两种“程序”有很大的差别:前者不过是一个关于计算“复合利息”的问题,其实只要运用对数表或者计算尺就可以更好地解决此类问题;而后者则是操作系统、编译器、工具软件,诸如此类。另一方面,是他们对程序开发的复杂性理解不够。所以,一些主管才会天真到相信,专业人员经过数年的经验积累才掌握的东西,他们可以只用一个星期就能精通。专业与业余程序员之间的差别在于专业程序员通过大量的经验积累获得高超技能,然而每当你谈到这一点,人们总是会自然地当成是空洞的说教。


=====================================================

任务目标和程序员的效率


在程序进行设计时,其中的任何部分既不能设计过分,也不能设计不足。由于种种原因,程序中有些部分对开发者的智力有很高的要求,而另一部分则可能需要大量的精力;程序员往往习惯于在前一类工作上投入过多的时间,这是程序员中的一种职业病。


如果希望确定一名程序员的工作是否出色,我们就必须看看,他是不是按照恰当的级别来处理他遇到的问题。对于同一个任务而言,有的程序员注重“程序效率”,有的程序员注重“快速完成”,这样就造成了得到最终产品的工期和质量上的差异。程序员工作绩效的差异,在很大程度上取决于其对完成任务目标的不同理解。


=====================================================

程序开发工作的不同阶段

我们必须消除一种误解:“程序开发”是一种整齐划一的工作,所以需要一批整齐划一的人才。至少对于专业程序员来说,要把定义说明转换成最终的程序,需要经过各种不同的工作,而为了完成这些不同的工作,就必须要有各种类型的人才。


人们通常将程序开发划分为问题定义、流程图分析、编码、测试和最后的文档整理等多个阶段。这种划分虽然不无道理,但在很多方面却不尽合理。在开发过程中的任何时刻,一方面是一些人处于超负荷的运转状态,而同时另一方面,其他(大部分)人却闲置于一旁。在程序测试阶段,对上机机时的需要达到最大。要是所有人同时进行程序测试,那么计算机必须会超载。但是,那些秘书人员,在测试阶段却只能在一旁无所事事,游手好闲。反过来,进入文档整理阶段之后,由于所有人的文档化工作是同时启动的,所以同样是这些秘书人员,其承担的工作量却陡然达到最大,他们将会淹没在键盘的敲击声中,忙得不亦乐乎。在程序开发过程中,正是由于任何人都只能是某些特定阶段的专家,所以他们必然会一会儿闲的发慌,一会儿又忙得不亦乐乎。


因此,一个好的项目规划,首先避免将其中的各部分任务同时集中在项目的同一阶段内。可以解决(而不是引起)问题的方法就是,把各个阶段的实际界限弄得模糊一些。这样,在问题定义阶段,就可以着手进行一些调试工作;反过来,即使进入了调试阶段,仍然可以进行部分的问题定义工作。


为了使程序员通过项目的学习收获最大,我们可以把他们指定到其不是最拿手的岗位。同样,通过这种方法,我们可以确保在遇到障碍时,他们会欣然接受转向其他任务的机会。[针对这一点笔记,看的人,要慎重,因为您可能不知道说这些话的语境是什么,而对于我来说,我只是在做一些笔记,并不能把整个语境表达出来,所以不要刻意的非让程序员去做他不拿手的事情,那样可能适得其反]。


温伯格技术思想三部曲:程序开发心理学——第7章、程序开发任务的差异

原文:http://lsieun.blog.51cto.com/9210464/1717874

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!