从小黄鸭到 AI 助手:程序员的新时代调试秘诀
今天在调试一个麻烦的 Bug,主要是代码不是我写的,要搞清楚原始代码的思路并找出问题来有点吃力,于是将相关代码都扔给 o1 preview,并尝试描述我的问题。前面几轮 o1 没能很好的理解我的意思,经过几轮修改后很快它能抓住重点,指出了潜在问题,基于它指出的可能问题,我后续更新了一些信息,马上它给出了一个修改方案,测试后居然解决了!
其实在和它互动过程中,通过向它描述问题,以及它给我指出的可能问题,我已经快接近解决方案了,即使它没能给出方案,也已经帮我理清楚了代码的结构。这让我想起著名的“小黄鸭调试法”(Rubber Duck Debugging)。
很多程序员的桌上可能都曾经摆着一只小黄鸭,看起来不过就是那种普普通通的橡皮玩具。在代码的迷宫中走得太深时,你向它解释每一行代码的来龙去脉。神奇的是,往往在表达的过程中,问题的答案就浮出水面了。这就是著名的"小黄鸭调试法"。
现在到了 AI 时代,AI 就是程序员们升级版的“小黄鸭”,不仅能耐心的听你解释代码,它还会思考,会提问,会给出建议。就像金庸小说里面的扫地老僧,当你正在苦恼一个棘手的并发问题时,它会适时地问:"你考虑过死锁的情况吗?"当你在纠结代码结构时,它会建议:"这里如果用观察者模式,是不是会更优雅一些?"
但这种转变不是自动获得的,需要主动开启,也就是你得改变既有的思维方式。以前对着小黄鸭,可以天马行空地自言自语。但要和 AI 助手高效对话,需要学会更清晰地表达。就像和一位远程工作的同事沟通,你得把问题的来龙去脉交代清楚,否则对方可能无法给出有效的建议。
像 Cursor、GitHub Copilot 这样 AI 编程助手/工具的逐步普及,也在一点点的改变了我们编程的习惯。比如以前要实现一段程序,我会脑子构思好,然后动手编码,埋头于代码细节中,而现在是想该如何描述清楚这个问题,让 AI 帮我们实现编码细节,帮助改 Bug,有点像时时刻刻和一个工程师在结对编程。
这样做的好处是可以从繁琐的编码细节中解放出来,甚至有时候能给出不同的思路和更好的方案。但还不能完全做到替代,很多时候 AI 并不能给出靠谱的建议,还是要人去甄别结果的好坏,去拆分、给出更具体指令,仍然离不开编程的基础知识,离不开自己的独立和系统的思考。
在 AI 时代,优秀的程序员不一定是代码写得最快的,而是善于提出正确问题的人。就像一个优秀的侦探,知道该问什么问题,该往哪个方向深入调查。 AI 助手则是我们的华生、会说话的小黄鸭,帮助我们理清思路,验证假设,但最终的决策仍然在于我们自己。
如果你的桌上还摆着那只橡皮小黄鸭,不妨试试这个会说话的新伙伴,毕竟未来属于那些既懂技术、又善于驾驭 AI 的程序员。而要驾驭 AI,最好的办法就是保持好奇心和开放的心态,每天去实践和应用 AI。
本文同步发表于:网页链接
相关阅读:《像用实习生一样用 AI 辅助你编程》网页链接
今天在调试一个麻烦的 Bug,主要是代码不是我写的,要搞清楚原始代码的思路并找出问题来有点吃力,于是将相关代码都扔给 o1 preview,并尝试描述我的问题。前面几轮 o1 没能很好的理解我的意思,经过几轮修改后很快它能抓住重点,指出了潜在问题,基于它指出的可能问题,我后续更新了一些信息,马上它给出了一个修改方案,测试后居然解决了!
其实在和它互动过程中,通过向它描述问题,以及它给我指出的可能问题,我已经快接近解决方案了,即使它没能给出方案,也已经帮我理清楚了代码的结构。这让我想起著名的“小黄鸭调试法”(Rubber Duck Debugging)。
很多程序员的桌上可能都曾经摆着一只小黄鸭,看起来不过就是那种普普通通的橡皮玩具。在代码的迷宫中走得太深时,你向它解释每一行代码的来龙去脉。神奇的是,往往在表达的过程中,问题的答案就浮出水面了。这就是著名的"小黄鸭调试法"。
现在到了 AI 时代,AI 就是程序员们升级版的“小黄鸭”,不仅能耐心的听你解释代码,它还会思考,会提问,会给出建议。就像金庸小说里面的扫地老僧,当你正在苦恼一个棘手的并发问题时,它会适时地问:"你考虑过死锁的情况吗?"当你在纠结代码结构时,它会建议:"这里如果用观察者模式,是不是会更优雅一些?"
但这种转变不是自动获得的,需要主动开启,也就是你得改变既有的思维方式。以前对着小黄鸭,可以天马行空地自言自语。但要和 AI 助手高效对话,需要学会更清晰地表达。就像和一位远程工作的同事沟通,你得把问题的来龙去脉交代清楚,否则对方可能无法给出有效的建议。
像 Cursor、GitHub Copilot 这样 AI 编程助手/工具的逐步普及,也在一点点的改变了我们编程的习惯。比如以前要实现一段程序,我会脑子构思好,然后动手编码,埋头于代码细节中,而现在是想该如何描述清楚这个问题,让 AI 帮我们实现编码细节,帮助改 Bug,有点像时时刻刻和一个工程师在结对编程。
这样做的好处是可以从繁琐的编码细节中解放出来,甚至有时候能给出不同的思路和更好的方案。但还不能完全做到替代,很多时候 AI 并不能给出靠谱的建议,还是要人去甄别结果的好坏,去拆分、给出更具体指令,仍然离不开编程的基础知识,离不开自己的独立和系统的思考。
在 AI 时代,优秀的程序员不一定是代码写得最快的,而是善于提出正确问题的人。就像一个优秀的侦探,知道该问什么问题,该往哪个方向深入调查。 AI 助手则是我们的华生、会说话的小黄鸭,帮助我们理清思路,验证假设,但最终的决策仍然在于我们自己。
如果你的桌上还摆着那只橡皮小黄鸭,不妨试试这个会说话的新伙伴,毕竟未来属于那些既懂技术、又善于驾驭 AI 的程序员。而要驾驭 AI,最好的办法就是保持好奇心和开放的心态,每天去实践和应用 AI。
本文同步发表于:网页链接
相关阅读:《像用实习生一样用 AI 辅助你编程》网页链接