警惕AI
警惕AI
2022年年底时,Chatgpt横空出世,让每个使用过它的人发出赞叹,大家都在提问各种问题,程序员可能是最早一匹去接触与尝试的群体了。大家都想看看这个小玩意儿能迸发出多大的力量,要是能帮我干活儿就好了。给我写代码!!!
但那时AI还像个小孩子,对于简单的问题能快速回答,但稍微复杂的问题,我们称之为一本正经的胡说八道的人工智障。但这并不影响我们非常看好它。再后来Github推出copilot
以及一大堆AI提示工具,你第一句代码还没写完,AI就已经提示出你下一句话可能是什么。如果不对,你可以继续写原本的代码,它会根据新增的信息再去调整与生成。这用起来很方便,目前为止你的副驾驶有一位很棒的伙伴。
再后来的cursor
,你更多的是像产品经理一样提出你的需求,它会尝试着自己去考虑所有的问题,并进行代码编写,很多简单的需求,或从零到一的小项目,几分钟后运行的结果如你想象一致,而这在过去可能会花上你半天甚至更长的时间。当然遇到大型,复杂项目它仍然会有各种问题,你知道它无法代替你,因为里面有很多内容是AI不清楚的,如架构,特定用法,DSL等等。但它已经足够棒了,如果你有足够的耐心和能力,仍然可以很好的解决问题,而这取决于你自己是否理解当前出现了什么问题。
我最近在业余时间学习Go语言,并尝试做一个命令行工具。起初我学习了Go的简单语法和基础知识,然后直接全权通过AI开始写代码,效果立杆见影。但随之而来的是代码的复杂度越来越高,而这时候的代码对我而言已经成为一个黑盒,当问题出现时,AI无法为我解决问题时,我自己也看不懂该怎么修改了。我不断的给提示信息和上下文信息,期望AI能足够聪明来解决出现的问题,但问题仍然无法解决,而这还消耗了我很多时间和成本。最终我放弃了,转而从头开始,让AI从主驾驶退回副驾驶,我需要确保我能看懂AI在写什么,并且经常性的规范代码,抽离成一个个小部分。这次情况好转了许多,当出现问题时我自己能排查出并给出解决方案。但隐隐我总觉得哪里不对,我发现在整体设计上我确实知道AI每一步在做什么,但在具体的设计实现上,大部分代码还是由AI来完成的,当需求完成时,我发现我没有学习到任何的内容,目标的实现过程对我而言是丢失了的。我开始想如果我去面试时,拿出这个作品,面试官问我具体的设计与实现,我总不能说是清楚的告诉AI,然后AI来实现吧。从目标到结果,中间这段过程可能对我们而言是更重要的,我们可能太过于依赖外部的工具。以至于我们实际的编程能力越来越低下。这让我想到学英语的过程,目前只要是在网上看到的英文内容,我的第一反应就是用AI翻译工具,这让我很省脑子,不用自己再去翻译。但我们本能不断进步的英文水平,而被不断的搁置。那假如有一份有关英文的工作机会,恐怕我也无能为力了。
这些工具本应让我变成更好的自己,但现在看来当不加限制的借用时,我们可能反而丢失最初遇到问题时,学习时的好奇与兴奋,将我们真正核心的竞争力不断地丢失掉,而如果真的到那一天,恐怕AI代替我们的时间也就到了。