继续编码

发布: (2025年12月12日 GMT+8 21:48)
11 min read
原文: Dev.to

Source: Dev.to

Introduction

我们都有那种把本以为是小改动的 bug 当成大工程去修的日子,结果整整花了一天的时间去解决它。如果最终还是没弄明白,这会毁掉整个下午,因为它占据了我们的全部思绪。你会开始质疑自己的能力,在脑海里反复回放每一步,想不通这么简单的事怎么会耗这么久。

这就是每个开发者都熟悉的那种令人沮丧的循环。你尝试不同的方法,阅读文档,甚至重启编辑器,但依旧没有进展。于是自我怀疑涌上心头:“我真的擅长这件事吗?我现在不应该已经懂了吗?”

但事实是:在编码时感到自己很蠢是完全正常的。每一位开发者——从新人到资深工程师——都有这种时刻。编码不仅仅是敲出正确的语法,更是关于耐心、解决问题,有时还需要知道何时该后退一步。感到迷茫或卡住,只是说明你正在进行学习中最困难的部分。

You’re Always Learning (and Forgetting)

这些年我接受的一个事实是:在编码的道路上,你永远学不完。无论是从 React 切换到 Vue,还是在多个 Node 项目之间切换,我都必须不断刷新自己对每个框架结构的记忆。我会打开一个旧项目,以为自己记得组件是怎么连起来的,结果发现已经忘记了一半的语法。

起初,这让我很沮丧。我会想,我怎么会忘记已经用了上百次的东西。随着时间的推移,我意识到关键不在于记住所有细节,而在于卡住时知道去哪里找答案。无论是 MDN、Stack Overflow,还是六个月前的自己的仓库,能够快速找到正确答案远比记住每个方法或生命周期钩子更有价值。

这才是优秀开发者真正的技能:不是完美的记忆,而是适应能力。当你能够平静地说:“我不记得了,但我知道该怎么查”,你已经赢得了一半的战斗。

Story Time: When I Felt Dumb

我最近一次感到自己很蠢的经历发生在几天前。当时我在开发视频转换器应用,之前已经在 Node.js 项目中处理过很多文件流。我甚至经常使用流日志来跟踪应用进程并捕获随机 bug。所以这本应该是熟悉的领域,对吧?

第一个问题出在我写的文件检查上。我想确保所有文件块在流入最终文件之前都已经就绪。于是我设置了一个回退函数,最多等待 15 秒,使用 fs 检查每个文件是否存在后才继续。表面上看一切正常,文件也在正确清理,但在测试运行时我注意到有些输出文件被损坏了。我花了几个小时重写函数、调试、逐行单步执行,一遍又一遍。文件确实存在,那到底哪里出错了?

这时我恍然大悟。是的,文件存在,但我从未检查它们的大小。我的函数只要文件“在”,就会通过,即使它们是空的。于是我浪费了数小时去追踪一个零字节的问题。

第二个问题同样让我觉得自己很傻。文件检查完成后,我开始把块流入单个文件。对小的测试文件来说一切正常,但当换成大文件时,我开始看到数据丢失。后来我才记起自己没有处理缓冲区的背压(backpressure),导致流被压垮并在中途丢弃了一些数据。当我终于发现这个问题时,我笑了笑,端起咖啡,稍作休息后再去修复。

说实话,那段短暂的休息帮助比任何东西都大。它提醒我,“蠢”并不是问题所在,问题在于我们是人。有时你明明知道自己在做什么,却仍然错过最简单的细节。

Step Back to Move Forward

那次调试是一次有力的提醒:有时候修复代码的最佳方式是离开它。喝咖啡的那段时间并不是放弃,而是让大脑冷却下来,足以看清问题的本质。当你对同几行代码盯着看了好几个小时,你会停止真正阅读代码,转而看到自己期望的内容。此时就该后退一步了。

我发现,保持距离可以成为最好的调试工具。无论是散步、切换任务,还是向他人解释你的代码,这种视角的转变往往能揭示长时间盯着看也看不见的错误。我曾经整整一个下午沉浸在代码里,结果一个朋友或同事随手看看,就立刻指出了我遗漏的地方。这既让人谦卑,也让人安心。有时只需要另一双眼睛来打破隧道视野。

这不仅仅是当下的休息;回顾旧代码还能让你看到自己的成长。你会发现以前会写得不一样的地方、可以更简洁的逻辑,或者当时根本没意识到的模式。当你深陷日常问题时,往往会忘记自己的进步,而看到自己风格和理解的演变,则是对成长的极好提醒。

事实是,需要这种“重置”是完全可以接受的。编码并不意味着永无止境的高强度专注。每一次错误、每一次延迟、每一次困惑,都是大脑在为下次更好地处理问题做学习。一次短暂的休息、一次新的视角,甚至快速浏览一下旧代码,都能帮助你避免在明天会笑谈的事情上燃尽自己。

You Won’t Be Good at Everything

还有一点我花了很长时间才接受:你不可能在所有事上都很擅长,而这完全没问题。技术世界浩瀚无垠。即使你只专注于自己最喜欢的生态系统,也会有永无止境的工具、框架和库。你可能花了几个月才对 React 充满信心,却又转向 Vue,感觉自己又从零开始。

想要精通所有东西是不可能的,老实说,也没有必要。你做的项目越多,就越会意识到,成为好开发者并不是要知道一切,而是要了解自己的强项、保持好奇、保持适应性。你会自然地在某些主题、工具或技术上形成专长,这正是深度的来源——不是追逐每一个新事物,而是顺着好奇心深入。

比较陷阱很容易掉进去。我们在社交媒体上刷到别人做的酷炫项目,就会开始怀疑自己是否落后。其实并没有。每个人的大脑工作方式不同,技术之路也各不相同。重要的是你持续学习、持续实验,并允许自己暂时不知道所有答案。

Conclusion

在编码时感到自己很蠢并不意味着你是个糟糕的开发者,而是说明你是真正的开发者。每一次追踪 bug、每一次“我怎么会漏掉这个?”的时刻、每一次为记起某个用法而翻阅文档的小时——这些都是过程的一部分。这些时刻塑造了你的思考方式、调试技巧以及以后解决问题的姿态。

当你回顾旧代码时,你会发现自己已经走了多远。曾经困惑的地方现在变得清晰,曾经“够用”的糟糕逻辑现在激发出更好的想法。这种反思不是自嘲,而是对成长的庆祝。你在每一次令人沮丧的会话和深夜的 “啊哈!” 时刻中悄然提升。

所以,当你陷入那种沮丧的漩涡时,请记住:这很正常,这很人性,这正是你在学习的标志。休息一下,寻求帮助,或者仅仅离开片刻。你会以全新的视角、更加清晰的思路回来,解开更多的谜题。

Back to Blog

相关文章

阅读更多 »