quake0day
2023-08-08 04:51:37 +08:00
最近用 ChatGPT 开发了几个程序,用的都是我完全不熟悉的 Go 和 React ,边开发边学习,也想体验下未来用 AI 开发一个系统是什么感觉。在这个过程中我发现 AI 的几个问题:
1. 不擅长解决某些特定问题——如果特定的问题 AI 找不到直接的解决办法,那么 AI 就会不断重复几种可能的解决方案,然后就会陷入循环。后来这些问题都是我通过 StackOverflow 或者在网上搜寻,找到的解决办法。不过 AI 很强的一点就是我只要告诉她(复制粘贴)这个解决方案,她就会自动帮我修改好我的代码。
2. 逻辑稍复杂的系统出现 Bug 后,AI 可能会无法分析这些逻辑。这时候 AI 有能力帮你写一些代码,但是整体代码的逻辑错误还是需要你自己通读代码来解决修复。这部分说明你不能完全依赖 AI 帮你写所有代码,你还需要有能力去读懂她写的代码,并帮她分析逻辑。
总的来说,在未来的 3-6 年,我估计程序员还需要指导 AI 来干活。AI 有的时候搞不定的话还需要你去帮他思考解决。
我的个人经验是编程语法,配置环境等这部分知识是最不重要的(语法糖就像孔乙己茴字四种写法那样)。在之前的小项目里面,我可以让 AI 帮我写 Go 和 NodeJS 代码,或者我可以试着写一个有语法错误的函数,让 AI 帮我自动修复。
而重要的技能之一是**化整为零( Divide and Conquer) **的能力。现阶段很多人认为 AI 水平不行,其实显示的是那个人不具备化整为零的能力,他往往妄图让 AI 去开发设计一个大型系统,而这个是现阶段的 AI 无法完成的。
另外就是我上面提到的**自主思考并解决问题**的能力,你有没有能力在 AI 无法解决某些问题时,能够跳脱 AI 的思路,去寻找真正的答案。
最后就是**读代码并理清代码逻辑的能力**——AI 写代码水平可以,但是系统级别的逻辑 Bug 还是要人来修复。
其实上面这三个技能一直都是区别一个人是不是一个优秀程序员的关键点,现在 AI 只是让这些技能变得更重要了。