
1.6 我们所需的技能
如果Copilot能够编写代码、解释代码并修复里面的bug,那么我们是不是可以高枕无忧?是不是只须向Copilot下达指令,然后就可以庆祝自己的杰出成就了?
不,并非如此。虽然一些原本必备的编程技能(例如,编写正确的语法)重要性确实会减弱,但其他技能仍然非常关键。例如,你不能简单地把一个庞大任务丢给Copilot,类似“创建一款电子游戏,并确保它好玩”这种要求,Copilot将难以满足。相反,我们需要将这一庞大任务分解成Copilot能帮上忙的小任务。那么,我们怎样才能做到这一点呢?事实证明,这并非易事。这是人们在与Copilot这类工具互动时必须培养的关键技能,也是本书将要教授的主要内容。
信不信由你,有些技能在使用Copilot时会变得更为重要。测试代码一直是编写可靠代码的关键任务。我们对测试人类编写的代码有很多了解,因为我们知道该在哪里寻找常见问题。我们知道,人们在处理值的边界条件时经常会出错。例如,如果编写一个程序来处理两数相乘,通常在绝大多数情况下都能处理得很好,但当其中一个值为0时可能会出错。那么,对于AI编写的代码呢?我们可能根本猜不到在20行完美无缺的代码中竟然隐藏着一行荒唐的代码。我们对处理这种情况没有经验,因此需要比以前更加仔细地进行测试。
最后,还有一些技能是全新的。其中最关键的一项称为“提示工程”,这涉及如何准确告诉Copilot需要它做什么。当要求Copilot编写代码时,我们通过一段“提示词”来提出这一请求。虽然我们可以用自然语言来编写提示词并表达需求,但仅仅这样做是不足够的。如果我们希望Copilot尽可能正确地执行任务,就需要极为精确地表达需求。即使表达已经足够精确,Copilot还是有可能犯错。在这种情况下,我们首先需要确认Copilot确实出现了错误,然后调整自己的描述,希望能将其引导至正确的方向。根据我们的经验,即使是看似微不足道的提示词变动,也可能会对Copilot生成的结果产生极大的影响。
在本书中,我们将传授所有这些必备技能。