程序员如何在ChatGPT世界中生存?程序员保持领先于生成式AI的技巧

程序员保持领先于生成式AI的技巧

    • 坚持基础和最佳实践
    • 找到适合您需求的工具
    • 清晰而准确的对话是关键
    • 要保持批判并了解风险
    • comments

在这里插入图片描述

   人工智能,尤其是由大型语言模型(LLM)驱动的生成式人工智能,可能会颠覆许多程序员的生计。但一些专家认为,AI不会立即取代人类程序员。
   “你会担心那些使用AI取代你的人,”坦尼什克·马修·亚伯拉罕(Tanishq Mathew Abraham)说道,他是加州大学戴维斯分校生物医学工程博士候选人,也是医学人工智能研究中心MedARC的首席执行官。
那么,软件开发者在即将到来的以LLM为中心的编码时代中如何使自己更有用、更有关联性?以下是一些在生成式人工智能世界中能够存活并取得成功的编码师的技巧和技术。

坚持基础和最佳实践

   虽然众多基于AI的编码助手可以帮助完成代码和生成代码,编程的基本原理仍然存在:具备阅读和理解自己和他人的代码的能力,并了解所编写代码如何适应更大系统。
   哈佛大学约翰·A·保尔森工程与应用科学学院人机交互和编程语言交叉学科的博士生普里扬·维斯林格姆(Priyan Vaithilingam)表示:“我相信人工智能可以大大提高软件开发人员的生产力,但软件工程远不仅仅是生成代码,还包括从引出用户需求到调试、测试等更多内容。”
   其中最重要的编程技能之一仍然是人类程序员的领域:问题解决。分析问题并找到优雅的解决方案仍然是备受推崇的编码专长。
   “这其中存在着创造性的一面,而解决问题的那些技能比实际的编程语言或工具更为重要,”Python软件基金会成员、Explosion的联合创始人兼首席执行官Ines Montani说道。Explosion是一家专注于AI和自然语言处理的开发者工具的软件公司。“不要陷入与人工智能做比较的陷阱,它只是一个大型模型的统计输出。开发者所做的工作与模型的输出有所不同——作为开发者,除了随意编写代码之外,还有更多工作。”
   此外,良好的软件工程实践比以往任何时候都更有价值。这些实践包括规划系统设计和软件架构,这为基于人工智能的工具提供了良好的上下文,以更有效地预测下一步所需的代码。
   “人类编程者仍然是那个必须找出代码结构、正确的抽象组织和不同接口要求的人,”MIT计算机科学与人工智能实验室副主任兼首席运营官Armando Solar-Lezama说道。他还领导该实验室的计算机辅助编程小组。“所有这些都是软件工程实践的核心,而且不会很快消失。”

找到适合您需求的工具

   寻找合适的基于人工智能的工具非常重要。每个工具都有自己的交互方式,并且可以以不同的方式将每个工具融入到您的开发工作流程中——无论是自动化创建单元测试、生成测试数据还是编写文档。
   例如,GitHub Copilot和其他人工智能编程助手可以增强编程,提供编码建议。另一方面,ChatGPT和Google的Bard更像是会话式的人工智能程序员,可用于回答有关API(应用程序编程接口)的问题或生成代码片段。
   关键在于实验。玩弄这个AI工具,熟悉它的工作原理,考虑其输出的质量,但要对其他工具保持开放的心态。"AI是一个快速发展的领域。你不想只停留在一个工具上然后在余生中使用它,所以你需要迅速适应新的工具,"Abraham说。
   同时考虑适当的使用案例。生成式AI工具可以快速学习新的编程语言或框架,也可以更快地启动小型项目并创建原型。

清晰而准确的对话是关键

   在使用AI编码助手时,详细说明您的需求,并将其视为一个迭代的过程。Abraham建议编写一段解释您想要的代码的注释,以便助手可以生成符合您要求的相关建议。
   对于会话式的AI程序员,您需要知道最佳的提示方式。这就是提示工程的用武之地。
   Abraham建议采用思维链提示法。这种方法是将问题分解为多个步骤,分别解决每个步骤以解决整个问题。“让模型在给定的时间内处理过多的任务可能会导致灾难。你希望它能够处理可管理的信息块并生成可管理的代码块,”他说。
   例如,不要要求一个AI程序员从头开始编写整个程序,而是考虑程序试图实现的不同任务。进一步细分这些任务,并要求模型为每个任务编写特定的函数。您可能需要与模型推理实现任务所需的步骤,进行交互式对话。
   "将其视为一个了解某个主题知识很多但经验不太丰富的聪明实习生,"Abraham说。
   提示工程的准确性和清晰性非常重要。“您需要非常清楚地告诉模型您想要什么,对您要求它做的事情非常精确,并确保您进行跟进,”Abraham说。
   了解人工智能和机器学习的基本概念,以及如何工作和它们的优缺点也很有价值。您不需要深入研究,但了解一些基本知识可以为您提供重要的结果背景。
   为了帮助您入门,Abraham推荐OpenAI Cookbook,其中包含有关提示库和工具的章节,提示指南和视频课程。Vaithilingam建议阅读Illustrated Transformer,以了解有关模型和机器学习基础知识的更多信息。

