第6章 手写之道

第 10 天。

张子烨的古法 Coding 学习班已经进入了第二阶段。

20 名学员站在教室中央,每人面前都有一块白板,手里拿着马克笔。

“今天的测试很简单,”张子烨说,”手写实现一个快速排序算法,不允许查阅任何资料,纯凭记忆。”

学员们面面相觑。

快速排序,这是算法课上的经典内容,但在 AI 时代,已经很少有人真正手写过它了。

“开始。”

一声令下,教室里响起了马克笔摩擦白板的声音。

张子烨在教室里踱步,观察着每个人的表现。

有人奋笔疾书,显然对算法很熟悉;

有人咬着笔头,苦苦思索;

也有人在白板上涂涂改改,写一行擦一行。

十分钟后,时间到。

“停笔。”

张子烨走到第一块白板前,这是王浩的。

1
2
3
4
5
6
7
8
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quick_sort(left) + middle + quick_sort(right)

“思路正确,”张子烨点评道,”但空间复杂度是 O(n),不是最优解。”

他走到下一块白板前。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def quick_sort(arr, low, high):
if low < high:
pi = partition(arr, low, high)
quick_sort(arr, low, pi - 1)
quick_sort(arr, pi + 1, high)

def partition(arr, low, high):
pivot = arr[high]
i = low - 1
for j in range(low, high):
if arr[j] <= pivot:
i += 1
arr[i], arr[j] = arr[j], arr[i]
arr[i + 1], arr[high] = arr[high], arr[i + 1]
return i + 1

“这是标准的地快速排序实现,”张子烨点点头,”原地排序,空间复杂度 O(log n),很好。”

他继续往前走,看到了一块几乎空白的白板。

学员低着头,满脸羞愧。

“我……我忘了……”学员嗫嚅着说。

“忘了什么?”

“我忘了快速排序的原理……以前用灵码的时候,只需要输入’给我写个快速排序’就行了,从来没自己实现过……”

张子烨叹了口气。

这就是 AI 时代的悲哀——人们习惯了索取,却忘记了学习。

“没关系,”他说,”忘记是正常的。重要的是,你现在愿意重新学。”

他拿起马克笔,在那块空白白板上写下快速排序的核心思想:

分而治之,选基准,分左右,递归排。

“记住这十二个字,你就永远不会忘记快速排序的原理。”

下午,张子烨接到了一个电话。

是父亲张守道打来的。

“烨儿,回家一趟,有要事相商。”

张子烨听出了父亲语气中的凝重,立即向公司请了假,赶回家中。

书房里,张守道正在翻阅一本厚重的古籍,那是张家的传家宝——《代码筑基经》的完整版。

“爸,什么事这么急?”

张守道抬起头,目光深邃:”你看看这个。”

他指着古籍上的一段文字:

“传法之道,有三重境界:

第一重,授人以鱼——代写代码,解一时之急;

第二重,授人以渔——传授方法,使其自立;

第三重,传道授业——传承心法,延续道统。”

“烨儿,你现在处于哪一重?”

张子烨想了想:”应该是第二重吧,我在教他们手写代码的方法。”

“不够。”张守道摇摇头,”你教的是’术’,不是’道’。”

“术与道,有何区别?”

“术是技巧,是方法,是’怎么做’;道是理念,是思想,是’为什么做’。”

张守道站起身,走到窗前。

“你教他们写快速排序,但他们知道为什么要用快速排序吗?知道什么时候不该用快速排序吗?知道快速排序的优缺点和适用场景吗?”

张子烨沉默了。

他确实没有讲过这些。

“古法 Coding 的精髓,不在于会写多少算法,而在于理解代码的本质。”

“代码是什么?是人与机器的对话,是逻辑的具象化,是解决问题的工具。”

“如果你只教他们’怎么写’,而不教他们’为什么写’,那他们永远只是代码工人,不是代码修行者。”

张子烨若有所思地点点头。

“爸,我明白了。从明天开始,我会调整教学方法。”

“不只是教学方法,”张守道转过身,目光灼灼地看着儿子,”还有你的心态。”

“心态?”

“你现在被公司捧得很高,被称为’古董程序员’、’代码救世主’,但你要记住,这些虚名都是过眼云烟。”

“你的使命不是当英雄,而是传法。把古法 Coding 传承下去,让更多人掌握手写代码的能力。”

“这才是我们张家世代相传的责任。”

张子烨深深地鞠了一躬:”儿子谨记父亲教诲。”

第 11 天。

学习班的课程发生了微妙的变化。

张子烨不再只是讲解代码怎么写,而是开始讲解代码背后的原理和思想。

“今天我们讲递归。”他在黑板上写下一个简单的递归函数。

