英文: Write Code Like You Just Learned How to Program
我正在读 Do More Faster 这本书,书中更多的是给 TechStars 创业孵化公司做广告,但仍然值得一读。让我深有感触的是,书中提到有几个人,他们通过了审查,成功的 — 至少是获得了他们的启动资金,但他们并不懂编程。他们开始学编程,以此来实现他们的创业梦想。
想想这些。就好像是先想出来一首歌,然后去学习如何使用乐器,这样来把旋律变成真正的歌。我猜测这样的学习过程会让大多数的音乐家感到惊愕,但这种惊愕并不能表明这种做法不明智,或最终不会有好结果。毕竟,你也看到了,有众多的乐队,虽然没有音乐理论方面的造诣的帮助,仍然取得了成功。
我在中学时就知道如何编程了。当时参加了一个“BASIC简介”的课程,有个作业是在只有16位色、低分辨率的Apple II 显示器上做出一个具有视觉效果的程序。我迅速的想出一些算法,让它按屏幕坐标循环画线和变换颜色。整个编写、调试过程我只用了半个小时,我完成了。
我严重的低估了人们的创造才能。
有个家伙在他的令人惊异的示范程序里使用了各种动画效果和减色图片。我要说的是令人惊异的东西,例如,里面有个骷髅,血从骷髅的眼睛里流出,流到屏幕底部,像是一个水池似的涨起来。而这只是他的作业中的一个片段。我目瞪口呆。很显然,我不是我想像中的那种艺高胆大的程序员。
我最终看到了他程序里的BASIC清单。他使用几百行、几百行的程序语句来变换颜色、画点和线。没有循环,没有变量。为了让血动起来,他绘制红色像素,等待,然后再其下画另外一滴。所有的坐标都是写死的。他是如何跟踪流动的轨迹的呢?他使用一张纸,在纸上模拟,然后一幕幕复制到屏幕上。
这让我认识到了我被以前的经验毒害了。我只想到了 编程 ,如何写出简洁干净的代码。而这个家伙在写他的骷髅程序时根本不担心这个。他不注意程序会写成什么样子或如何去维护。他只想着用一种方法来表现他的视觉效果。
这是一个很容易被人忘记或忽略的教训。在开发时,既要关注你做的东西给最终用户的体验,同时又要注意用来表现这些用户体验的程序的架构,这是极其困难的事。也许根本不可能。我想这唯一的解决办法就是放弃后者。用直接但看起来滑稽的代码,就像是刚学会编程那样,跳出樊笼,摘掉扣在代码上的各种软件工程技术的大帽子 — 除非你想成为真正的软件工程师,而非事关用户体验的设计师。