使用 ChatGPT 来改进Coding的 3 种有效方法

可以说最近几个月我一直在使用ChatGPT来辅助编程。我可以诚实地说,虽然说ChatGPT并不是万能和完全正确的,但其确实更快速的(相比于传统的浏览器)帮我提供解决方案,以及帮我实现代码。

我编写代码的方式已经永远改变了,我认为变得更好了,对于任何未知的问题,心里更有底了。

Bug的解决效率也提高了,我花在调试上的时间也大大减少了,与以前的编码过程相比,我每周可能节省 5 个小时

那么,我的编码过程是如何变得更加强大的呢?主要有以下三种方式。

第一:冷启动问题

之前编码或要么是从0开始,要么是需要花很多时间找参考代码进行改进。而现在我的工作方式不再受冷启动问题的困扰,我几乎总是可以从模板或一些样板代码开始,而不是从头开始生成代码。

假设我想写一个DLRM模型的Demo进行测试与学习。现在我可以让 ChatGPT 生成此样板代码,然后根据我的特定参数配置调整它。如果我自己从0开始编写这段代码可能需要大约 40 分钟,但使用 ChatGPT 我只需 3 分钟即可完成。

当出现冷启动问题时你就会很没有动力。因为你知道你必须承担一项非常艰巨的任务,而迈出第一步有点困难,而且可怕。

一个很好的例子是马拉松。如果您知道自己必须跑 26.2 英里,那么即使迈出第一步,您也可能会犹豫不决,因为整个挑战似乎太大了,而且您预计会经历很多痛苦和挣扎。

对我来说,有时看着一本空白的笔记本会给我同样的感觉。我知道在我的项目开始成形之前我还有很多工作要做。

在过去解决这个问题的方法是从另一个项目复制一些您自己的代码并将其用作起点进行开始。而现在你完全可以交个ChatGPT,而且你可以让他帮你优化你项目的组织结构。

老实说,ChatGPT 将代码输出到屏幕的方式让我感觉像是我正在编写它,这让我有更多的时间去做优化改进的工作。在我看来,这确实给了我很好的动力。我可以从 ChatGPT 停下来的地方继续,并且可以非常快速地对项目对代码做出很多改变。

第二:对话式编码

您是否曾经确切地知道自己想要做什么,但不一定知道如何将其实现或嵌入到已有的代码中?

ChatGPT 正在为我解决这个问题,而且解决的很好。我将一些随机乱码扔进ChatGPT,它可以将其改正并组织转换为代码。

我称之为“对话式编码”,这可能是我的整体编码过程发生变化的最大方式。

以前,我必须根据一个想法在互联网上搜索合理的代码片段。然后根据我的用例将其剥离,嵌入到项目中,最后再需要对其进行调试。

现在,我说出我想要创建的内容和想法,并看看 ChatGPT生成的结果有多接近。如果代码有问题,我可以告诉 ChatGPT,它会进行更正。

例如,假设我想创建一个将两个数字相加的函数。我知道这大家都理解,但让我们假设我对此不熟悉。

ChatGPT 生成此代码后,我可以要求它重写相同的函数以添加数字列表或创建作为参数输入的两个列表的总和。它可以随着我提供的反馈而不断发展改造。

我发现我的思考速度比编码速度快得多。当我能够与ChatGPT就我的代码进行对话时,我发现我可以更纯粹地锻炼我的批判性思维能力,并且我不受将自己的想法转化为代码的速度的限制。

这也有助于我不打破我批判性思维的思路;我不会在思考问题和编码之间循环。

我们来比较一下这两个过程:

我曾经做过这些思考代码重复。现在,我想,我用 ChatGPT 聊天,实施,然后重复。这些迭代循环更短。

第三:ChatGPT 就像一个函数

让我们来谈谈函数,这是最基本的编程概念之一。整个想法是,您只需编写一次代码(并且写得很好),因此您不必再次重复它。

我们的工作中可能需要做很多迭代明确但意义不是很大的事情,例如将代码风格统一,甚至可以帮你做小数据文本的统计处理。

我们可以像使用函数一样使用ChatGPT。例如,我写了个简单的SVM Demo。我没有为不同的模型重写所有相同的代码,甚至复制代码并替换所有变量名称,而是让 ChatGPT 为我做这件事。

我将代码粘贴到 ChatGPT 中,并要求它以相同的风格编写代码,但针对决策树、随机森林和 XGBoost。这效果好得令人难以置信!它甚至为我正确替换了所有变量名称,这是我没想到的。

更好的是,我可以要求它将所有这些代码放入一个函数中,该函数将模型作为参数并输出相关的模型指标。

虽然对话式编码可能是我的流程中最大的变化,但这种“功能”是迄今为止最大的节省时间的。

总结

此外,我确实认为 GPT-4 是编码用例模型性能的巨大飞跃,它在对话式编码和代码功能化上面有很大的提升。相比于之前的GPT-3.5,在讨论进行对话式编码和代码功能化上显得非常笨拙。

尽管如此,它也并非没有缺陷。该模型仍然会产生幻觉,在大约 20% 的时间内提供错误信息。这意味着当我们通过 ChatGPT 运行代码时,我们仍然需要检查代码是否有 bug 和错误。

这并不全是阳光、彩虹和完美的代码。还有一些其他缺点需要考虑。通过依赖人工智能生成的代码,我们可能会失去一些使我们的工作独一无二的个人风格和人类创造力。



如果觉得这篇文章对你有所帮助,
请点一下或者,是对我的肯定和支持~


请使用浏览器的分享功能分享到微信等