编程是一种艺术创作

2021年1月17日 1553点热度 4人点赞 0条评论

那些赚到大钱的、少数的、顶尖的程序员,创造了世界上绝大多数优秀的软件。可以说,最顶尖的5%的程序员写出了全世界99%的优秀软件。

为何会出现这种现象?能否用大量普通的程序员,取代个别优秀的程序员,通过堆大量的时间,来创作优秀的软件?

答案显然是否定的。为什么?

不仅仅因为,在工作效率上,一个优秀的程序员可以抵10个甚至更多的、普通的程序员;更因为,不管多少普通的程序员、工作多长时间所做出的东西,都无法像个别优秀程序员做的那样好,更别说做出卓越的软件。在开发普通软件上,他们可能只是效率的区别,但是在创作优秀软件、卓越软件上,普通程序员与优秀程序员之间,是有和无的效用差别,而不是60和100的效率差别,就如同,100个普通的画家,再怎么努力工作,也无法创作出媲美梵高作品的传世之作。

%title插图%num

《星夜》——梵高的传世名画

归根到底,编程是一种艺术创作(注:艾兹格 · 迪科斯彻:程序设计是一门艺术)。创作优秀软件的很多部分,并不与科学相关,它更多地需要程序员具有艺术家一样的特质:

  • 想象力与创造力

程序员搞懂“计算理论”的必要性,与画家搞懂颜料化学成分的必要性差不多大,程序员新想法的最佳来源,并非那些名字里有“计算机”三个字的理论领域,而是来自于其解决问题的创作领域;

  • 追求卓越、专注细节的态度

正如他们所说:“电影人似乎不能理解创业者创建一样东西纯粹的是因为他们喜欢创建东西。” ——马克 · 扎克伯格评电影《社交网络》。

“我们不停地添加代码,像画家添加色彩,作曲家添加音符,每一个小细节都必须有依据……努力使每件事情完美地组合在一起,以一种前人未曾做过的方式。这使得工程师称为真正的艺术家。”——斯蒂夫 · 沃兹尼亚克 。

硅谷创业孵化公司Y Combinator创始人保罗 · 格雷厄姆的说法则更为直接:“程序员是现存最大的手工艺人群体,程序员与画家的共同之处,在于他们都是创作者,都试图创作出优秀的作品。”

%title插图%num

传统手工艺品景泰蓝制作

StackSnow

追风赶月莫停留,平芜尽处是春山。

文章评论