程序员读书

优秀的黑客应该是艺术家

2019-03-14  本文已影响0人  闲睡猫

本系列文章是《黑客与画家》的读书笔记。以下为第二章黑客与画家读后感。

君子善假于物

在设想一件事时,我总告诫自己:千万、千万不要重复造轮子!不要觉得自己特牛逼,不要觉得市场上现有的产品都是垃圾,无法承载自己的梦想,然后就要撸起袖子从头到尾自己去干一番。

如果你是这样的完美主义者(其实就是一个傻叉),那么注定什么事也做不了。因为你会一直陷入主营业务之外的其他事情。比如你有一个伟大的想法,想做一个网站将这个想法呈现。然后你选择一切自己来处理,服务器要自己弄,不用现成的云服务器,因为觉得自己的数据很宝贵。代码不用第三方框架,每一行代码都要自己写。

这样折腾下去,肯定啥事也做不了。有一个想法要验证,根本就不需要用网站,微信公众号能不能实现?第三方平台能不能先试点?相信我,你的想法在很大概率上是没市场的。

正所谓"君子生非异也,善假于物也",一定要善于借助现有的工具,我们要搭建的是艺术品,不应该去生产原料。而且自己生产的原料极大可能比现有的要差。

创造优美事物的方式往往不是从头做起,而是在现有成果的基础上做一些小小的调整,或者将已有的观点用比较新的方式组合起来。

灵感是在创造的过程中产生的

上学时,每次写作文,不可能是完全想好了再动笔,时间上也绝不允许这么做。都是有个思绪就开始写,在写的过程中自然就有灵感。写程序也一样,不可能预先将一切都想清楚,如果在写代码之前要先将各种类的关系想好,每个方法命名好,那写代码就跟做填空题一样,且不说这样降低了写代码的脑力乐趣,这样做真的有效吗?但凡写过程序的人都知道代码是需要迭代升级的,我们不可能做到预先知道每个细节。因此,我们把整个程序想清楚的时间点,应该是在编写代码的同时,这与作家、画家和建筑师的做法完全一样。可以理解为写草稿,再修改。

出于这样的编程习惯,格雷厄姆偏向于喜欢动态语言,因为他需要的是一种可以随意涂抹、擦擦改改的语言,不想正襟危坐,把一个盛满各种变量类型的茶杯,小心翼翼放在自己的膝盖上,为了与一丝不苟的编译器大婶交谈,努力地挑选词语,确保变量类型匹配,好让自己显得礼貌又周到。

优秀的黑客应该是艺术家

优秀的黑客应该是一个艺术家

每一个优秀的黑客都会有自己的项目,因为他们热爱编程,就一定要开发自己的项目。如同一个热爱画画的画家一定会有自己的作品。

如果黑客只是一个负责实现领导意志的技术工人,职责就是根据规格说明书写出代码,那么他其实与挖水沟的工人是一样的,从这头挖到那头,仅此而已。

由于经济的考量,黑客前期应该先找一份工作来糊口,即使工作中所写的代码并非自己喜欢的。而晚上则是黑客创作的时间。

黑客对于自己的代码质量要有类似于洁癖者的严苛要求,程序写出来是给人看的,附带能在机器上运行。但现实中,很多人写的程序只求能在机器上跑起来就可以了,然后不到两个月,自己都看不懂以前写的代码了,更别提其他人。

此外,优秀的黑客必须具备“换位思考”的能力,判断这一点的标准就是看他怎样向没有技术背景的人解释技术问题。

上一篇下一篇

猜你喜欢

热点阅读