他合上书,没有放回去。他抱着它,走到第一间房,坐到那把舒服的椅子上。台灯亮着,白墙上什么都没有。他把那本灰色的书放在桌上,翻开到冒泡排序那一页。
然后他做了一件他大学四年从来没做过的事。
他一行一行地读那段代码,不是“扫过去”,而是问自己:这一行在干什么?为什么要这么写?如果我把这个变量名改掉,程序还会跑吗?如果我把循环条件从i<n-1改成i<n,会发生什么?
他不知道答案。所以他拿了一张纸,把那段代码抄了下来,然后手动模拟了一遍——数组[5,2,4,6,1,3],六个数,冒泡排序跑一遍,每一轮结束后的数组是什么样子的。
他写错了两次。第一次把第二轮的结果写反了,第二次把交换的步骤漏了一个。到第三次,他终于把六轮循环全部模拟对了。
然后他在纸上写了一行字:
冒泡排序就是:每一轮都把最大的那个数“浮”到最后。像水里的气泡,大的先上去。
这是他自己的比喻。没有书这么写,没有老师这么教。但他觉得这个比喻帮他记住了冒泡排序的核心——不是代码本身,是那个“大的往后浮”的逻辑。
他又拿起银色圆片,扫了一下那张纸。
在编程区的书架上,那本灰色的《C语言程序设计——考试前一晚》正在发生微妙的变化。封面还是灰色的,但颜色比之前深了一点——从浅灰变成了中灰。书脊上,那行字下面多了一行小字:
新增章节:冒泡排序(理解度:★★☆☆☆)
不是五星,甚至不是三星。但至少,它不是空白的了。
黎明烛不知道自己什么时候趴在桌上睡着的。
醒来的时候,台灯还亮着,白墙上什么都没有。他的脖子酸得厉害,手臂被脑袋压出了红印子。他看了一眼手机——凌晨两点十七分。
他揉着眼睛走出第一间房,路过那面知识树墙壁的时候,停了一下。
在“计算机”那根光秃秃的灰色树枝上,最末梢的位置,出现了一个新的绿色光点。非常小,小到不仔细看根本看不到。比“生活技能”上的三个光点都要小,颜色也更淡,像一颗快要熄灭的萤火虫。
但它在那里。
那颗绿色的、微弱的、随时可能熄灭的光点,旁边还站着一个更大的光点。不是绿色的,是白色的,一直在闪。
他凑近一看,那个白色光点里有一行小字,像是某种通知:
检测到跨区域知识连接:“冒泡排序”与“西红柿炒鸡蛋”共享同一认知结构(步骤分解→手动模拟→建立比喻)。是否建立连接?[是/否]
黎明烛愣在原地。
跨区域知识连接?数学和生活技能之间的那根树枝上,那个新冒出来的绿点,原来不是什么“交汇处”的奇迹,而是他自己在不知不觉中搭建的一座桥。他用学西红柿炒鸡蛋的方法——先动手,再复盘,写下来,找比喻——去学了冒泡排序。然后这座桥就自己长了出来。
知识树不是一棵树。
它是一片网。
每一个你真正学会的东西,都会和另一个东西连在一起。你学得越多,这张网就越密。密到一定程度,你就不是“知道”了,你是“理解”了。
他伸出手指,在那个白色的“是”字上轻轻点了一下。
那个微小的绿色光点突然亮了一下,像是被通了电。然后它伸出两条细细的、发光的线,一条连向“生活技能”那根枝上的三个绿点,另一条连向“数学”那根枝上那个孤零零的绿点——那是
《极限与导数——第一夜的笔记》。
三根枝条,三个区域,四个绿点。一瞬间,它们被织成了一个小小的网络。小到几乎看不见,但在那棵巨大的灰色知识树上,它是唯一一片亮着的地方。
像深夜的城市里,唯一亮着灯的那扇窗。
他站在那面墙前,站了很久。然后他转身,走出图书馆。
“出库。”
出租屋里,凌晨两点半。空调还是坏的。窗外的风比傍晚更大了,吹得窗户发出呜呜的声音。他坐在书桌前,打开笔记本电脑,把那份写到一半的简历继续往下写。
写到“专业技能”那一栏的时候,他犹豫了一下。
然后他打了四个字:
正在学习。
不是“精通”,不是“熟悉”,不是“掌握”。是“正在学习”。
这是他这辈子写过的最诚实的一句话。
然后他保存了简历,关了电脑,走进厨房。
明天早上的西红柿炒鸡蛋,食材还够。鸡蛋剩最后四个了,西红柿还有两个。明天做完之后,他得再去一趟超市。两块钱一个的西红柿,一块二一个的鸡蛋。
他算了一下,如果每天只做一盘,食材成本大概十五块钱。一个月四百五十块。他的生活费还剩三百多,撑不到月底。
他需要一份工作。哪怕是一份只够吃饭和买西红柿的工作。
他躺回床上,把被子拉到下巴。天花板上那道裂缝在路灯的微光里像一条蜿蜒的河。他盯着那条“河”,脑子里同时在转三件事:冒泡排序的最后一遍模拟、明天早上西红柿炒鸡蛋的盐量、以及那份还没投出去的简历。
三件事。三个不同的区域。但不知道为什么,他觉得它们是一个东西。
他闭上眼睛。
在某个他看不见的地方,在那棵灰色的知识树深处,那张刚刚被织出来的小小网络上,四个绿色光点正在同时闪烁。它们闪烁的频率不一样,有的快有的慢,像四颗不同节奏的心跳。
但它们亮着。
在凌晨两点半的黑暗里,它们亮着。