编程是一种艺术创作

     软件正在吞噬世界

       “软件正在吞噬世界。”——马克 · 安德森

马克 • 安德森

       在新一轮的信息技术革命中,我们已经见证,软件对社会生产的方方面面,产生了深刻的影响,它们侵入并颠覆了已经建立起来的行业架构。越来越多的大企业和行业开始依靠软件运行,并提供在线服务,从零售行业的沃尔玛,到音乐行业的苹果公司iTunes,再到动画电影公司皮克斯。

       与此同时,过去的四十年中,软件行业可能创造了全世界最多的财富,很多赚到大钱的人都是顶尖的程序员,像我们熟知的Microsoft、Oracle、Amazon、Google、Facebook的创始人、丁磊、马化腾、李彦宏、周鸿祎等等。

编程是一种艺术创作

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

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

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

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

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

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

       想象力与创造力

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

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

 

       正如他们所说:

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

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

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

传统手工艺品景泰蓝制作

       为什么将编程当作一种艺术创作在中国这么重要?

       “光有科技是不够的。科技要和人文、艺术联姻,才能产生让我们的心为之歌唱的结果。” ——史蒂夫 • 乔布斯

史蒂夫 • 乔布斯在苹果产品发布会上

       在中国,世人已习惯于把金钱与声誉赋予,贩卖工程师所创造产品的,商人;商人建造一部部商业机器,为追求最大利益,降低风险,他们把程序员变成流水线上的苦力;甚至有些可笑的商人,认为用许多平庸的程序员,就可以取代优秀的程序员;他们认为程序员最好不要有太多的想法和创造力,程序员唯一的职责就是将产品规格如实地翻译成代码,而不是设计软件。总之,在中国程序员被大规模代码工人化,程序员们被戏称为码农或IT民工。

       中国企业更关注软件作为科学与工程的部分,但却忽略了其人文与艺术的部分,忽略了编程是一种艺术创作,这一美国软件与黑客文化的核心。这或许就是中国有不少通过CMM高等级的企业,却不能开发出被世界普遍认同、真正优秀软件的原因吧。

       Steve Woz在伯克利分校的毕业典礼上宣称“人性必胜!技术天才一定能够拯救人类!”。在这个时代,在这个软件吞噬一切的时代,具有艺术家特质的程序员----黑客,永远值得我们期待。哪怕是商人,你都应明白:顶尖程序员是创造财富最稀缺的资源。

转载于:https://www.cnblogs.com/evolution-cc/archive/2012/07/27/2612567.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机支持协同工作不是多媒体应用,计算机支持的协同工作概观.PDF

计算机支持的协同工作概观维普资讯第 2卷第 3期 工 业 工 程 V0I.2No.3I999年 9月 SeP.1999计算机支持的协同工作概观汤 庸(广东_1_业大学 计算机科学 j上程系 广东 广州 510o9o)摘要 :cscw是 门多学科交叉的新 课题 率文介绍 csc…

loss值多少才算收敛_一个家庭一年要存多少钱才算正常?国家统计局给出“答案”...

阅读本文前,请您先点击上面的蓝色字体,再点击“关注”,这样您就可以继续免费收到最新文章了。每天都有分享。完全是免费订阅,请放心关注。免责声明:本文来源于网络,如有侵权请联系作者删除。“手里有粮&…

Asterisk权威指南/第三章 安装Asterisk

在这一章我们将详细介绍如何从源代码安装Asterisk。很多人回避这种方法,说它太难了,又耗时间。我们在这里想证明的是从源代码安装Asterisk其实没那么难。更重要的是,我们想为你提供一个最好的Asterisk安装,以便学习。 在本书中&a…

郑州升达经贸管理学院计算机专业学费,郑州升达经贸管理学院学费

郑州升达经贸管理学院学费2020-07-10 13:17:19文/叶丹2020年郑州升达经贸管理学院文科类本科专业学费15000元/年;郑州升达经贸管理学院理科类本科专业学费16000元/年。一般情况下,艺术类专业学费比普通专业高一些。郑州升达经贸管理学院依据省(市区)教育…

逻辑左移

逻辑左移转载于:https://www.cnblogs.com/LoveFishC/archive/2012/07/28/3846647.html

vue 搜索框header_vue项目header模块编写