要保持批判并了解风险

   软件工程师应对大型语言模型的输出保持批判性,因为它们往往会产生虚构的、不准确或错误的代码。"当盲目使用由AI生成的代码时,很容易陷入调试的死胡同中,而微妙的错误很难发现,“Vaithilingam说。
   这就是为什么检查生成的代码至关重要,尽管这会增加一个额外的步骤,可能会对生产力造成更多伤害而非帮助。但是阿伯拉罕认为"与从头开始编写代码相比,验证代码更容易,在某些情况下,生成代码然后验证再整合到现有的代码库中是一种更快的方法”。
   值得考虑的是将这些模型的输出放入透视中,提出以下问题:这个模型是基于哪些数据进行训练的?哪些数据被过滤掉了,没有包含在训练数据中?训练数据有多老,模型是在什么版本的编程语言、软件包或库上进行训练的?这些问题的答案可能会影响结果,并提供更多相关的背景信息。
   开发人员还应当对将专有代码输入到这些模型中持谨慎态度。一些公司,比如Tabnine,提供其人工智能编码助手的企业版,同时确保了隐私,仍能学习组织的编码模式和风格。
   版权是另一个需要考虑的因素,不过当您使用这些工具完成几行代码或生成常见或琐碎任务的代码时,相比生成大块代码,版权问题就不是那么令人担心了。
   "Solar-Lezama说:"程序员们应该对他们试图做的事情有所了解,并弄清楚在他们的上下文中,在多大程度上是独特的。"如果模型产生了一段相对独创的代码,重要的是在将其放入生产代码库之前保持怀疑和怀疑。
   更大的问题是安全性,因为这些模型可能会生成包含漏洞的代码。根据Vaithilingam的说法,软件开发的最佳实践,如代码审查和强大的测试流水线,可以帮助防范这种风险。
   "Solar-Lezama说:"经验更丰富的软件工程师带来的一种意识是,代码中最常见的漏洞和代码容易受到攻击的最常见方法。"他们会对需要关注和引起警惕的事项形成一种直觉。展望未来,这些技术将成为软件工程组成部分中更为重要的部分。
   为了在生成式AI的世界中生存,程序员们将需要将AI视为一种工具,并将其整合到他们的工作流程中,同时认识到这些工具的机会和局限,仍然依赖于他们的人类编码能力来取得成功。

comments

编程甚至是编程中的困难部分吗?说真的,要真正帮助我节省时间的话,我们需要的是一种AI能够与项目中涉及的所有客户/合作伙伴进行面试,确定所需功能的范围,将其概括为一组对每个人都有意义的合理域模型,确定何时/何地需要传递消息,根据要求的性质确定持久性技术等等…
这只是我为微型精品应用程序设计后端时经历的简要形式。99% 的编程是做决策。当你最终计划好一切,代码几乎可以自动生成,但要达到那个点,需要很多背景知识。我不确定 GPT4 是否很快就会取代我的工作,甚至仅仅是增强它。如果它们只能使 VS Code 中的自动补全变得好用些,我会更开心。

代码几乎可以自动生成
我的两分钱:我做了大约15年的工程师。最近我得了脑损伤,所以最近无法全情投入到编程工作中。这就是为什么我无法全职工作。

我大约3个月前开始使用ChatGPT。起初我对它持怀疑态度,所以我开始让它解决一些有趣和奇怪的逻辑/语义难题,以“证明”它无法解决任何真正的问题(认为我们人类仍然是必需的!)。然而,我很快发现了它的能力。它确实有很多事情做不到,但是如果给出足够精细和详细的提示,我对它的能力感到惊讶。我意识到,只要给出足够好的提示,并利用我15年的积累知识,我可以得到令人惊叹的结果。我现在正在进行一个小项目,它已经写了大约70%的代码。在此过程中,我不得不进行一些修正,但我发现我可以专注于内容和更大的“宏”域逻辑,而不用纠结于(尽管有趣)的过程式编码。

