木雕体会

3d23f96ca45b19a2767c97eb259acd61_b

初学,刻了10小时左右。只需一截木头,一把小刀,一个人,可以静下心来一两个小时。有些许愉悦,与各位同学共享。1.

典同学提到过,他特别不喜欢重复的枯燥的事情。木雕一刀刀削下去,是不是重复枯燥的呢。不是,每一刀面对的不同纹理会产生的后果,刀沿不同木纹时的手感和 阻力,刀的角度的影响,刀尖或刀锋的差异,切削大平面或小细节时的不同。雕刻的每一刀,绘画时的每一笔,代码的每一个字母,在别人看来是无聊地重复。如果 你明白并细心体会,每一次呼吸都是不同的。

我在做100个俯卧撑的时候,典同学和诸多同学都提到这是毅力。事实上不全是。一次性做100个俯卧撑非常累,最热的天气汗水甚至可能在下巴颏的正下方聚 成一小滩。但是跟你想像的不同,最重要的不是力量,而是呼吸,如果你不能保持呼吸,很难坚持20个以上,因为你的肌肉没有足够的氧气;跟你想像的不同,至 关重要的不是毅力,而是观察,每一次下沉和推起都是不同的,前50个,第60个,第70个,甚至第55和第56个。在每一次下沉和推起时,完成了多少,还 剩多少,完成了百分之多少,这是当前小单位 (比如10个为一单元)中的第几个。这一次的呼吸刚好与动作配合吗,差距在哪里,你还有多少次可以纠正和体会呢。这一轮100个俯卧撑与昨天的有什么不 同。

如果能够了解到纷繁复杂的观察角度,了解这些变量的意义,甚至只要了解大千世界每一项技艺都有这么多角度,你从未注意的,或者别人从来不知道的,没有什么是重复和无聊的。

每一截木头都是新的,每一件作品者是新的,每一刀都是新的,为这一刀设想的每一种没有实施却在你头脑中闪过的念头都是新的。

2

2.

技艺中有工程,用工程的思想学习技艺易于接受,技艺与工程思想也相互印证。

小步快跑。每一次切削不可求快,不可以贪多。一刀削下去,如果跨步大了,可能多切掉一块,再也无法粘回去。虽然可以想些后续的招法弥补,但是书里提到的猫 头鹰被削掉耳朵只好改成企鹅这种事,不一定总能成功吧。而且,弥补也需要一些本事呢。切得块儿大了,用的力量大不易控制,木质错综复杂,随时可能遇到脆弱 的地方,可能就一刀削在手上。小步前进,反倒比大跨步跑得更快。每次只削下一片,每刀只前进一点点,还要每每回过头来检查是否符合预期,接下来如何。

我们写代码的时候不也是这样?对于不熟悉的技术,要写技术原型测试,而不能急于集成进工程本身。每次写上几行,然后就编译,确实没有语法错误,甚至为了确保能编译,要把一个大的任务拆成几个段落,每个段落都编译,设置检查点,总结,记日志。

持续集成。木雕是立体的,不同于二维的绘画,在最初的原料上,你没有办法标记所有后续要切削的效果。而且随着慢慢削进肌肤、骨骼,你原来标记的记号被削掉 抹去了。需要持续地重画铅笔记号,甚至你需要特意切削出一个以后一定会删除的平面弧面,只用于这一轮的标注。每一轮切削,都要重画下一阶段重点的计划,然 后再把标记的计划削掉。天狼星升起,尼罗河洪水再来,建城毁城,如此往复。每一次重画,都可以体会到不可一蹴而就、以退为进、步步为营,体会多个角度观 察,各变量间的约束和耦合,体会正交之艰难。

可能与常识相悖。记得第一次在书中读到,在第一轮迭代中最优先应该完成的,不是最简单容易的任务,而是风险最高最可能失败的部分。因为工程中的各个部分是 乘法而不是加法,任何一个部分的结果是0,全局皆输。所以,如果工程如果必然失败,那么让它尽早失败。在木雕中也是这样,先刻风险最高的部分 (不是最精细的部分,我们假设你已经技术成熟,不在当前项目中学习基本技能)。如果这一部分刻坏了不可修补了,就可以换块木头来刻了。

类似高风险先行,另一个与常识相背离的原则: 锋利的刀更安全。因为更锋利的刀在切削时需要更小的力量,因而更容易控制。在锻炼中也有类似的原因,动作要慢,要利用肌肉本身的力量,不要"悠"不要利用 惯性,因为不受控制就更可能令你受伤。以上原因我们都容易理解,我们容易忽略这样的一个事实,锋利的刀或者钝刀,都能够轻易切开手指的皮肤甚至肌健,所 以,钝刀并不更加安全。

