专栏名称: AI科技大本营
为AI领域从业者提供人工智能领域热点报道和海量重磅访谈;面向技术人员,提供AI技术领域前沿研究进展和技术成长路线;面向垂直企业,实现行业应用与技术创新的对接。全方位触及人工智能时代,连接AI技术的创造者和使用者。
目录
相关文章推荐
中国金融四十人论坛  ·  DeepSeek崛起,如何影响AI技术发展路 ... ·  昨天  
中国能建  ·  不好意思,百亿男主哪吒被拦下了...... ·  2 天前  
金融早实习  ·  留学生实习/校招群 ·  2 天前  
51好读  ›  专栏  ›  AI科技大本营

“有了 Copilot 后,程序员的编程能力正在逐渐退化!”

AI科技大本营  · 公众号  ·  · 2024-09-20 20:03

正文

随着 AI 技术的迅猛发展,诸如 GitHub Copilot 这样的编程辅助工具正逐渐渗透进开发者的日常工作中。 一方面,Copilot 凭借其强大的代码生成能力,极大地提升了开发效率,让许多程序员得以从繁琐的编码任务中解脱出来,专注于更高层次的设计与创新。 另一方面,也有声音指出,过度依赖 Copilot 可能会导致程序员的基本技能和创造性思维逐渐退化,进而影响整个行业的健康发展。

原文链接:https://www.darrenhorrocks.co.uk/why-copilot-making-programmers-worse-at-programming/

者 | Darren Horrocks 翻译 | 郑丽媛
出品 | CSDN (ID:CSDNnews)

过去几年里,诸如 GitHub Copilot 以及其他大语言模型(LLM)这类 AI 驱动工具的快速演进,都承诺将彻底改变编程方式。通过运用深度学习,这些工具能够生成代码、提供解决方案,甚至可以实时解决问题,大大节省了开发者的工作时间。

然而,尽管这些 AI 工具在大幅提高了生产力,但越来越多的人担心它们可能对程序员的编程质量和技能产生意想不到的负面影响。


核心编程技能的退化

依赖像 Copilot 这样的工具,带 来的一个最大隐患就是程序员的核心编程技能逐渐退化。在过去,学习编程意味着要亲自动手解决实际问题、进行调试,并且对代码的各个层面都有深刻的理解——从算法设计到底层实现的细节。

AI 助手虽然很有用,但也往往使得开发者跳过了这些关键步骤。例如,程序员不必深入理解算法的底层结构,也不需要学习如何编写高效的循环或递归逻辑,就可以直接采用 AI 自动生成的代码片段。长此以往,开发者可能无法在没有 AI 辅助的情况下有效解决 问题,因为他们从未完全掌握编程所需的解决问题能力和批判性思维技巧。


过度依赖自动生成的代码

使用 Copilot 这样的工具 ,开发者可以迅速生成可运行的代码,而不必完全理解其内部机制,这就会导致一种“代码依赖”的现象,即开发者过度依赖 AI 生成的解决方案,却不去检查其正确性、效率或可维护性。

自动生成的代码有一个关键问题,,就是它未必总是针对特定问题的最佳解决方案。如果程序员不对代码进行充分审查,他们可能会接受效率低下、存在漏洞或不安全的代码,这些代码在表面上看似可行,但长远来看会带来问题。这种依赖性降低了程序员对代码进行重构 甚至审查的动力,长期而言会对代码库的质量和团队生产力造成损害。


缺乏代码所有权感和责任感

AI 辅助的代码生成可能导致开发者与他们“编写”的代码脱节。手写每一行代码时,开发者会对其行为负责,无论 是功能性、安全性还是效率。相比之下,当 AI 生成了大部分代码时,开发者容易将这些责任推给 AI 助手。

缺乏所有权感可能会使开发人员变得懈怠,认为“既然是 AI 生成的,那应该是对的”。但实际上,AI 生成的代码并非无懈可击,仍可能存在错误、bug 甚至是安全隐患。最终,开发者仍需要对代 码进行审查、理解和优化,但由于 Copilot 带来的便利,这种严谨的态度可能会逐渐消失。


学习机会减少

成为一名优秀程序员的关键在于持续的学习过程。每一次遇到的 bug、每一个设计决策,以及每一个研究过的算法,都是一次学习新知识的机会。然而,Copilot 和其他大语言模型可能会缩短这个学习过程,让开发者在不深入理解的情况下就得到了答案。

当一个工具能直接给出解决方案时,开发者就不太可能自发地去寻找替代方法、尝试不同途径或全面理解不同实现之间的权衡。这种短期看来有益的便捷性,实际上减少了有助于长期技能发展的学习 经历。


创造性思维受到局限

编程不仅仅是逻辑思维的过程,更是一个充满创造力的工作。一位熟练的程序员可以从多个角度解决问题,并提出多种 解决方案,权衡各种方案的利弊。然而,AI 驱动的工具只能给出基于现有代码或模式的建议,这可能会限制开发者探索新方法或创新解决方案的空间。

虽然 Copilot 能给出“可行”的方案,但它可能会优先建议那些常见或传统的模式,而不是鼓励程序 员进行突破常规的思考。更令人担忧的是,AI 工具可能会让编程变成一种机械化的接受建议的过程,不再是一个推动创新、打破常规的创造性追求。


对专有工具的依赖

AI 驱动工具还有一个







请到「今天看啥」查看全文