Gartner 是科技行业最受尊敬的分析师团体之一。其业务是定制咨询服务、会议以及发布多客户行业分析报告。
成为 Gartner 客户的费用并不便宜,估计每个席位每年 30,000 美元起。Gartner(公平地说,还有大多数其他分析团体)引起兴趣的方式是发布总结其研究报告结论的新闻稿,希望它们能被 ZDNET 等媒体报道。
由于这些新闻稿通常包含解释行业趋势的要点,因此我们经常引用它们来尝试了解行业的状况。
此外:2024 年最佳编码人工智能(以及哪些不该使用)
Gartner 带着新的新闻稿回来了。这篇文章的标题是“Gartner 表示,到 2027 年,生成式人工智能将需要 80% 的工程人员提高技能”
该新闻稿接着讨论了 Gartner 对短期、中期和长期影响的预测人工智能将对软件工程产生影响。
在本文中,我将研究 Gartner 的结论,以及我对 Gartner 在其发布的结论中的多个明显遗漏的分析。我联系 Gartner,请求有机会查看完整的报告,该公司很友善地向我提供了该报告。
此外:软件工程中的人工智能是否已达到“奥本海默时刻”?这是您需要了解的内容
完整的报告非常简短地提到了一些我认为遗漏的内容。但由于更多的人会根据新闻稿做出判断,而不是在五位数防火墙后面的完整报告,因此值得讨论 Gartner 的一些有效观察结果以及遗漏的非常重要的内容。
Gartner 的大标题是,人工智能将需要 80% 的工程人员在未来两年内提高技能。后来,在新闻稿中,Gartner 澄清说,它指的是软件工程,而不是每个工程学科。
这意味着人工智能将极大地颠覆软件工程,如果你不提高技能,你就会被淘汰。有效地拧紧了。这是真实的。但这不是什么新闻。
另外:我如何测试人工智能聊天机器人的编码能力 - 你也可以
提高技能、学习新东西并跟上技术的发展是关键任何软件工程师工作的一个方面。在本文中,我将交替使用程序员、编码员、软件工程师和开发人员等术语。虽然存在细微的差异,但就我们讨论的目的而言,它们都是适用的。
我的观点是,如果您是一名程序员,您需要不断学习。
我的观点是,如果您是一名程序员,您需要不断学习。>
作为一名软件工程师,必须提高技能并不奇怪。程序员总是需要提高技能。每一个新的操作系统版本、每一种新语言、每一个新 API、每一款新硬件的发布都需要提升技能。
此外:自 2016 年以来编程语言流行度的兴衰——以及它告诉我们的信息
人工智能也将要求工程师提高技能,但这对于维持软件工程师或开发人员的职业生涯来说并没有太大的变化。
所以,是的,当然,虽然标题是可信的,只是它对编码职业的影响并不像它似乎暗示的那样。
以下是 Gartner 如何描述人工智能的各个阶段的人工智能的影响。
我并不反对这种评估,尽管你无法真正将这三个结果与时间结合起来现在我们有了人工智能工具,将能够增强短期和长期的编码能力。
此外:ChatGPT 如何在几秒钟内扫描 17 万行代码并节省了我的工作时间
例如,符号调试器已经存在了 40 年左右,我们仍然每天使用它们,它们已经变得更好,它们可以做更多的事情,并且它们反映了工作环境的细微差别,但它们’。人工智能辅助编程就是这种情况。
“构建人工智能驱动的软件将需要新一代的软件专业人员,即人工智能工程师,”Gartner 分析师 Philip Walsh 表示。“人工智能工程师拥有软件工程、数据科学和人工智能/机器学习 (ML) 方面的独特技能组合,这些技能是备受追捧的。”
请记住,两者之间存在区别。人工智能对编码的影响。有时,程序员会使用人工智能进行编程(以使更多代码工作)。有时,开发人员会在编程中使用人工智能(以使他们正在编写的代码和解决方案更加智能)。
此外:人工智能工程是技术进步的下一个前沿:需要了解什么
Gartner 去年年底做了一项调查,向 300 名软件工程经理询问了工作角色。56% 的受访者表示,人工智能和机器学习工程师是最受欢迎的角色,将人工智能和机器学习应用于应用程序是他们的团队需要提高技能的领域。
这完全有道理。人工智能和机器学习功能有潜力为几乎所有领域的应用程序增加巨大价值。
根据 Gartner 的 Walsh 的说法,“在人工智能原生时代,软件工程师将采用“人工智能优先”的思维方式,他们主要专注于引导人工智能代理走向给定任务最相关的环境和约束。”
另外:哎呀!Microsoft Copilot 未能通过我的每一项编码测试
“AI 优先”编程的基本前提是开发人员将作业交给 AI,然后 AI 返回项目的代码。这直接类似于编程经理将任务交给团队中的开发人员,然后这些开发人员返回项目代码。
完整的报告确实提到高级开发人员可能负责组织中的代码质量检查没有自动代码审查工具。但即使在完整的报告中,这个问题也比讨论的内容要多得多。以下是 Gartner 新闻稿中的四处遗漏。
如果不对软件工程的这四个方面给予一定的重视,就无法讨论软件工程的未来。
场景很简单。您向人工智能提供提示或向编程团队提供一组指南。时间流逝(人工智能的时间减少,团队的时间增加),你会得到一大堆应该可以工作的代码。
然后你尝试一下。这不太正确。第一次运行永远不会完全正确。即使您自己编写代码,编写代码后的第一次运行也会出现错误。这是宇宙的自然法则之一。
现在,你可以告诉 ChatGPT 它给你的东西不起作用,或者给它错误消息,它会生成一个全新的代码块。但人工智能要逐步修改其工作以适应需要的内容要困难得多。
无论人工智能是文本到文本还是文本到图像,这都适用。尝试让 Midjourney 仅对图像进行所需的更改。您可以指定要处理的小区域,然后 Midjourney 会做 Midjourney 想做的事情。
另外:2024 年最流行的编程语言(以及这意味着什么)
为了能够让开发人员“将作业交给人工智能,人工智能返回项目代码”,人工智能必须能够接受批评并做出小的、有针对性的改变。
现在,每个返回的修订版都是一次完整的骰子掷骰。
可以让一个人工智能测试另一个人工智能的输出。我已经做到了这一点并取得了相当好的结果,特别是检查正则表达式的构造和执行方式。
另外:减少 ChatGPT 幻觉的 8 种方法
但是考虑到 AI 产生幻觉的程度,以及人工智能编写不起作用的代码的频率,需要在人工智能编程过程中开发测试协议和套件。
所有这些可能都需要人类做很多事情工作。在我们确定代码是好的之前,我们将无法依赖人工智能来编码。项目越大,代码越复杂,我们就越需要人类程序员和项目经理来引导整个过程。
软件远非静态。一旦发布,就需要修复错误、实施更新、调整性能等等。这些都不是人工智能可以在整个产品中完成的事情。
另外:如何使用 ChatGPT 编写代码:它擅长什么和不擅长什么
那不是说人工智能无能为力。例如,它当然可以被交给一个函数,并提示重写(注意我没有说“更新”)该函数以提供更好的性能。
当然,现在你有了一个全新的需要经过功能测试的功能。如果重写过程中出现问题,您就不能只查看修改的几行。您必须在整个代码块中找到错误。
维护您编写的代码是一项工作。维护不是您编写的代码是一项繁重的工作。当您编写代码时(无论是作为个人还是团队),您都会了解为什么代码是这样构造的、所有部分如何协同工作以及为什么做出某些决定。
当您维护其他人(人类或人工智能)编写的代码时,该代码是全新的。您首先必须解构代码的整个架构。如果你做得正确,你就会仔细记录你发现的一切。这个解构过程非常耗时——而且是在您修改或添加一行新代码之前。
我对此有一些经验。早在 2015 年,我就采用了 10 个开源 WordPress 插件。这意味着我负责维护代码、修复错误和安全缺陷,并在其中一些项目中将它们转变为更具商业功能的产品。
此外:最好的免费人工智能课程
<我不仅必须解构原始程序员如何编写代码,而且我还发现——在某些情况下——我讨厌他们的编程风格。程序员可能对编程风格、代码的编写和结构方式非常挑剔。在大多数情况下,以各种风格编写的代码都会运行,但每个程序员的大脑工作方式不同并且具有不同的吸引力编写代码的某些方式。我对代码风格特别挑剔。如果它按照我喜欢的方式编写,我的工作效率就会非常高。但如果编码风格让我烦恼,我的工作效率就会下降,而且我会变得暴躁。
另外:如何使用 ChatGPT 创建应用程序
我尝试过将 ChatGPT 从一个应用程序转换为一个应用程序将更烦人的编码风格转变为我喜欢的编码风格,尤其是 PHP 和 HTML 的混合。ChatGPT 没有成功。随着时间的推移,也许可以根据首选的编码风格仔细训练人工智能,并让它将采用的代码更新为开发人员或开发团队喜欢的风格,但我们还没有做到这一点。
作为这样,维护人工智能生成的代码不仅会比原来编写代码更加困难,还可能与良好的风格实践相冲突,使其工作起来更加烦人。
Gartner 在其新闻稿中宣传的研究报告标题为“人工智能不会取代软件工程师(事实上,可能需要更多)”。这是我完全同意的一个前提——至少在接下来的十年左右。
另外:如果你想从事人工智能职业,请从这 5 个步骤开始
正如我所言已经表明,除了使用人工智能帮助编程或使用人工智能使程序更有能力之外,在编程项目的基本逻辑方面还有很多工作要做。
毫无疑问,人工智能可以提供帮助与编程。我估计,在过去的一年里,人工智能至少为我节省了一个月的编程时间,使我能够完成在我有限的空闲时间下可能无法完成的项目。
但是人工智能帮助编写的代码写确实会中断。很多。我发现自己花费了同样多的时间来修复人工智能没有预料到的边缘情况,对人工智能的编码架构进行逆向工程,然后将代码重新投入生产。这当然与不干涉编码工作的授权相去甚远。
完整的 Gartner 报告具有启发性且经过深思熟虑。但该报告可以对我提到的领域进行更多讨论。我鼓励分析师补充他们的报告,更加注重修订、测试和持续维护。请记住,不仅仅是生成代码的过程,而是在所有这些代码行末尾添加第一组分号*之后软件项目的整个生命周期。
此外:人工智能开发研究表明,敏捷和敏捷不能很好地融合
您认为呢?AI会取代程序员还是对编程技能产生更多需求?您是否已经在不断提升技能?您认为人工智能会要求您提高一组不同的人才的技能吗?您认为人工智能有一天能够完成编程项目中必需的错误修复和维护吗?
*注意:Python 不需要分号,但 Java、JavaScript、PHP 和所有 C 语言都需要分号基于 的语言可以。
您可以在社交媒体上关注我的日常项目更新。请务必订阅我的每周更新时事通讯,并在 Twitter/X 上关注我:@DavidGewirtz、Facebook 上:Facebook.com/DavidGewirtz、Instagram 上:Instagram.com/DavidGewirtz 和 YouTube 上:YouTube.com/DavidGewirtzTV。