元旦第二天,祝你拥有比昨天多一点的松弛感,和面对不完美的勇气。
你是不是也这样:写一段代码,还没开始敲,就在脑子里预演了所有可能的报错?接一个新需求,总想把所有边界情况都考虑周全,才敢动手?
我曾经就是这样,一个典型的“程序员式完美主义”患者。我花了很长时间,才真正学会了一件事——允许自己搞砸。
这个“搞砸”,不是指写一堆 bug 丢给测试。而是指,在开始构建一个新系统、尝试一个陌生框架,或设计一个复杂模块时,在心里先给自己签发一张“第一次试运行可以崩”的许可证。
我刚工作那会儿,接到一个重构核心模块的任务。我如临大敌,花了两周时间画了无数精美的架构图,试图在纸面上设计出一个毫无瑕疵的方案,结果寸步难行。我的导师走过来,只说了一句:“别想着一步到位。先写个能跑通的‘丑八怪’出来,哪怕它全是临时方案和硬编码。”
我被点醒了。我照做了。那个“丑八怪”版本确实问题一堆,但它跑起来了。而就在这个能运行的基础上,所有抽象、优化和边界处理,都变得清晰而具体。那个最初的“丑八怪”,成了最终优雅设计最坚实的垫脚石。
我们总想一次性交出完美的架构和代码,但真相是,任何优秀的系统,都是从第一个能运行的、满是问题的原型迭代出来的。
这种“不允许搞砸”的心态,会让我们在技术选型时过度纠结,在代码评审时害怕被 challenge,在遇到陌生报错时感到崩溃。我们把太多能量,内耗在了“预先防范失败”上。
后来我懂了,高级工程师的快速成长,不是因为他们从不写烂代码,而是他们拥有更快的“构建-运行-反馈-重构”的循环能力。他们把每个“搞砸”的中间状态,都看作一次珍贵的系统日志,而不是对个人技术能力的否定。
所以,如果你也常被这种完美主义困住,新年第二天,不妨试试这个小改变:
在开始写下一个让你头皮发麻的模块前,对自己默念:“我允许第一个版本是‘屎山’的雏形,我允许自己先只关心核心逻辑能不能通。”
放下那个“必须一次就写出生产级优雅代码”的沉重包袱。你会发现,当允许自己先安全地“搞砸”出一个原型,你反而获得了快速验证和迭代的自由。
真正的成长,不是第一次就编译通过,而是程序跑崩了,能看着报错信息笑一笑,说一句“哦,原来是这个问题”,然后从容地开始调试。今天,就给自己发一张“搞砸许可证”吧。