普通人还需要学代码吗?

25 阅读6分钟

或许AI到达“终极智能”时,普通人就不用学代码了。不过现阶段或很长的一段时间内这还是不可能的。目前AI编程还是以辅助编程为主,普通人可以借助AI实现一些简单的编程。

其实这个问题可以扩大到AI编程的出现对编程行业或程序员职业影响的问题。就这个问题我们先来看看几们大佬们的观点:

百度-李彦宏

2024《对话·开年说》系列中,百度公司创始人、董事长李彦宏在节目中表示“以后不会存在程序员这种职业了”

360-周鸿祎

在《对话》现场,360创始人兼董事长周鸿祎对李彦宏的观点提出反对意见“我不同意这个观点”。

英伟达-黄仁勋

黄仁勋认为,即便是在人工智能(AI)革命刚刚起步的今天,编程已不再是一项关键技能。

可以看到大佬们对AI与编程的影响这个问题的回答,虽然有差异,但我们不难看出AI在影响着编程这个职业或者行业。或许随着技术的发展与成熟,最终AI可以完全的代替人类。当然这个时间可能是一万年或许会更长或者更短。

之前也有读过阮一峰大佬《未来世界的幸存者》, 2018年7月发表的“技术的边界”中有写到:

“人工智能领域有一个概念,叫做“终极智能”。意思是,当机器的智能达到这种程度时,就不需要人类再做发明创造了,因为机器自己就会发明创造。”

我们来看看现阶段AI能给我们编程带来些什么?

一、专业性AI编程插件的能力

自从GPT带动全球AI热潮,AI席卷着各行各业。而在编程界也发生了巨大的变化,最出名的莫过于OpenAI与GitHub联合开发的Github Copilot。Github Copilot带动了一大堆AI编程工具的出现。

当然除了Github Copilot之外还有很多优秀的AI编程插件,我们来具体看一看:

p.s.以上的下载量与评分均只是plugins.jetbrains的marketplace数据,发布的时长也不相同,数据仅供参考。

基本AI编程工具的功能都差不多:

  • 代码补全:根据当前代码上下文自动补全代码。
  • 根据注释生成代码:根据注释描述生成相应的代码。
  • 方法和函数生成:根据方法名或函数名自动生成该方法或函数的代码。
  • 生成测试代码:生成测试代码。
  • ....

这里选择豆包MarsCode来展示AI编程插件的功能:

MarsCode 是豆包旗下的智能编程助手,提供以智能代码补全为代表的核心能力,支持主流编程语言及 IDE,能在编码过程中提供单行或整个函数的建议,同时支持在用户编码过程中提供代码解释、单测生成、问题修复、技术问答等辅助功能,提升编码效率与质量。

安装方式

JetBrains与 Visual Studio Code都可以安装,比如下面就是Visual Studio Code中编程助手的安装,在市场搜索后进行安装。

安装好后就可以看到AI功能界面

主要功能

  • 行级/函数级实时补全、注释生成代码

在编码过程中提供单行或多行的代码推荐,并支持通过注释生成代码片段,提升代码编写速度。

我只写了注释,回车后代码就自动会生成

  • 代码解释

精确解释项目代码,帮助开发人员快速熟悉项目。

生成代码注释

  • 单元测试生成

为选中函数生成单测,提升单测覆盖率,提升代码质量。

  • 智能修复

一键修改代码bug,提升代码修复效率。

当运行程序出现bug后,“AI Fix”图标会自动出现,点击后会可以通过AI生成相应的解决方案,解决方案里也会有相应的按钮半自动化的处理,非常的方便。

  • AI 智能问答

针对研发领域定向优化问答质量,提供更精准的问答结果。

1 通用性AI产品的编程能力

目前市面上能实现编程的AI产品非常多,基本上AI产品都会带编程的能力,比如chatgpt、文心一言、通义千问、豆包等

下面我们用chatgpt4o与kimi的对比,来了解通用性AI产品的编程能力

2 生成手机正则代码

  • KIMI

这里是KIMI生成的代码,

把代码贴到IDE中是可以直接执行的

  • chatgpt4o

和KIMI类似生成相应的正则代码,不过chatgpt默认会生成不同国家的手机号格式的正则

当然这只是比较简单的正则表达式。不过这种情况下就不需要我们去学习复杂的正则表达试的语法了,直接拿过来用就可以了。

再如core表达式也是类似的,比如:每周一晚上10执行一次的core表达式

就需要我们专门去学习core表达式的语法了

3 不同语言代码转换

我们现在让AI把上面的python代码转换成javascript代码

  • KIMI

  • chatgpt

这次两者是完全相同的,在IDE里也是可以执行的

4 生成PDF电子签名

让AI生成PDF电子签名的代码

  • kimi

给chatgpt以下需求:请写出itextpdf5实现pdf电子签名的代码

生成的代码直接放到IDE里还是不能直接使用的

可以看到是缺少import,kimi生成的代码中import并不完整,先把缺少的import先引入

引入后还是有多处错误

1)函数参数类型不正确

2)变量没定义

3)无对象枚举

  • chatgpt

给chatgpt相同的需求

把生成后的代码拷贝到IDE中,可以看到依赖已经下载好了,程序还是会报错

发现是import引用缺失,增加相应的import。

然后还是会发现PdfSignatureAppearance是没有WINCER_SIGNED枚举。一般来说就是引用的版本不对,说明itext生成的代码依赖与代码是不对称的。

虽然chatgpt4o生成的效果好一点,但还是不能直接使用。但大体上还是能知道实现PDF电子签名的技术实现,微调后还是可以使用。还是得完全懂代码的人才能正直使用起来。

总结

AI辅助编程给我们带来了一次变革,但目前或者很长一段时间内它的作用还是辅助的。并没有达到能代替程序员的能力。

像生成代码、代码注释、单元测试、bug自动修复等功能对编程的助力是非常大的。

我是栈江湖,如果你喜欢此文章,不要忘记点赞+关注