不停测试。每一个步骤的结果都是可检验的,或者可以通过与其他步骤的相互作用因而效果是可自检验的。我们需要在最初计划的时候就设定好每个步骤之后检查点,并且需要时时停下来检验。我们甚至可以不把检验理解为"停下来",而是把检验作为步骤的必要组成部分。

在写代码时,我们有时会兴致来了写上个十几个函数,醉心于各个函数之间复杂(因而优雅和令我们兴趣?)的调用关系,然后在终于开始编译时发现里面充满了没 有预期的bug甚至总体框架的错误。我们忽略了检验测试。为当前迭代的成果 (还远不是最终成品的样子)设置好检验的方法。在用同一块木头雕刻或车铣出两个套在一起的环的时候,细分为五六个步骤,为了避免细瘦的圆环断裂,需要最后 一步才能成环和打磨。

3

4

在最后一步之前,圆环是木条,是十字架型,是方形粗糙的框子。如果你能从这些胚子里看到未来,当然最好,即使如此,你也需要知道在每一步,那些木头、十字架型、方型框子应该是什么样子,当前的效果与期待的差距是否可以容忍。

5

3.

看不到未来,看不清全局,没有足够的能力从一截木头中看出最终的模样,怎么办。我们都是凡夫俗子,是不是就不能木雕?工程和科学存在的最大价值就在于,它能够让凡夫俗子完成令自己都惊讶的任务。

解耦。

Lee Hammond 在 Draw Real People! [Draw Real People! (豆瓣)] 一书中给出这样一种方法,任何人都成能为精确绘制人像的画家。她 (?)提到给照片打上5*5的方格,然后细心*复制*每一个方格里的内容,不要管那里的东西是什么,是眼睛也好,是嘴巴也好,都不要管,而是想像,那只是 直线、曲线,这样弯那个角度的线,有轻重,有浓淡的元素。在她这里,画的元素不是骨骼肌肉、透视、情感,而是 点、线这样的元素。

元素(你甚至看成像素也未尝不可吧),与你所希望绘制的目标无关的元素,才是你在实施过程中需要关心的。这就实现了整体与部分的解耦,也完成了各个部分间的解耦。

我现在还记得跟袁FY同学一起用MFC做电化学工作站的上位机程序。我说,咱们在这里添加一个自定义消息。这对于我而言,就是单一的一个动作,袁同学随口 就说,好啊,是应该添这样一个消息,一共分成三步。我当时震惊得都停了下来。确实是三个步骤,我也早就知道是这样,侯捷老师的《深入浅出MFC》里明明白 地写着。为什么我有的时候会写着写着突然忘了呢,因为我从来也没有把这一单位动作拆分成若干明确的步骤。更不用说理解这些步骤正是对整体动作的解耦。

以前我讲课的时候喜欢说,第一步、然后、然后、然后、然后,最后嘻笑着说"这就成啦",甚至就是从头到最后,中间没有段落节奏。我喜欢这种连贯一气呵成的 感觉,享受流畅的过程。后来我爱人和刘馆长分别教育过我,需要分成若干步骤,读者、学生和受众都更希望有若干点而不是整体。这是部分与整体的解耦。

木雕经常要把木头翻过去倒过来,以便于行刀。这时,穿过木头看本质看未来,就更难。但是,如果你翻转之前划上一道线,告诉自己,我要在这里刻一个这样弧度 的表面,从这里到这里,这样就简单多了。我们不需要看到未来,只要能看到此刻,我们不需看穿木头,只要看到这一层。世无天才,有巧妙之法。

在软件工程中,我们把用户的愿景把需求"降维",分解成互相之前的关系由spec规定的模块。这样模块的实现者就不再负有了解全体大局之责,不再为战略失 误负责。如果他实现了spec而总体拼接效果不佳,那是划分模块的人的责任;如果他的代码跑起来不符合spec要求,那才是他的责任。把战略失误推给战术 实施者,这是常见的糟糕手法啊。所以我希望,所以谓协作配合的第一步,不是协同,而是分割、确定边界,解耦。