前端学习的太差了,一个header写了半天才写个勉强能用的。vue-cli引入scssnpm install node-sass --savenpm install sass-loader --save从element-ui官方拷贝一个导航栏修改处理中心我的工作台选项1选项2选项3选项4选项1选项2选项3订单管理css样式完善/*顶部导航栏盒…

Asterisk权威指南/第五章 用户设备配置

本章我们将研究连接到Asterisk的用户设备,一般来说是某种形式的VoIP电话。在Asterisk中配置信道供设备使用相对来说比较简单,但你也需要配置设备本身以使得它知道向谁发起呼叫(这已经跟Asterisk没有关系了,每个硬件厂商都有自己的…

不愿意和别人打交道_参加完孩子学校的运动会,宝妈吐槽贫富圈子差距大,不适合打交道...

文|文儿我有一个发小,蛮有钱的,前两天参加完孩子的运动会,气呼呼地说“穷人就爱斤斤计较,千万不要轻易地跟他们打交道”。这是怎么回事呢?原来,我的这位发小,今年孩子转学上了小学二年级&#x…

中职计算机属于专业课还是文化课,对中职计算机专业建设探讨.doc

对中职计算机专业建设探讨对中职计算机专业建设探讨摘要:技能培养是职业教育的主旋律。对中职学校的计算机专业建设来说,职业教育者应首先明确培养目标,制订合理的教学计划,同时结合社会的需求,全面加强师资队伍的建设…

Asterisk权威指南/第六章 拨号计划基础

拨号计划是你的Asterisk系统的心脏。它定义了呼叫是如何流进和流出系统的。拨号计划用一种脚本语言写成的,Asterisk依照其中的指令响应外部触发。和传统电话系统相比,Asterisk的拨号计划是完全可定制的。 本章介绍Asterisk的基本概念。这里讲的内容对你…

hadoop loadBalance源码分析

项目hbase数据库出现很诡异的assignment ,region移动的src和dest都是同一台regionserver,不过时间戳不同,启动的只有一个regionserver, 不知道怎么出现了两个时间戳 分析下源码解决一下 loadbalance只有一个实现 org.apache.hado…

html 遍历div内check,vue+element中checkbox 实现遍历分组全选

1、html部分style"margin-left: 30px":indeterminate"item.isIndeterminate"v-model"item.isCheck"change"checkTitle(item.isCheck, index)">全选>v-model"item.checkedData"change"checkItem(item.checkedData…

homepod换wifi网络_如何实现短租网络自由,不必换房断网

对于在异地工作的人来说,租房一直是头疼的问题,要避开黑中介,房租不能太贵,还要离公司近,最好单间或者舍友不能太奇葩,要满足以上条件实在是太难了。其实最核心的问题是房租,押一付三&#xff0…

如何升级浏览器_手把手教你申请IOS14 Beta升级方法

就在最近苹果公司正式开放了IOS14 Public Beta 2还不了解IOS14的小伙伴参考一只废材:WWDC2020 之 IOS14 篇(内含升级方法和个人体验参考)​zhuanlan.zhihu.com本期废材就来教大家如何申请升级操作方法简单易懂又官方本方法每次发布版本更新都…

树的直径,树的最长路dp思想

dp一直弱死了,树型dp很多基本的题都不会,最近在刷树型dp的题,把关于树的最长路的思想总结一下: 树的直径:树中距离最远的两点间的距离。 下面说几道题: hdu 2196:对于树上(双向边&am…

xLite连接asterisk提示sip408错误

xLite连接asterisk提示sip408错误 1.sip408应答代码全文 408 Request Timeout 在一段时间内,服务器不能产生一个终结应答,例如,如果它无法及时决定用户的位置。客户端可以在稍后不更改请求的内容然后重新尝试请求。 2.原因:造成…

linux sd卡 读写速度测试_铠侠(原东芝存储)SD卡,大容量存储时代,高速读写选择...

作为一个经常出去旅行的旅游博主,在旅行过程中,还是有很多拍摄的需求。无论是存储美图,还是视频,一个大容量、安全可靠的储存卡还是很有必要的。这既可以缓解因为容量不够,频繁导数据的尴尬。又不会因为数据丢失&#…

软件测试需求分析录音,谈一谈软件测试需求分析

在软件测试过程中我们首先要做的就是分析测试需求,一般都是由客户方给出,测试需求应该全部覆盖已定义的业务流程,以及功能和非功能方面的需求。分析软件测试需求是一个不可或缺的步骤,因为它有利于保证测试的质量和进度&#xff0…

hdu 4324 Triangle LOVE

http://acm.hdu.edu.cn/showproblem.php?pid4324 比赛的时候 脑子又短路了 “between A and B, if A don’t love B, then B must love A” 这句话读题的时候倒是看到了 思考方法的时候却忘了 伤不起呀 我们把喜欢自己的人数定为入度的话 假设到了第n1个人 那么前n个人 两两…

potplayer 多个进程_操作系统 | 进程同步与进程互斥

主题 进程同步与进程互斥 01进程同步 问题在多道批处理系统中,多个进程是并发执行的,而并发执行的进程具有异步性,也就是说,各个进程以各自独立的、不可预知的速度向前推进。这样会带来什么问题呢?如果有 AB…