2007-08-17

设计感觉zz

在软件开发领域,始终有一个问题困扰着我,那就是:天资,对一个开发者而言,究竟意味着什么?那些拥有“天资”的开发人员,能写出十分优秀的代码,能解决非常棘手的问题。他们还能深刻的影响软件项目的开发,只要是好的设计,他们就发现。他们能一眼看出,某一段代码,是经过深思熟虑后写出的,还是毫无目的编码的结果。



或许这里使用的“天资”一词并不恰当,更为恰当的应该是“经验”。经验丰富的开发者,往往拥有这种莫可名状的“设计感觉“,但这种感觉并不一定所有开发者都具有。我真的无法了解,所谓的”设计感觉“,究竟是开发者与生俱来的,还是在不断总结经验的过程中获得的。不过我想, ”设计感觉“多少和个人特质有点关系。



很久以前,我曾读到一本名为“Drawing On The Right Side of the Brain”的书。作者Betty Edwards在书中写到:艺术家们以不同于普通人的视角来观察这个世界,换言之,他们以有助于自己艺术创造的方式来观察事物。如果我们能以艺术家的方式去观察、去感知,那么我们将成为一个更富艺术气质的人。



我记得书中的一个实践题目是:拍摄一张面部的特写,然后将其颠倒后画出来。这招很管用,在观察颠倒的相片时,我们能够将注意力集中于画面中的曲线和棱角,我们才能够清晰的看到人脸的形状的肌理。但是,如果相片并未颠倒,那么我们所看到的人脸,和平时看到的并无二样,而且我们真实看到的画面与大脑中的画面之间的差异,会使得我们产生困惑。也就是说,当我们看到未颠倒的相片时,我们潜意识的会在脑海中产生类似这样的想法:“这是一个人脸,它是椭圆形的,那么我就先画一个椭圆形;头发是长而细的,那么我就画一些线条。”但是,以这样的方式去感知事物所得到的画面,往往是扭曲的。



我在阅读“Drawing On The Right Side of the Brain”的过程中,产生了这样一个想法:艺术创作和软件开发,是否有一定的相通性?也许富有经验的设计者观察事物的角度真的是与众不同。



几年前,Malcolm Gladwell写的一本名为“Blink”的书,让我想到了这些。书中他提出,人类的许多认知都是在无意识的情况下瞬间发生的。这一点我们可以在专家们的决策过程(decision process)中看到。他们往往知道问题的答案,但是他们自己也无法说清楚这个答案究竟是如何得来的。



专家们当然也会犯错误,不过我想,某一领域内的专家看待问题的角度,确是十分有学习价值的;而且,如果我们接受“只要不断的观察某个事物,或不断的思考某个问题,就能得到一个更好的解决方案”这一论断,那么我们就有可能将设计学习(design learning)迁移至一条不同的途径。我们可以尝试教授“设计感觉”,至少我们可以通过大量的案例教会人们如何鉴别一个设计的好坏,就像这样:这段代码很棒……那代码糟糕透了……这段代码很棒……那代码糟糕透了。我们不断的讲解一个又一个例子,直到人们对优秀代码的本质心神领会了为止。



我并不奢望这类培训能够代替正规而完整的教育,能够选修上一些正规的课程是很难得的。设计是一门精深的技艺,没有任何东西可以代替长年累月的、大量的代码实践。然而,我遇到的许多开发者,绝大部分甚至从未接触过真正卓越的代码。

没有评论: