精湛技艺的祭品

就我个人的经历来讲,对计算机技术的精炼程度总是比不上数学。

为什么呢?思来想去,还是投入与激情的问题。对数学的投入,可不是简单地停留在单纯的技术、技法上,而是对它的历史、发展、伟大人物、社区都了如指掌。各种细节奇闻异事简直如数家珍,还经常同朋友以这些梗作为玩笑的素材。

而programming,根本没能达到这样的投入水准。脑海里总是有这样一种印象:知道“技法”也就够了。不过是一堆实用性的工程知识学,没有太多走心的必要性,也不用分心去理解融入里面的各种文化、哲学。

可是一旦将关注点转移到数学上,我的看法就两样了。自己太清楚那些掌握数学发展历程、行事哲学、以探索数学作为人类心智荣耀的那群人,同那些仅仅学习了数学“技法”之人的实力差距了。

如果能够认同理解相关文化、历史、哲学在数学当中的重要性,又怎敢期望能够绕过“了解、理解这些计算机文化”这一过程,而达到programming的精练?!

自己阅读数学证明的时候,大多有一个潜意识的初衷:这堆奇形怪状的符号一般人都看不懂的,而我可以(或者而我要把它看懂),要以此来彰显自己的卓尔不群。

之后便可以长时间地全情投入、剖析数学证明,有滋有味地去细啃每一个精妙的技巧和文字背后所蕴藏的深意。时间无疑会因此耗费相当之多,但最终,能够将所有技艺存乎一心再上一个境界,理解这堆符号背后的“诗意”。

但是在看代码的时候,感觉耐心明显就比不上数学了。急匆匆地想要快速实现、定位一个功能。如果无法快速得到答案,便直接辗转Google。得到相应的示例代码后,便快速用上。然后对整个问题不加消化和回味,快速扔掉,再开始下一个议程。

从宏观上来看,这一匆匆而过的行为无异于急功近利的焦迫。对编程问题的探索本身,并没有成为自己快乐的源头,成为满足好奇心的珍贵养料。而是把它当作负担想要快速扔掉。没有以理解代码为荣、也没有以理解代码为傲,或者根本的说,就是没能融入到programming的文化中,成为计算机的精神奴隶,来作为奉献的祭品。

如何这般,如何能够理解(如同数学一般的)代码背后的“诗意”?如何去理解潜藏在单调乏味背后的真实之美?那么自然而然,我计算机的精湛程度,也就远远比不上数学。

我的结论便是,如果要在programming(或者任何技术领域)上有相同的造诣,对不起,没有捷径。

你必须让自己投入到计算机的精神领域,心甘情愿地成为它的奴隶,必须以理解代码背后的诗意作为自己“心智的荣耀”。进而,才能在具体的锻造练习中,富有耐心、精湛技艺。

没有捷径,我已认命。

Alain Connes在《解码者》中说道:

我们不是通过“学习”来成为数学家,而是通过“做数学”来成为数学家。对任何问题的探究,不是急于去翻阅哪本图书、哪个权威曾经做过相关研究或者论断,这只会延迟“独立性的觉醒”,而是要通过自己的思考去做这个问题。

那么,在programming领域,或者说更具文化特色的hacking领域,这份独立性和对重大问题攻克的强烈兴趣是一致的。你无法通过阅读简介、又或是不断地以面向Google、面向Stack Overflow的方式去做编程。这一方式无异于Connes提到的翻看书本寻找答案,那只会延迟自己的独立性的觉醒。

重要的是能力,而不是知识,这是技艺的关键。在数学或hacking文化中,解决问题的首要目的是为了满足强烈的好奇心。而如果只是把得到答案作为最高优先级,则会完全将“能力的锻造”放到次等位置,并将攻克问题的有趣过程,变成了急不可耐、乏味异常的拼凑答案的自以为是。由此而至的,当然是低劣的技术、浅薄的根基以及自己都觉得乏味的programming这个行为本身。

文化的作用是什么?就是一次次地去阻止自己的堕落和低劣标准,通过构建imaginary story的方式,赋予自己和所在团体一种使命感和责任感,不妥协、不堕落、高要求。文化的形成与接收极其重要,因为在此之下你的所有本能反应和大小决策标准,都会严格基于你所接收文化的素养和质量。如同一个小孩的成长环境,在技术领域所接收、认同的文化本身,决定了你的技术深度和未来潜力。

如果你认同的文化,追求的是解谜之乐、挑战好问题的研究之乐,那么在面对复杂问题的时候,不仅会拥有高出常人的耐心,更会因为问题本身的复杂而甘愿做更多的细密功夫,来让这趟探索之旅更加完美。

或许对于实用主义者来说,这些附加的“心智的荣耀”,显得单薄可笑。在生存的压力面前,在各种勾心斗角面前,脆弱得不堪一击。甚至可以下这样一个结论:这些智慧上思考乐趣的追求,不过是一堆奢求,如同小孩子在过家家玩游戏。这样的方式,无法让你在成人世界的黑暗森林中生存下来。

引用欧几里得的名言:“几何里无王者之道”。

无论外界的生存压力如何,无论你的人际关系有多复杂,也无论你曾被多少人坑过当作工具、当作枪使,但是,在技术的领域里,掌握它的唯一途径就是“赤子之心”,没有捷径。

你或许可以争辩,没有赤子之心做保证,仍然可以学习、可以查阅,可以以别人的模板做修改、做使用和实用,足以让我填饱肚子。

当作饭碗填饱肚子或许是可以的。可如果想要让这份技艺得到精炼,那估计是远远不够的。

如同在匠人的世界里,要使技艺登峰造极,就一定要以相应代价作为祭品奉上。在programming里是同样的,这份祭品就是你全情投入的赤子之心。没有纯粹的好奇心做支撑,在那漫长得让人害怕的道路上,你几乎会丧失所有的勇气继续走下去。

(你当然可以争辩,如果我“能走下去”,但偏偏不要这份洗脑的文化、不要赤子之心,可不可以?

当然可以!历史上多的是对某个领域毫无热情,却拥有极端天分和贡献的人。

但这里,我想讨论的是普通人,任何一个普通人都能够运用的追求达人境界的方式。那将毫无疑问,需要以“赤子之心”做祭品,奉献给技艺之神。)

也即是,即便以实用主义的角度考虑问题,就算你深谙人情世故、明白社会黑暗森林的真相,但这同样没有办法作为“技艺之神”的祭品,它只是单纯地不接受这样的东西做献祭而已。

没有捷径,你必须奉上纯粹的好奇心,接受这份文化以及它所衍生出来的imaginary story,如此,你才能进入达人境界,才能领会、欣赏那一堆奇怪符号背后所蕴藏的诗意。

 

 

 

近期回顾

向南的高速公路
读《中国近代史》
2018年04月写字总结

 

 

如果你喜欢我的文章或分享,请长按下面的二维码关注我的微信公众号,谢谢!

 

   

更多信息交流和观点分享,可加入知识星球:

 

 

VIP赞赏专区

posted @ 2018-05-24 23:29  kid551  阅读(540)  评论(5编辑  收藏  举报