财新传媒 财新传媒

阅读:0
听报道

 

优秀的软件也一样,需要狂热的付出才能达到完美。那些没有人会看到的部分也同样出色。我并非认为我自己就创作出一款优秀软件。看到那些使用很难看的变量名源代码,会让我发狂。

 

如果hacker只是执行者,把说明书转成代码,他当然可以从一头到另一头,就像挖沟一样。但若hacker是创造者,就必须考虑灵感因素。

 

hacking 就像画画一样,也有状态周期。有时你很兴奋,一天工作16小时,有时什么都提不起兴趣。

 

所以要做好一件事情,也取决于你的状态起伏。当你在山上驾驶手动变速车时,不得不踩离合器以避免后退。画画和hacking能阻止雄心倒退。不要把容易做的事情全做完,留一些在你状态不好的时候去做。不管上坡下坡,都不要让发动机熄火。

 

对hacking来说,这可以发现错误。我喜欢调试:目标和结局都很清晰,就是你遇到一个问题,期望是x,得到y,哪里错了?你最后肯定会发现原因,虽然道路是曲折,前途一定是光明的。

 

绘画例子教会我们,不仅是做好自己的工作,同时知道怎么进行协作。尽管在博物馆里只看到一个作者名字,很多伟大的艺术家的作品就是共同创作而成。莱昂纳多当时就是Andrea del Verrocchio工作室的一个学徒,Verrocchio的名画《Baptism of Christ(基督的洗礼)》中的一个小天使,就是出资莱昂纳多之手。这种事情实际上已成为规则,而不是例外。米开朗琪罗则坚持在《Sistine Chapel(西斯廷教堂)》中亲自画屋顶上每一个轮廓。

 

就我所知,画家在共同创作时,他们从不对同一部分进行合作。一般情况下,画基本轮廓是大师的活,而助手们画诸如背景等内容。我觉得,这同样适用于软件协作。

 

当一段代码有3-4个人合作写成,这个软件没有一个人能真正拥有,最终会像一个公共场所。正确的协作方式是,项目划分成清晰模块,每一块有明确责任人,接口要精心设计,如果有可能,需要从编程语言来写接口。

 

像绘画一样,多数软件也是需要观众欣赏的。Hacker就像画家,必须有创作伟大作品的豪情。这样,你就不得不从用户观点看问题。

 

当我还是一个孩子时,我就被告知从别人角度看问题。这始终意味着你做任何事情,是别人想要的,而不是自己想要的。

 

可是,我错了。从别人观点看待事物实际上是成功秘诀,这不意味着一定要自我牺牲。事实远非如此,如何理解别人看到的东西,不意味着你按照他们的兴趣做。在某种情况下,如战争,你想要做的完全相反。

 

能进行换位思考,是一个好Hacker和伟大Hacker主要区别。是否产生换位思考,一个好的判断办法是,看他们对一个没有任何技术背景的人解释技术问题。很容易可以从他们与用户的对话中就能看出来。比如,在一个午餐会上有人问你,什么是编程语言?有人会说:“哦,高级语言是被编译器用作输入,来产生目标代码的东西。”高级语言?编译器?目标代码?如果一个人连编程语言都不知道,显然他也肯定不知道这些名词。

 

软件的一部分必须能够解释自己。写好软件就意味着你不得不搞清楚少数人的想法,因为他们不会去看阅读使用手册。我所见过的做好的系统就是1984年的Macintosh源程序。

 

源代码也应该能自我解释。如果我想让人记住关于编程的一句话,它就写在《Structure and Interpretation of Computer Programs(结构和解释计算机程序)》的一开始:

 

Programs should be written for people to read, and only incidentally for machines to execute.

 

(程序主要是写给人看的,只是顺便被机器执行。)

 

换位思考不仅是给软件用户,还要给程序读者。这是你的义务,因为你也会成为其中一员。很多Hacker在6个月后重新看自己写的程序,却发现不知所云。

 

看起来,换位思考与智慧紧密联系。在某些地方,这么想还很时髦。但实际上,两者没有任何关联。你可以在数学和自然科学上干的很好,而不需要换位思考。在这些领域的人往往很聪明。

 

那么hacking工作真像绘画和写作那么酷吗?生命只有一次,你总希望自己从事的是伟大的职业。

 

很不幸地,这个问题很难回答。一个职业的威望建立总要很长时间,就像光线从遥远星球到达地球,要很长时间一样。绘画艺术已有威望,因为500年前就有伟大的作品,当时也没人像我们今天认为的那么重要。

 

我承认,hacking不像绘画那么酷。但我们仍然可以相信,hacking的荣耀的日子也许还在后头。我们应该记得,绘画风光也是现在才有的事情。大多数领域的伟大成就都已经在早期完成。1430年到1500年间的绘画成就至今还未被超越。莎士比亚之后的剧作家都生活在其阴影中。Albrecht D¨urer的雕刻和简·奥斯汀的小说也是如此。

 

我们反复看到相同模式:一个新介质刚出现,人们很兴奋地在上面做各种探索。现在hacking还处于探索阶段。

 

在达芬奇时代绘画并不酷,但是他的作品成就了绘画艺术。hacking有多酷,取决于hackers最终所作所为。(完)

话题:



0

推荐

鲍有斌

鲍有斌

433篇文章 2年前更新

科技财经专栏作者

文章