为了避免涉及全局,在工艺上有一系的手段用于解耦。画家要求精确地画你所看到的,而不是你以为的。要求你把一幅画上下颠倒临摹,要求你不画物体而是画它们 之间的空隙 (阴形) ,这些和要求只划每个格子里的点线一样,达成了局部与全局的解耦。程序员关注的,是spec,而不是需求。不是把自己放在大潮之中,而是割裂上下文,割裂 与这个世界的联系,沉浸在当前这一时刻的短期目标之中。

6

4.

工艺过程。有些东西,如果不看过程,只看成品,我们是难以理解其中的巧妙,或者如何简单的。The Art of Whittling [The Art of Whittling (Woodworking Classics Revisited) (豆瓣)] 1930年的小册子,只有91页。作者提到一种奇特燕尾槽,难以想像是如何拼装的,他说是一个经典谜团。但是当作者提到,这一结构是先做一般的燕尾槽,然 后再切割成这样,你一下子就豁然开朗"啊"直拍大腿了。瓶子里有把椅子,不是在椅子外面吹个瓶子出来,而是椅子是天鹅绒或羽毛的;瓶子里有艘船,那船的每 节桅杆都是放倒了装进船子,然后用线在瓶子外面把桅杆拉起直立的。

7

8

这是工艺过程。就像现场观摩代码的生成,读github上一个开源工程的演进,观察一个人 (比如自己)的成长,与直接把进度条接到最后,看好人如何把坏人绳子以法,愉悦和理解之深刻都是不同的。

雕刻一件作品可能需要1000刀,或者500刀。写一个小项目可能需要1000行代码,调用20个不同的库函数,声明和维护15个变量的状态,50个分支 和循环。所有这些,所有这一切,都是乘法 (逻辑与)。如果一个小小的瑕疵,可能整个大厦就此倾覆。这也是工程师为什么最好是强迫症,或者职业把他们塑造成精确、严谨、刻板。因为当你完全发挥你的 极限工作,活着本身就已艰难,根本没有心思逗乐游戏。

高手和低手的区别,在于这1000刀,每一刀他都比你快一点点,在于这1000刀,他能做到没有一刀犯错,在于他能比你少切削800刀而得到相同的效果。 在于他是一个更全栈的工程师,不仅能刻各种角度,能充分发挥各种刀的长处,他还能把手上的破刀磨成刚好锋利,时时锋利,而你以买代磨。在于他能用剃须刀片 用瑞士军刀改造出一把刚好合手的劈刀,而你需要等网购来的专用工具,时间在等候优秀工具中流逝。

在于他能够耐心等待油漆干透,然后打磨,然后刷上新的一层,然后再等待。他知道什么时候必须等须,不能强求,质量、范围、时间、代价,不可皆好。

在于他知道顺着木纹下刀或横截纹理,在于他预计到这些纹理可以在最后成品中表达特别有意思的效果,而一直保留着这一平面。在于他知道只有纵向的木纹才用作 为马腿支撑木雕,在最初这一点就改变了很多选择和方向,你甚至还没有看到他把刀从鞘里拔出来,巨大的区别就已经开始积累了。

在于作者说木雕猫头鹰是5分钟工程,杂志记者说她花费了1小时。而我,花费了2个小时。
9
5.

美术老师告诉我了,素描什么的就别指望了,没啥希望,也没有那个时间。我明白自己也只能停留在自得其乐的程度,专业、高手,甚至初学者、入门之类的,都距离我太远了。我知道,画得像刻得像什么的,并不是艺术追求的目标,从来也不是,甚至并非入门的标准。

当年,我爱人的英语阅读书的扉页上看到她写着,"不为无益之事,如何遣有涯人生",当时我很受触动。我们经常在接到一个任务和目标时,首先质问,"这有意 义吗,这能成功吗"。这是我们走向一无所成的第一步。不踏出第一步,我们甚至连都闻不到意义和成功的气味,连失败的资料都没有。

没有目的,不在乎意义。

我沉浸在每一切削之中,沉浸在观察木质纹理在层层显现之中的变化,沉浸在锻炼时汗水呼吸和心跳的感受观察之中。代码一行行生长,模块按我的预期渐渐由模糊变得清晰,数据开始庄严流动,电压和电流和光强和所有的信号帮助我感知。世界按我手的指向呈现出本来的样子。
10

11

12

13

Big Book of Whittle Fun [Big Book of Whittle Fun (豆瓣)]

似乎即 手工木雕[amazon.cn/%E6%89%8B%E5%]

------------------------------------------------------------

博客会手工同步到以下地址:

[杨贵福 - 知乎专栏]

[杨贵福 的专栏]

[giftdotyoung.blogspot.com] 我本人也访问不到了,blogspot暂停更新。