AI 文摘

ChatGPT时代程序员生存指南,这四步很关键|IEEESpectrum





作者: 量子位 来源: 量子位

尚恩 发自 凹非寺

量子位 | 公众号 QbitAI

未来五年内将不会有人类程序员。

这是最近AI圈新晋嘴炮哥,Stability AI首席执行官伊玛德·莫斯塔克 又一惊人言论。

此话一出,立刻引得一众科技圈大佬吐槽,直指大错特错

ChatGPT的出现催生出一批代码生成工具,AI取代人类话题已久,但对“程序员饭碗不保”这种观点,反对之声并不少见。

最近,IEEE Spectrum发布了一篇GPT时代程序员生存指南

文章从四个方面,表述在大模型为核心的编码时代,程序员如何不被替代,并认为现在还无法做到代码100%靠AI生成,具备编程素养的人类程序员依然很重要。

接下来,就来具体看看这篇文章的主要观点。

基础是一切

尽管现在已经有很多基于AI的编码助手,可以帮助完成生成代码。

但编程的基本原则和前提仍然是理解

Python软件基金会研究员、软件公司Explosion联合创始人兼CEO伊内斯·蒙塔尼(Ines Montani)说:

AI本质上是大模型的统计输出,程序员的工作不仅仅是编写多少行的代码这么简单。

当前,程序员仍然需要具备最基础的“阅读、理解”自己和他人代码的能力。

比如,通过对代码进行分析和调试的能力,以及对问题解决和算法设计的理解,才能将所编写的代码融入到更大的系统中。

此外,事实证明,良好的软件工程实践比以前更有价值,包括规划系统设计和软件架构。

“人类编码员仍然必须弄清楚一段代码的结构、组织代码的正确抽象以及不同界面的要求”,MIT计算机科学和人工智能实验室副总监兼首席运营官Armando Solar-Lezama说道。

通过理解问题、拆解问题、设计算法以及实施和测试解决方案,人类编程人员能够提供独特的洞察力和创造性解决方案,而这些是AI无法完全取代的。

找到适合的工具

现在已经有大量工具被应用到编程领域,包括GitHub Copilot、ChatGPT、Bard等,但每个工具交互方式都有差异。

例如,GitHub Copilot和其他AI编码助手可以增强编程过程,提供代码建议。

而ChatGPT、Bard这类则更像是一个对话式AI程序员,可以用来回答关于API的问题或生成代码片段。

此前GitHub曾采访了500名开发人员,其中92%的人表示在工作和私人时间都使用AI编码工具。

AI是一个发展迅速的领域,保持开放的态度,持续尝试使用不同的AI工具。

同时,要考虑适当的使用场景。生成式AI可以为学习新的编程语言或框架提供快捷途径,也可以更快地启动小型项目并创建原型。

而想要让对话式AI程序员发挥作用,就需要清楚了解“如何与AI沟通”。

提到沟通,这就涉及提示工程

学会与AI沟通

对话式AI程序员,就像一个具备丰富知识但经验不多的实习生,需要引导。

OpenAI创始人Sam Altman就直接表示:

能够出色编写Prompt跟AI对话,是一项高级技能。

让AI从头开始编写整个程序,不仅无法最大程度发挥AI的能力,还可能获得一些不相关的回复。

这就需要将一个问题分解为多个步骤,并逐个解决每个步骤以解决整个问题的分而治之策略。

进一步拆解需求,让AI为每个任务编写特定的函数。

因此,了解AI和机器学习的基本概念,学习LLM工作原理及其优势和局限性也是很有必要的。

现在已经有很多关于“提示工程”的教程,之前DeepLearning.ai创始人吴恩达与OpenAI开发者Iza Fulford联手推出ChatGPT提示工程

另外,“ChatGPT提示工程”课程的讲师之一“Iza Fulford”,此前还编撰了OpenAI Cookbook(官方手册)。

手册讲述了大量GPT相关的使用案例,能帮助快速上手并掌握GPT模型的开发与应用。

关于模型和机器学习基础知识的内容,可以看看Jay Alammar的Illustrated Transformer

独立思考和批判思维

相关数据显示,目前GitHub平台上的所有代码,有41%都是在使用CoPilot辅助下生成的。

用大模型生成代码,效率很高,但也有一些问题。

首先,大模型会产生不准确、错误的代码。另外,也可能生成包含漏洞的代码。

此前,加拿大魁北克大学的四位研究人员就发现,ChatGPT生成的代码往往存在严重的安全问题,而且它不会主动提醒用户这些问题,只有在用户询问时才会承认自己的错误。

其次,就是隐私问题 。程序员在开发过程中输入的代码,平台是否会非法获取。

虽然现在一些代码工具公司,比如Tabnine承诺企业版会严格保密业主隐私,但这一问题仍然不能忽视。

因此,在使用由大模型生成的代码时,我们需要保持批判性思维,仔细检查和验证结果,并对其进行评估。

每一个新的技术突破和重大的范式转变都带来了一系列新的可能性,人工智能也不例外。

比如,2010年云计算的兴起,人们担心传统IT可能不再重要,但实际情况却完全不同。

事实上对云技术相关职位的需求大幅增加,如云计算专家、云架构师和云工程师等。

程序员需要将AI作为一种工具,将其纳入他们的工作流程,并认识到这些工具的机遇和局限性,同时依靠自己的编码能力来保持活力。

IEEE认为,现在就说程序员将被替代,还为时尚早。

参考链接:
[1]https://spectrum.ieee.org/ai-programming/
[2]https://www.educative.io/blog/will-ai-replace-software-developers/
[3]https://www.linkedin.com/pulse/we-asked-developers-driving-impact-age-ai-heres-what-said-github/?trk=organization_guest_main-feed-card_feed-article-content/

「AIGC+垂直领域社群」

招募中!

欢迎关注AIGC的伙伴们加入AIGC+垂直领域社群,一起学习、探索、创新AIGC!

请备注您想加入的垂直领域「教育」或「电商零售」,加入AIGC人才社群请备注「人才」&「姓名-公司-职位」。

点这里👇关注我,记得标星哦~

一键三连「分享」、「点赞」和「在看」

**科技前沿进展日日相见 ~ **

更多AI工具,参考Github-AiBard123国内AiBard123

可关注我们的公众号:每天AI新工具