1 引子

最近使用辅助编程比较频繁,也在思考:

  • 它的出现对程序员来说是利大于弊还是弊大于利。
  • 对非程序员来说,有了辅助编程是否就能达到程序员的水平?
  • 目前,辅助编程还不能解决哪些问题呢?

1.1 使用场景

1.1.1 程序员角度

先从程序员的角度看看。

在熟悉的情境下,当我们面对熟悉的问题时,可能会需要编写大量逻辑代码。在这种情况下,机器可以帮助我们自动生成部分代码,从而加速开发过程。

对于不熟悉的架构和语法,机器辅助变成能够生成整体示例和语法正确的代码,从而避免因为语法错误而浪费时间;帮助理解和快速上手,并且更容易理解系统的工作原理。

在调试过程中,对于一些简单的问题,机器可以提供快速的反馈和解决方案,从而节省我们的时间;对于复杂问题可能无法直接解决,但可以提供一些建议思路,来减少查找和定位的过程。公平地说,与之前手动查找问题相比,提效很多。

辅助编程也有一些问题,如多端联调比较困难;如果一些小众工具没有提供文档,辅助编程工具也不知道如何使用。虽然理论上可以通过 Agent 和 RAG 来解决这些问题,但实际实现起来比较麻烦。

1.1.2 非程序员角度

再从非程序员的角度看看,一些朋友在看了我的文章之后,按照我推荐的方式安装 Obsidian 插件,但遇到了一些环境问题,无法解决。如果是我的环境,我会进行调试,但对于普通人,这个环境确实很难搭建。

所以,我觉得短时间内,拥有工具并不会把程序员的门槛降得太低。但是对于参与三角猫的程序员或跨领域的编程来说,会有很大改善。

2 辅助编程对程序员的影响

辅助编程对程序员来说,得到的更多还是失去的更多?每个人有不同的特质,变革确实会对某些人更友好,可能会造成更大的两级分化。

这半年软件行业裁员频繁,不用多说。当复杂的问题变得简单,就不再需要那么多人,也不再需要太多资深的程序员。因此,大多数中游水平的程序员可能会受到影响。无论如何,当我们积攒多年的优势消失殆尽时,难受是肯定的。

然而,作为个体,如果善于利用工具,能力也能大幅提升。全栈开发不再是梦,原来需要 100 个人完成的任务,现在 10 个人就能搞定。

可以说,模型是对生产力水平的提升,不仅限于程序开发,文字和艺术创作也是如此。

3 如何自处

  • 不锁死在细节里,不把自己变成一个螺丝钉
  • 拥抱新技术,永远不忘将新东西应用到工作中
  • 拥有较强的底层知识网络,在更长更宽的维度中思考
  • 拥有自己的判断力,创造满足感和幸福感,不被欲望和环境裹挟