能够更多地关注我想要构建的“是什么”,而不是如何构建它,对我来说无比有力和自由。我的正常构建过程现在是这样的:

  • 阐述问题及所需内容,具体明确

  • [可选] 提供你当前的工作代码,指定框架,大致文件结构

  • 确认它理解并根据需要进行澄清/更正

  • [重要] 要求它问你问题以获取澄清信息

  • 要求它概述如何解决问题

  • (对于大任务,期望全面介绍)

  • (对于小任务,期望或要求实际代码)

  • [重要] 就语言/模块/算法提出具体的请求

  • [重要] 要求它编写测试套件以证明其代码功能,并粘贴任何错误或断言失败。它会给出令人惊讶的建议。

它不能取代我的编码需求,但是天哪,它让编码变得更轻松了很多,我也在学到很多东西:)
非常有趣。我正在从过劳和其他健康问题中康复,发现它能偶尔在你所描述的方式下有所帮助。对我来说,它可以简化整个过程,降低实现任何特定任务的“强度”,尤其是在我不知道如何从头脑中解决问题时(使用哪些库/函数,如何调用它们等)。然后我可以很容易地纠正任何错误,而不必花费20分钟去搜索,阅读文档等来解决问题。
如果不介意的话,你能给出一些好的提示示例吗?你的过程看起来非常好/强大,能看到实际应用将非常酷。
另外,你是否经常使用gpt-4,还是有时可以用 3.5 ?

使用哪些库/函数,如何调用它们
是的,一样。它对可用的库有很好的了解。我倾向于向它请求一个npm模块来执行X的操作,它总是会给出几个选项,并列举出优缺点,给出/修改代码以使用它们。

你是否经常使用gpt-4,还是有时可以用 3.5 ?

啊,所以我总是使用GPT4。在我的看法中,它已经超越了其他一切。

如果不介意的话,你能给出一些好的提示示例吗?

例如,我会这样说:“展示给我一个精确的设置、编写和部署Next.js应用程序的方法,让用户能够……”。它在简单的独立应用程序中往往表现得非常出色,比如待办事项/选择颜色之类的应用程序,但是如果面对更高级的问题域,它能走得很远。例如,我刚输入了这个问题,并且它的输出给我留下了深刻的印象:“你能展示给我一个设置、编写和部署Next.js应用程序的方法,让用户通过文本输入框输入一组句子,并返回依据语义相似性进行聚类的句子集合(使用不同颜色的HSL光谱指示相似性)。”-试试看!它会给出完整的React组件、使用TensorFlow的端点,并显示如何根据权重调整HSL。我认为我只需要花大约20分钟的时间做出修改,就能让它正常工作并部署。
试试看!它会给出完整的React组件,
也许我期望更多,或者我使用的标准不同,但每次我尝试它时,它生成低质量的代码,有问题的代码,我宁愿自己写。有时候它会给出完全错误的答案。
只是不是我会提交或通过代码审查的代码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/43859.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【电商AI工具二期】智能AI赋能电商新纪元:22个必备AI电商工具助你抢占市场爆款!