1
2
3
4
def factorial(n):
if n <= 1:
return 1
return n * factorial(n - 1)

“这个函数很简单,计算阶乘。但我要问大家一个问题——为什么要用递归?”

台下学员面面相觑。

“因为……简洁?”有人试探着回答。

“对,递归可以让代码更简洁,”张子烨点点头,”但还有更重要的原因。”

“递归的本质是什么?”

他在黑板上画了一个图:

1
2
3
4
5
6
7
8
9
10
11
  factorial(5)
/ \
5 * factorial(4)
/ \
4 * factorial(3)
/ \
3 * factorial(2)
/ \
2 * factorial(1)
|
1

“递归的本质,是将大问题分解为小问题,直到问题简单到可以直接解决。”

“这是一种思维方式,不只是编程技巧。”

“在生活中,你们遇到过需要’递归思维’解决的问题吗?”

学员们开始思考。

“比如……整理衣柜?”一个女学员举手,”先把衣服分类,再把每类衣服细分,直到每一件都有归属。”

“很好!”张子烨赞许地点点头,”还有呢?”

“做项目规划?”另一个学员说,”先把大目标分解成小目标,再把小目标分解成具体任务。”

“没错!”张子烨兴奋地说,”这就是递归思维的应用。”

“代码不是孤立存在的,它是我们思维方式的体现。当你理解了递归的本质,你不仅会用递归写代码,还会用递归思维解决生活中的问题。”

“这就是’道’——代码之道,生活之道,思维之道。”

台下的学员们听得入神。

他们突然发现,代码原来可以这么有趣,这么有深度。

不再是枯燥的语法和逻辑,而是一种思维方式,一种解决问题的艺术。

第 15 天。

学习班已经过半,学员们的进步令人惊叹。

20 人中,已经有 10 人能够独立手写中等复杂度的功能模块,另外 10 人虽然速度较慢,但也已经掌握了基础。

更重要的是,他们开始理解代码的”道”。

不再是为了写代码而写代码,而是为了解决问题、表达逻辑、创造价值。

这天下午,张子烨给学员们布置了一个特殊的作业:

“用你们学到的知识,解决一个实际问题。”

“公司的食堂系统崩溃了,员工无法在线订餐。请手写一个简单的订餐系统,包括菜单展示、订单提交、订单查询功能。”

“时间为 4 小时,开始。”

学员们兴奋地投入到了项目中。

这是第一次,他们要独立完成一个完整的项目。

4 小时后,成果展示。

第一个展示的是王浩。

他的系统虽然简单,但功能完整,代码整洁,还加上了详细的注释。

“我用了 MVC 架构,”王浩介绍道,”模型层处理数据,视图层展示界面,控制层处理逻辑。这样代码结构清晰,易于维护。”

张子烨满意地点点头:”很好,你已经理解了架构设计的重要性。”

第二个展示的是一个叫李雪的女学员。

她的系统有一个亮点——加入了异常处理机制。

“我考虑到网络可能不稳定,所以加入了重试机制;考虑到用户可能输入错误,所以加入了参数校验;考虑到数据库可能故障,所以加入了降级方案。”

“虽然代码量增加了,但系统的健壮性大大提高了。”

张子烨眼中闪过一丝惊喜。

这正是他想看到的——不只是会写代码,还要考虑实际场景,写出可靠的代码。

接下来的展示一个比一个精彩。

有人优化了数据库查询,提高了性能;

有人加入了缓存机制,减少了服务器压力;

有人设计了优雅的错误提示,提升了用户体验。

看着这些作品,张子烨感到一阵欣慰。

半个月前,这些人还只会用 AI 生成代码,对底层原理一无所知。

现在,他们已经能够独立思考,独立设计,独立实现。

这就是传法的意义。

第 16 天早上。

张子烨刚到公司,就被陈明远叫到了办公室。

“有个好消息,”陈明远脸上带着掩饰不住的兴奋,”政府那边联系我了。”

“政府?”

“对,工信部。他们听说了你的事迹,想请你去参加一个紧急会议。”

“什么会议?”

“关于全国代码重建计划的会议。”陈明远压低声音,”据说,高层已经意识到问题的严重性,准备启动国家级应急预案。”

“而你,张子烨,被指定为技术顾问。”

张子烨愣住了。

他没想到,事情会发展到这个地步。

从一个被嘲笑的”边缘程序员”,到公司的技术总监,再到国家的技术顾问……

这一切,只用了半个月。

“什么时候?”他问。

“明天,北京,中南海。”

张子烨深吸一口气。

他知道,自己的使命,已经不仅仅是一家公司、一个行业了。

而是整个国家,甚至整个人类文明。

古法 Coding 的传承,将从这里走向更广阔的舞台。


【本章完】