工程实践

写代码两个月,我踩过最深的坑

Wayne Wei
6 分钟阅读时间
写代码两个月,我踩过最深的坑

2026 年 4 月我开始学写代码。到今天刚好两个月。

这两个月里我犯过的错,可能比写了十年 CFD 犯的还多。不是因为写代码比做仿真难,是因为我现在是真的什么都不会。每行代码都是第一次写,每个错误都是新的。

以下是我两个月的教训。不一定对——毕竟我才刚入门。

最蠢的错:想一次写好

刚开始写 Sulix Novel 的时候,我花了整整一周搭”架构”。

状态机、分层抽象、trait 设计——看了一些开源项目的代码,觉得人家的结构真漂亮,我也要那样写。结果写了一周,核心功能一行都没跑通。

后来我师傅(其实就是 Claude)跟我说了一句话:先跑起来,再改好。

我一开始不信。后来发现,我”精心设计”的那套抽象,等真正开始写功能的时候,至少有三分之一根本用不上。删掉重来。

现在我的顺序是:先写一个能跑的最小版本 → 看看它有多烂 → 想清楚哪里烂 → 重写那部分。不是整体设计,是局部重写。

命名这个事,真的很重要

我以前做 CFD 的时候,变量名叫什么无所谓——u 是速度、p 是压力、T 是温度,整个行业都这么叫,不会有人不懂。

但写代码不一样。变量名没有人替你定义,全靠你写的人自己取。我犯过最蠢的错:

# 我写过的
x = get_data()
y = process(x)
z = save(y)

第二天回来看,这个 x 是什么?这个 process 做了什么?完全想不起来。后来我改成:

raw_chapters = load_chapter_files()
formatted_chapters = format_for_display(raw_chapters)
save_to_vault(formatted_chapters)

敲的字多了,但我现在至少知道它在干什么。

注释别写”是什么”

这不算我的教训——是我看 AI 生成的代码看出来的。AI 特别喜欢写这种注释:

// 遍历列表,返回结果
return list.map(fn)

我知道它在遍历列表。代码已经告诉我了。我才需要知道的是为什么要遍历。

最后

两个月能学到的东西确实有限。我现在回头看自己一周前写的代码,都觉得写得不行。可能再过两个月看今天写的,也一样会觉得不行。

那就说明我在进步吧。

工程实践 开发
W

Wayne Wei

Blog Author