前言:可能没问题——除非你在乎自我提升或对工作充满自豪感
要先明确一点,本文中提到的“使用AI生成代码”特指让AI为你写代码,而不是利用AI工具来帮助理解编程语言或库,从而提升自己写代码的能力(对于这一点,我也有不少看法)。如果你是通过编写方法名称或注释,向AI描述功能,然后让AI自动生成代码,或者依赖AI来理解你的代码库,那么这篇文章就是专门为你写的。
为什么不应该使用AI生成代码
你剥夺了自己学习的机会
在早期互联网时代,有个贬义词“脚本小子”(script kiddie),用来形容那些不理解黑客原理,只会用现成工具或脚本入侵系统的人。他们下载一个可以破解密码、访问他人电脑、篡改网站的脚本,然后自以为是了不起的黑客。
你或许认为将使用AI生成代码的开发者比作“脚本小子”有些夸张。但我不这么认为。
那些脚本小子想成为真正的黑客,但他们永远无法通过运行现成脚本达到这个目标。同样,靠AI写代码的开发者想成为“资深开发者”,但依赖AI来写代码反而阻碍了他们成长的机会。真正的资深开发者是那些自己写代码,并让这些代码成为AI训练数据的人。
不实际动手写代码,你就不会进步。就像你不下棋,就不会提高棋艺;不去打冰球,就不会成为更好的球员;你不亲自动手弹钢琴,只听妈妈的音乐专辑,也不会成为钢琴家。软件开发也是如此,如果你不写代码,技能永远不会提升。
已有的技能可能会退化
假如你已经是个有经验的程序员,觉得自己编程能力足够强,那是不是就可以让AI来做“无聊的事”呢?比如生成项目框架、写递归函数、生成模板化代码等等。
这种想法可能看似合理,毕竟资深开发者早在AI出现前就把琐碎的工作交给初级程序员去做了。但不同的是,指导初级程序员能帮助你巩固技能,而依赖AI只会让你技能退化。
在软件开发和生活中,长时间不做某件事,你就会忘记它。就像你学的第一个编程语言,可能现在连一句语法正确的代码都写不出来。停止写代码,你会变得“生疏”,忘记基础知识,连复杂问题也会变得更难处理。
你可能依赖自己的“最终替代者”
许多AI编程工具目前对学生免费开放,这并不是善心,而是希望通过让新一代开发者依赖这些工具,未来获得持续的订阅收入。AI公司瞄准了未来的开发者,希望他们成为依赖AI的“代码小子”,而非独立思考的开发者。
如今,语法高亮、代码自动补全等工具的确让我们更高效,但它们的目的是辅助我们写出更好的代码。而AI工具的终极目标是完全取代你。
使用AI生成代码的理由
你喜欢做代码审查胜过写代码
如果你热爱做代码审查而非写代码,那或许使用AI对你来说是好选择。毕竟,AI生成的代码只会让你的工作重心从编写代码转向审查代码。如果你真的享受审查他人代码的“乐趣”,那么AI或许是个不错的帮手。
你并不想成为程序员
如果你对编程没有兴趣,只是想把AI当作自由职业者来雇佣,让它帮你做游戏或应用开发,那这些意见对你不适用。你也许就是那些公司眼中的未来用户,他们期待有一天可以不需要程序员,直接用AI生成所有的应用程序。
你相信未来的“无工时代”
如果你认为AI将引领一个“无工作时代”,并且信任大公司会引导我们进入这个新时代,那你可能已经不在乎这些技术对个人技能的影响了。对于其他人来说,还是自己动手编写代码,这不仅是一种技能提升,更是一种自豪感的源泉。