我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情
2023 年对于生成式 AI,特别是大型语言模型 (LLM) 来说是不平凡的一年。在所有关于生成式人工智能的讨论中,出现了一个熟悉的重复:“这是将取代软件开发人员的技术吗?”
从表面上看,我完全理解。如果您打开 ChatGPT 并给它提示“在打字稿中编写加法器函数”,它将忠实地生成以下代码:
function adder(a: number, b: number): number {return a + b;
}// Example usage:
const sum: number = adder(3, 5);
console.log(sum); // Output: 8
很好!但问题是:生成代码从来都不是困难的部分。
我给工作带来的价值不是生成代码。我的意思是,我想这最终是其中的一部分,但我的价值主要在于生成代码之前发生的工作:诸如需求澄清、谈判、技术设计和权衡分析之类的事情。
我觉得我带来的最好的特质之一是快速了解需求的不足之处:要么是解决方案规定不明确,要么是过于规范。在我的简单adder
示例中,模型可能应该问我诸如“需要添加多少个数字?”之类的问题。或“如果没有输入或使用无效输入怎么办?” 甚至在此之前,模型就应该了解用例以确定是否adder
真正需要某个功能。一旦确定需要某个adder
功能以及如何实现它,那么它可能必须确定如何最好地将该功能集成到大型代码库中。
现在,想象一下这些类型的需求澄清问题和技术设计考虑因素,但规模要大得多:需求通常不是编写一个adder
函数,而是编写更复杂的东西并集成到现有的复杂代码库中。
当然,这有点不公平:ChatGPT 是一个生成式 AI 模型,并不是为软件工程师而设计的。但这就是重点——尽管看到代码的生成可能令人印象深刻,但我还没有看到任何人工智能可以做这些其他事情——作为软件工程师真正困难的部分。