注: 本文可自由转载 0. 未来百科 未来百科(https://nav.6aiq.com),是一个知名的AI产品导航网站 —— 为发现全球优质AI工具而生 。目前已 聚集全球3000优质AI工具产品 ,旨在帮助用户发现全球最好的AI工具,同时为研发AI垂直应用的…

推荐一款自动生成财务报表分析的软件

财务报表能够清晰的反映一个企业的经营状况,通过三大财务报表的资产负债表、利润表、现金流量表,能够清晰的揭示企业经营中存在的问题,也是税务局要求企业报税的必备财务报表。但是,会计手工编制财务报表,费时费力&…

【人工智能】谷歌的巴德聊天机器人向公众开放 | Google‘s Bard Chatbot Opens to the Public

https://bard.google.com/ Google is trying to balance AI progress with caution. 谷歌正试图谨慎地平衡人工智能的进展。 目录 https://bard.google.com/ 访问(需要科学

ChatGPT生成的介绍Easy发票查验软件的文案!说到我的心坎里了!

该软件是一款专为企业用户设计的发票处理工具。它拥有多种功能,包括发票图片矫正、发票识别、发票重命名、发票查验和发票打印等,可极大地提高企业的发票处理效率。 首先,该软件的发票图片矫正功能可以自动调整图片的角度和大小,确…

(转)所谓“降维打击”到底什么意思?

*本文先结合一些案例解释在商业市场等战场上“降维打击”的含义和应用原理,然后进一步讨论“降维”之说对于日常问题分析的价值,挖掘“降维”式的思维模型。读过《三体》有助于形象化理解,但本文完全不要求有《三体》知识背景。 …

升维思考,降维攻击

有时候,我们已经够努力了,却还是看不到生活有所改变的迹象,内心就像陷入了一个迷宫,迷茫而焦虑。 爱因斯坦曾说,这个层次的问题,很难靠这个层次的思考来解决。 那如果这个层次的思考失效,我们又…

google 浏览器出现 ERR_PROXY_CONNECTION_FAILED 无法访问网络

1. 问题 早上来公司突然发现谷歌浏览器访问所有的东西都出现 ERR_PROXY_CONNECTION_FAILED 网络不可用的提示 这一串的单词的意思是 代理连接失败 真的是一脸懵逼 经过一番百度后发现是网络代理作的妖… 2. 解决方法 其实很简单将 wifi 和网络里面所有的代理全部取消即可 全部…

Edge浏览器出现无法访问此页面,XXX已拒接链接,请尝试检查代理和防火墙

针对这种情况有两种办法解决: 方案一:针对部分人有效 方案二:针对所有人有效,且从根本上解决问题(如果方案二不成功,把方案一也配置一下) 情况如下图所示: www.bilibili.com 已拒绝…

chatgpt赋能python:Python代码出错怎么办?这里有几个调试技巧

Python代码出错怎么办?这里有几个调试技巧 作为Python工程师,我们经常会遇到代码出错的情况。这些错误可能会给我们带来很大的困扰,导致我们花费大量的时间和精力来修复它们。但是,幸运的是,Python提供了一些很棒的调…

chatgpt赋能python:Python编程中如何有效地改错

Python编程中如何有效地改错 作为一名有10年Python编程经验的工程师,我知道在编写代码过程中经常遇到的一个问题:运行代码时会发现错误,这时候必须找到这些错误并加以修复,才能确保代码的正常运行和结果的正确性。在本文中&#…

chatgpt赋能python:Python自动修改自身代码——优化脚本编写效率的神器

Python自动修改自身代码——优化脚本编写效率的神器 随着人工智能和机器学习等领域的飞速发展,自动化成为了当前编程领域的一大趋势。在这一趋势下,Python作为一门高效而易于学习的编程语言,成为了最受欢迎的自动化脚本编写语言之一。而Pyth…

腾讯云服务器可以干嘛?

腾讯云服务器可以干嘛?最近继阿里云降价后腾讯云也开始降价,拥有一台云服务器的成本越来越低,那么拥有一台腾讯云服务器可以干嘛?除了使用云服务器搭建网站还可以做哪些事情?腾讯云百科认为使用云服务器可以做搭建个人…

读书笔记:《人工智能》

读书笔记 摘自:《人工智能》(作者:李开复 王咏刚) 第一章 人工智能来了 人工智能已经来了,而且它就在我们身边,几乎无处不在。 人类,你好! “不管我们是碳基人类还是硅基机器人&…

为什么我们像驯化小狗那样驯化算法

原文链接 人类进化学家当中有一种理论,说的是小狗这种宠物是从野兽进化而来,因为只有那些获得了社会化智慧的犬科动物才能存活下来。几千年前狼群在人类 聚集地的周围活动,逐渐开始熟悉了人类的意图和心情。换句话说,它们的大脑开…

教程:群体演化方法分析玉米的驯化与改良

一般文章在筛选 正选择区间 时,大多 不考虑 群体的 演化历史,即不考虑 群体大小 的变化,只进行亚群之间各种群体遗传参数的对比,这可能会产生大量的假阳性。另一方面,研究一般也 不考虑 遗传信息的 迁移。所以作者希望…

教程:群体遗传学方法分析玉米的驯化与改良

本文是 Edward S Buckler、Matthew B Hufford 等人于 2012 年在 NG 上发表的 letter,作为玉米 HapMap2 的子课题。作为资源数据的说明文章,本文没有创新性的方法,内容中规中矩,使用多种群体遗传学分析手段,比较了驯化和…