程序员如何在ChatGPT世界中生存?

编者按:随着ChatGPT的推出,市面上涌现出一批人工智能代码生成助手 。生成式人工智能炙手可热,已渗透到人类生活的方方面面,AI真的会取代人类程序员吗?对于程序开发人员而言,如何在在ChatGPT世界中生存发展呢?本文将分享4个小技巧,帮助人类程序员领先于生成式AI 。文章来自翻译,希望能对你有所启示 。
图片来源:由无界 AI‌ 生成
人工智能,尤其是由大型语言模型(LLM)驱动的生成式人工智能,可能会颠覆整个程序员行业 。但一些专家认为,人工智能不会取代人类程序员,至少不会立即取代 。
加州大学戴维斯分校生物医学工程博士、医疗人工智能研究中心 MedARC 首席执行官塔尼什克·马修·亚伯拉罕(Tanishq Mathew Abraham)说:“你将不得不担心那些使用人工智能取代自己的人 。”
那么,在 LLM编码时代即将到来之际,软件开发人员如何才能让自己变得更有价值、更有用呢?以下是编码员在生成式人工智能时代生存和发展的一些提示和技巧 。
坚持基本原则和最佳实践
虽然众多基于人工智能的编码助手可以帮助我们编写代码和生成代码,但学会编程的基本能力依然要具备,即需要具备阅读和分析代码的能力,以及理解所编写的代码如何适用于大型系统 。
哈佛大学约翰·A·保尔森(John a . Paulson)工程与应用科学学院从事人机交互与编程语言交叉研究的博士生普里扬·维斯林格姆(Priyan Vaithilingam)表示:“我相信人工智能可以极大地提高软件开发人员的生产力,但软件工程不仅仅是生成代码,还包括从出用户需求、调试及测试等更多内容 。”
其中最不可或缺的编程技能之一仍然是人类编码员的专长领域:问题解决 。分析问题并为其找到合适的解决方案仍然是备受推崇的编码专长技能 。
“编程有其创造性的一面,而解决问题的那些技能比实际的编程语言或工具更为重要 。不要执着于与人工智能做比较,AI或多或少只是一个大型语言模型的统计输出 。开发人员所做的与模型输出的是有区别的,作为开发人员,除了编写代码,还有更多其他的工作 。”Python/ target=_blank class=infotextkey>Python 软件基金会研究员、Explosion 公司联合创始人兼首席执行官 Ines Montani 说道 。
此外,良好的软件工程实践比以往任何时候都更有价值 。这些实践包括规划系统设计和软件架构,程序员可以利用人工智能工具更有效地预测接下来所需的代码 。
麻省理工学院计算机科学与人工智能实验室副主任兼首席运营官阿曼多·索拉·莱萨马(Armando Solar-Lezama)是该实验室计算机辅助编程小组的负责人,他谈道:“程序员必须弄清楚一段代码的数据结构、组织代码的正确抽象,以及不同界面的要求 。所有这些都是软件工程实践的核心,而且未来很长一段时间内都不会消失 。”
找到满足你需求的工具
找到合适的人工智能工具至关重要 。每种工具都有自己的交互方式,并且可以以不同的方式将每个工具融入到开发工作流程中,无论是自动创建单元测试、生成测试数据,还是编写文档 。
例如,Github Copilot 和其他人工智能编码助手可以增强我们的编程能力,为我们提供编码建议 。另一方面,ChatGPT 和谷歌的 Bard 更像是会话式人工智能程序员,可用于回答有关 API(应用程序接口)的问题或生成代码片段 。
关键在于实验 。尝试使用人工智能工具,熟悉它的工作原理,考虑其输出质量,同时也要对其他智能工具保持开放的心态 。亚伯拉罕说:“人工智能领域发展瞬息万变,你不可能永远只使用某一种工具,所以你需要快速适应新的工具 。”
此外,还要考虑适当的使用案例 。生成式人工智能工具可以帮助我们快速学习一门新的编程语言,也可以短时间内实现创建项目原型 。
清晰和精确的对话至关重要
在使用人工智能编码助手时,需要详细阐述你的需求,并将其视为一个更新迭代的过程 。亚伯拉罕建议编写一段用于解释代码的注释,这样助手就能根据注释生成符合你要求的代码 。
对于会话式人工智能程序员来说,你需要知道如何以最佳方式设置提示,这就是提示工程的作用所在 。
亚伯拉罕建议采用思维链提示法 。这种方法其实涉及到一种“分而治之”的策略,即把问题分解成多个步骤,然后逐一解决,最终解决整个问题 。“要求模型在特定时间内做太多事情反而效果不佳 。它要做的是能够处理可管理的信息块,并生成可管理的代码块 。”他说 。


推荐阅读