左手程序,右手诗:读《黑客与画家》有感

“程序写出来是给人看的,附带能在机器上运行。”

《黑客与画家》这本书是刘长发学长机缘巧合下借给我看的。起因虽然是一个偶然,但这个偶然带给我的启发却是难以估量的。它让我得以重新审视所谓“程序员”这个职业。书中其实很少有去提及“程序员”一词,而是在使用“黑客”一词来表示。黑客与画家这两个看起来相距甚远的职业,在某个维度来看却是两种相差无几的人——作为创作者。

书与作者

这本书于2004年由硅谷创业之父Paul Graham撰写,于2013年由阮一峰翻译并在中国出版。阮一峰先生翻译的时候在担心“2004年的书,13年才出翻译版会不会太迟?”事实是:虽然这是一本技术类的书籍,但是它依然能吸引十年后的广大读者。因为第一,他写的并不是技术而是思想,而正确的思想是不会过时的;第二,他的着眼点是长远的未来。

作者Paul在获得博士学位毕业后并没有选择就业,而是在网景公司上市之后的互联网浪潮中寻找机遇。他和同伴写了第一个通过互联网使用的软件viaweb,后被雅虎在98年以4900万美元收购。再后来他成立了YC,一个创业公司孵化器,帮助有想法的年轻人创业。

关于黑客

自由软件基金会创始人理查德斯托尔曼说:“出于兴趣而解决某个难题,不管它有没有用,这就是黑客。”[2]书中强调在程序员的圈子里,黑客是指最优秀的程序员,他们的行为包含三个特点:好玩、高智商、探索精神。

黑客与画家

黑客和画家这两个相距甚远的行业,在绝大多数人看来,程序员们就是那群“书呆子”工科男(女),整天面对着电脑写代码而不苟言笑;而画家则更加风趣或幽默或帅——至少比程序员更有艺术气息。看上去程序是冰冷、精确而井然有序的,而画画则是某种原始欲望热烈狂放的表达。

也许无趣、靠写代码过活的码农们可以这么说,但是黑客一定不是这样的。黑客与画家的共同之处,在于他们都是创作者,和音乐家、文学家、建筑师一样,都试图创作出优秀的作品,对于黑客而言,计算机是他们表达的一种媒介,就像画家手中的颜料或者音乐家的谱写的音符。很多时候黑客的创作过程被称为“软件工程”,但我认为与其说黑客们是engineer,不如说他们是architect,因为前者表达的更多的是去实现,而后者表达的则是架构。换言之,优秀的程序员关注的不止是程序本身的实现,更多的应该是如何定义程序能让它更加易于开发与运行维护——这也正是软件的生命周期。其实这里不难看到优秀的程序员更愿意关注宏观下的程序,而不是程序的每个细节,因为实现程序的本质不过是把人说的话翻译成机器听得懂的话而已,如何能让翻译的过程简洁、高效,能让多人合作更高效应当是每个优秀程序员的向往。

程序是给人看的

一般来说程序是给机器看的,但实际开发过程中,初级程序员往往会有两个煎熬的阶段:看别人的代码和看自己以前的代码。因为实际开发过程中,封装虽然是常态,但没人能保证这段封装好的代码未来就不会发生变动,所以看代码就不可避免了。一段好的程序应该能够“自我解释”,即哪怕不需要任何注释,其他程序员也能很快读懂代码。因为只有易读、易维护的代码才具有生命力,首先为人编写程序,其次才是计算机。

向未来而生

德国哲学家海德格尔说“向死而生”(Being-toward-death),意思是人只有面对死亡,才会停止那些无谓琐碎的关注,理解人生中真正重要的事情,从而再生。引用阮一峰的说法“向着未来而生”,我们应当把目光盯向未来的前方,决定好自己人生的路,从而再生。这也正是Paul所说的“活在未来,然后创造现在”(Live in the future, then build what’s missing)。

参考文献

[1] Graham P. Hackers & painters :big ideas from the computer age[M]. 1st ed. ed. Sebastopol, CA: O'Reilly, 2004: 258. [2] Stallman R M, Lessig L, Gay J. Free Software, Free Society:Selected Essays of Richard M. Stallman[M]. Free Software Foundation, 2002.


欢迎分享

码字不易,请我喝杯咖啡呗?