最近开始在日常工作中融入人工智能。虽然大多数都是些琐碎的任务,比如增删改查(CRUD)和数据解析等。当你可以直接输入需求,然后就有人帮你完成工作时,这确实能节省大量时间。但我的工作并非全是创建CRUD,有时还需要连接不同的系统、优化某些功能、进行研究等等。
今天我在咖啡馆工作,我的邻座也在使用AI来生成代码。这很正常,我自己也用(现在流行Vibe Coding-许愿式编程嘛)。但让我忍俊不禁的是,他为了解决一个极其基础的问题,竟然反复向AI提问,直到AI给出正确答案。你知道吗?那只是一个琐碎的问题,比如在CSS中让元素居中,或者像忘记了onClick
处理器这样的低级bug。
“简直可笑,为什么不自己学学就能搞定呢?”这是我内心的独白。显然,我不想和我刚刚认识的人发生争执,也不想打击年轻、有抱负的软件工程师的热情。
AI需要更多的上下文才能给出准确的答案,你反反复复地在提示里说“它还没居中呢”,并不能让你第一次就解决问题。如果你不想理解这些部件如何协同工作,那又何必从事软件开发呢?我并不是了解所有的CSS规则,但至少我在乎,我知道其中一些是如何工作的,也知道如何修复一些bug。
这让我想起了乔纳森·布洛(Jonathan Blow)的那些谈话,我们行业的知识体系,正开始“崩溃”啊!
乔纳森·布洛的核心忧虑是:现代软件建立在层层叠叠的抽象之上,如今的开发者,尤其是新人,越来越依赖顶层的框架和工具(现在又加上了AI),却对底层原理一窍不通。他们知道“怎样”让东西跑起来,却不知道“为什么”能跑起来。
当整个行业都建立在“知其然,不知所以然”的基础上时,我们创造的系统会变得异常脆弱。就像今天这位小哥,他遇到的只是个CSS问题。但如果未来遇到的一个底层性能瓶颈或安全漏洞呢?当没有人再理解事物的本质时,我们又该如何去修复和创造真正可靠的东西?
一方面,经验丰富的软件开发人员能从AI中获益更多,AI是如虎添翼的杠杆,能将他们从重复劳动中解放出来,专注于更复杂的架构和创造;
但另一方面,新入行的程序员却可能变得一头雾水,AI成了一个“黑箱”或“许愿机”(Vibe Coding),让他们跳过了最关键的学习和试错过程,沦为只会提问的“提示工程师”
这是一个多么吊诡的世界。希望那位小哥能看到这篇文章,并明白,真正的成长,源于求知本身。
作者:Manda Putra;翻译:优普丰 AI 咨询;原文:https://mandaputtra.id/posts/how-to-not-using-ai-to-code/