技术艺术与禅道《禅与计算机程序设计艺术》 / 陈光剑

Posted 禅与计算机程序设计艺术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术艺术与禅道《禅与计算机程序设计艺术》 / 陈光剑相关的知识,希望对你有一定的参考价值。

来自二千五百年前的思想:庖丁解牛的故事

庖丁释刀对曰:“臣之所好者,道也,进乎技矣。始臣之解牛之时,所见无非牛者。三年之后,未尝见全牛也。方今之时,臣以神遇而不以目视,官知止而神欲行。依乎天理,批大郤,导大窾,因其固然,技经肯綮之未尝,而况大軱乎!良庖岁更刀,割也;族庖月更刀,折也。今臣之刀十九年矣,所解数千牛矣,而刀刃若新发于硎。彼节者有间,而刀刃者无厚;以无厚入有间,恢恢乎其于游刃必有余地矣,是以十九年而刀刃若新发于硎。虽然,每至于族,吾见其难为,怵然为戒,视为止,行为迟。动刀甚微,謋然已解,如土委地。提刀而立,为之四顾,为之踌躇满志,善刀而藏之。”
先秦庄周《庖丁解牛》

译文:

庖丁放下刀回答说:“我追求的,是道(本为虚词,无特定之意,可解成自然的规律),已经超过一般的技术了。起初我宰牛的时候,眼里看到的是一只完整的牛;三年以后,再未见过完整的牛了(意思是:只看见一个虚线的牛,就是只看见怎么样去解)。现在,我凭精神和牛接触,而不用眼睛去看,感官停止了而精神在活动。依照牛的生理上的天然结构,砍入牛体筋骨相接的缝隙,顺着骨节间的空处进刀,依照牛体本来的构造,筋脉经络相连的地方和筋骨结合的地方,尚且不曾拿刀碰到过,更何况大骨呢!技术好的厨师每年更换一把刀,是用刀割断筋肉割坏的(就像我们用刀割绳子一样);技术一般的厨师每月就得更换一把刀,是砍断骨头而将刀砍坏的(因为不知道怎么砍,所以砍到骨头的时候就容易坏)。如今,我的刀用了十九年,所宰的牛有几千头了,但刀刃锋利得就像刚在磨刀石上磨好的一样。那牛的骨节有间隙,而刀刃很薄;用很薄的刀刃插入有空隙的骨节,宽宽绰绰地,那么刀刃的运转必然是有余地的啊!因此,十九年来,刀刃还像刚从磨刀石上磨出来的一样。虽然是这样,每当碰到筋骨交错聚结的地方,我看到那里很难下刀,就小心翼翼地提高警惕,视力集中到一点,动作缓慢下来,动起刀来非常轻,豁啦一声,牛的骨和肉一下子就解开了,就像泥土散落在地上一样。我提着刀站立起来,为此举目四望,为此悠然自得,心满意足,然后把刀擦抹干净,收藏起来。”

“臣之所好者,道也,进乎技矣。”
求于“道”而精于“技”。

工匠与艺术家

艺术家和工匠一样,必须熟悉自己所用的材料和工具,必须有灵巧的双手去应和心灵的要求,是所谓“心灵手巧”。一名工匠自有熟练的手艺去把他心中预构的形式付诸材料。一个雕刻家看上去也是如此。画家在画布上描画和涂抹,也像一个工匠那样工作着。

工匠是追求做到极致,做到最好,按要求来做。更多的是匠心。
艺木家追求创造,创新,求不同。更多的是想象力。

艺术家的伟大就是他对大自然的独特感受、感觉、感悟转化到他的作品里去,他可能是音乐家,可能是书法家,可能是美术家,可能是文学家或者其他。

工匠是构成这个社会的基本结构的一个主体,一流的工匠能做很精美的事情,优秀的工匠成了这个社会的主要构成。像生产手机、汽车、计算机,更多的是需要技术工匠。

而像设计一栋楼、发电机/电动机、设计制造计算机、架构设计软件系统、一个复杂组织等等,则需要技术和艺术的完美融合。

另外一个看问题的视角。工匠和艺术家的关系就好比是金字塔塔基和塔顶的关系,没有经历工匠的阶段很难成为艺术家。当然工匠在多数,艺术家在少数,想从工匠升级为艺术家这中间需要勤奋的练习、个性的发扬、情感的表达、艰辛的探索和勇敢的创新。

一个优秀工匠的练成是不易的,需要扎扎实实练好基本功并达到技艺的纯熟,拥有丰富的经验。而任何优秀艺术家的养成都必须经历工匠的勤奋刻苦阶段,并在此基础上更进一步,敢于突破传统的束缚,勇于表达自己的情感和心声,在传统的基础上创新求变。

程序:对象之存在与转变

Object o = new Object();

通过上面这一行代码,我们就“创造”了一个对象(事物)。

哲学家,关注事物的存在和事物的转变。

如果把软件世界类比为宇宙,那么事物之存在就是数据结构之创建。而事物的转变,就是算法之“运动”。

参考资料

https://zhuanlan.zhihu.com/p/258420325

《禅与计算机程序设计艺术》 / 陈光剑 目录

第一性原理

什么是禅?

什么是计算机?

什么是程序设计?

什么是艺术?

宇宙之起源

物质之形成

半导体材料

纳米光刻

二极管、三极管

太极阴阳与二进制

布尔代数与数字逻辑系统

模拟电子电路系统

信号与处理

信息论

图灵机模型

冯诺依曼模型

计算机演化史

什么是编程?

编程语言进化史

程序 = 数据结构 + 算法

模型关系思维

真理与模型

建筑工程、机械工程、电气工程与软件工程

CPU架构设计

缓存思想

计算机科学中的中间层理论

从01机器码到汇编指令到高级编程语言:一切皆是映射

美妙的递归

用计算机画一张分形图

分层思想

硬件驱动

操作系统

通信原理:TCP/IP 与 HTTP 协议、WIFI无线协议

互联网简史

数据的存储:从ROM、RAM到寄存器到L1/L2 Cache 再到磁盘文件

索引原理:来自大自然的启示 Tree 结构

人类社会数字化

人工智能

虚拟现实

技术、艺术与禅道

// TODO ...... 待续


《禅与计算机程序设计艺术》 / 陈光剑

以上是关于技术艺术与禅道《禅与计算机程序设计艺术》 / 陈光剑的主要内容,如果未能解决你的问题,请参考以下文章

图文详解 Spark 总体架构 [禅与计算机程序设计艺术]

与技术无关,但却值得码农们好好读一读的怪书:禅与摩托车维修艺术

禅与计算机程序设计艺术使用 16 门编程语言实现斐波那契数列:循环控制指令与函数递归思想

总结-OC禅与艺术

禅与 Objective-C 编程艺术

如何将Jenkins与禅道集成