礙
广州的四月总是带着一种黏糊糊的湿热。大四的课基本空了,寝室里大多时候只有机箱风扇转动的低鸣。屏幕上的代码还在跑着测试,我靠在椅背上,看着外面的天色一点点暗下来。
最近脑子里经常会浮现一句话,愚者妄顺,智者求缺。最初读到它的时候,只觉得这是一种对人性的冷眼旁观。但随着在这个叫广州商学院的地方度过将近四年的时间,随着简历上那个4.02的绩点和两次国奖的尘埃落定,这句话慢慢变成了一面透镜。它照见的不是别人,而是我自己这几年走过的路,以及在这条路上遇到的人和事。
我常把这两种心态看作是两种赶路的方式。
大多数人偏爱平坦的大道。在民办三本这样的环境里,这条大道是显而易见的。它铺设得足够平滑,路标也很明确:上课,签到,考前背背重点,拿个及格的分数,然后把大把的时间投入到游戏、短视频或是某种随大流的考研复习中。走在这条路上,能享受到一种群体庇护的安全感。因为大家都是这样,所以我也这样。顺从本身其实没有什么错,它是认知的节能模式。在信息过载的今天,顺着别人的脚印走,是最省力的。
但问题在于,当这种顺从异化为无条件的盲从时,它就成了妄顺。这几年里,我见过太多因为一句“大家都这样”而放弃思考的瞬间。不去深究一门专业课背后的底层逻辑,只求能跑通老师给的示例代码;不去思考自己的技术栈是否符合行业需求,只是机械地跟着网上的速成教程敲击键盘。妄顺的危险,在于它会让人把暂时的便利误认为是终极的真理。
这种基于盲从构建起来的秩序感,其实是一座纸牌屋。那些被牺牲掉的细节,那些没有搞懂的底层原理,那些为了应付差事而写下的面条代码,最终都会成为偏见与矛盾的温床。等到真正面对复杂项目,或者坐在面试官面前被深挖底层时,风一吹,这座光鲜的纸牌屋就塌了。
相对而言,智者求缺,走的是另一条路。这并不是说要自诩为智者,而是一种被逼出来的生存策略。
我学的是软件工程。在敲代码的世界里,求缺是一个常态。Bug永远存在,完美的架构只在梦里。求缺,不是为了否定自己或别人,而是视“缺”为光。这道光用来照亮改进的可能。
刚进大学的时候,我也迷茫过。民办三本的标签,就像是刻在脑门上的一个“缺”。如果顺着这个标签走,大概率就是一个得过且过的剧本。我不甘心,所以开始折腾。折腾服务器,折腾开源项目,去参加各种计算机竞赛。
这个过程其实就是不断求缺的过程。在表象下寻找缝隙:课程体系里没有教的盲区,自己逻辑推演的前提,甚至是在深夜调代码时情绪的崩溃点。这是一条很窄也很孤独的路。当室友在峡谷里厮杀的时候,我可能正在为了一段内存泄漏的代码熬到凌晨三点。质疑和挑剔总是刺耳的,哪怕是对自己。在别人眼里,这种不断的折腾可能显得有些格格不入,甚至是不识好歹。
但我更愿意把这种求缺看作是一种修缮。
就像是在维护一座老屋。代码库是老屋,自己的知识体系也是老屋。需要有人搬着梯子,拿着手电筒,一点点去查验墙上的裂缝,剔除那些已经朽坏的木头,重新填上灰泥。在重构代码的时候,在复盘竞赛失误的时候,这种修缮的过程是痛苦的,但它绝不是对过去的否定,而是对这具躯壳最深沉的爱惜。
真正的试金石就在这里。当你看到自己或者项目的瑕疵时,你是不动声色地视而不见,还是以一种自暴自弃的态度去攻击它,又或者,是带着一种近乎笨拙的责任感去修补它。我拿到的那两次国奖,其实并不是因为我比别人聪明多少,仅仅是因为我在看到裂缝的时候,没有选择转过头去,而是蹲下来,把手弄脏,一点点把它补上。
人心都有一面镜子。妄顺的人,会极力把镜面擦得光可鉴人。他们只愿意看到自己想看到的样子:我是个大学生,我每天都在去图书馆的路上,我很努力。但求缺的人,会死死盯着镜面上的纹路,去分辨那到底是表层的划痕,还是深处的裂隙。
如果是表层的划痕,比如某次考试的失利,或者某个API调用错误,抛光一下,多看两遍文档,也就复原了。但如果裂痕伤及了骨架,比如对整个计算机系统底层缺乏认知,或者对未来的规划完全建立在幻想之上,继续粉饰只会加速破碎。
这几年的修行,其实就是在抛光与重塑之间寻找平衡。不对代码里多出的一个空格歇斯底里,也不对系统架构里的致命漏洞麻木不仁。接受自己身处三本院校的现实,承认这个巨大的“缺”,然后用四年的时间和无数个日夜的折腾,去重塑这面镜子的骨架。绩点4.02只是一个结果,真正支撑这个结果的,是那些在暗处修补裂痕的时光。
有时候也会有人说,过度求缺会让人寸步难行。总是盯着漏洞,总是觉得自己准备得不够好,最后可能连提交代码的勇气都没有了。
确实,如果只盯着漏洞而不迈步,求缺就成了怯懦和拖延的借口。在做项目和打比赛的时候,我对此深有体会。真正的智慧,是在有限怀疑与暂时信任之间找到一个支点。
这让我想起以前看过的一位斯诺克老手的采访。他说,优秀的球手,在击球前是怀疑主义者,在出杆时是行动主义者。
这个隐喻放在写代码或者面对人生的选择时,再贴切不过了。求缺与信任,在这里达成了一种微妙的辩证。
在赛前的准备阶段,在画架构图的时候,在写核心逻辑的时候,我必须是一个极度苛刻的怀疑主义者。反复推演所有可能的异常情况,计算时间复杂度和空间复杂度的极限,找出每一个可能导致系统崩溃的失误。这个阶段,缺口找得越多,底盘就越稳。
但在出杆的那个瞬间,在决定将代码上线,或者坐在答辩台前的那一刻,我必须是一个毫无保留的行动主义者。心无旁骛,绝不犹疑。相信自己前期的修缮已经足够抵御风雨。
如果只练推演不敢出杆,球永远停在原点,项目永远停留在本地环境。如果只知出杆从不复盘,不去找缺口,失误迟早会断送整场比赛。
在复盘时近乎苛刻,在行动时无比笃定。正是这种在两极之间的自如切换,才成就了最终那一次精准的击球。这不仅是打比赛的经验,也是我这几年学到的最重要的一课。
大学的进度条快要拉到底了。外面的天已经完全黑透,机箱的风扇声在安静的寝室里显得特别清晰。
世界从来不会因为集体的盲从而变得更加真实。那些看起来安稳的随波逐流,终究会被生活潜藏的暗流惊扰。而那些看似孤寂的求缺与折腾,最终会将脆弱的裂痕炼成坚固的壁垒。
如果可以选,我还是