以Cursor为代表的AI编程助手,正在以前所未有的深度和广度渗透到软件开发领域,引发了源于程序员对未来角色、技能要求乃至生存模式的深刻思考。
我本人也是一个AI IDE的深度使用者,在工作之中有域内的CodeFuse IDE,在域外有Cursor。不知不觉,AI已经占据将近40%以上的代码编写量。
从第一天使用AI IDE,感觉其就是纯正的智商税、“人工智障”,到现在的“真香”,说白了就是一种磨合,是人与人工智能的磨合。
只有深度使用后,才会深刻理解“AI不是一次革命,而是每次革命”的含义,也因此有了本文对人文及社会影响的思考。
问题1:AI的出现对程序员的要求是高了还是低了?
我个人认为:对底层基础的要求降低了,但对顶层的能力要求显著提高了。
”门槛“变低了:过去我刚开始学Java、Spring、C++等语言的时候,常常会因为一个分号、一些语法细节的原因导致半天甚至一天的时间都在排查。过去要求程序员需要有足够的基础能力,如牢记大量语法细节、API用法和算法范式。
但如今,自动补全、快速生成、代码修正等功能,可以帮助开发者快速产出“看起来还不错”的代码,甚至能够简单完成过去资深工程师才能完成的任务。可以想象,未来会涌现一大批“独立开发者”,达到人人都可以写代码,人人都写得起代码。
“天花板”变高了:然而,真正决定一个程序员价值的,不再是“我代码写的贼6”,而是更高维度的技能:
需求拆解与精准分析的能力:正如我上一篇文章所写的语言的二义性一样,如何将一个复杂的业务需求,转化为清晰、无歧义、可让AI理解的指令(Prompt Engineering),是发挥AI效能的关键。这要求开发者具备深刻的业务理解和逻辑拆解能力。
代码鉴赏与审核能力:也就是Code Review的能力。AI生成的代码不可避免的会存在隐藏的Bug,安全漏洞,或者为了查询一个字段而给你重复建立了数个线程池的问题(效率问题)。所以要求现代的程序员要有极强的“代码品味”和深厚的技术功底,能够做到“瞟一眼”就知道那里有问题或者哪里今后会有问题。这就要求要有足够的经验储备,有足够的理论知识,才能快速甄别优劣,进行有效的审核、重构和优化。
系统级的架构设计能力:AI擅长处理局部、具体的编码任务,但在宏观的系统设计、架构选型、技术决策等方面依然依赖人类的经验和远见。开发者需要从“代码工人”转变为“架构师”和“设计师”。
创造并解决问题的能力:发现并创造问题,其实也是必不可少的能力。真正有价值的工作,是解决那些没有现成答案的、充满不确定性的复杂问题。AI可以作为强大的武器,但如何使用这件武器,甚至在没有明确指令的情况下创造性地解决问题,这正是顶尖人才的核心价值。
简而言之,AI工具让“合格”程序员的门槛降低了,但让”优秀“程序员的标准变得更高、也更复杂。
问题2:会不会让人变懒
会,我现在已经很懒了。我认为短期内,存在让人变懒和技能退化的风险,但长期来看,它将迫使开发者“向上”进化。
对AI工具的过度依赖,确实可能导致部分开发者疏于对基础知识的学习和巩固,形成“黑箱思维”,即“知其然,而不知其所以然”。当AI出现错误或无法胜任时,这些开发者可能会束手无策。这就像习惯于使用计算器而忘记了基本心算能力。
然而,从另一个角度看,这种“懒”也是技术进步的必然结果。我们不再需要手动管理内存,因为有了垃圾回收机制;我们不再需要写大量的模板代码,因为有了各种框架。AI的出现,同样是将开发者从重复、繁琐的“体力劳动”中解放出来,让他们能更专注于“脑力劳动”,即前文提到的系统设计、创造性思考等高阶任务。
一个明智的开发者会把AI当作“副驾驶”或“领航员”,而不是“自动驾驶系统”。他们会利用AI提升效率,同时保持批判性思维,持续学习,确保自己始终掌握着“方向盘”。
问题3:是不是会取代人
AI不会完全取代“程序员”这个职业,但是会淘汰掉只会写代码的“编码员”。
机械革命用机器代替了重复繁琐的人工,叫做劳动力的释放。纯粹的、机械化的代码编写工作,其价值正在被AI迅速稀释。如果一个人做的工作可以被清晰的描述为一系列的编码任务,那么就很可能被AI取代。AI擅长做简单的、重复的任务,并且还能把这些任务做的很好。
然而,软件开发的核心远不止编码。我常常挂在嘴边的一句话就是**“Coding的尽头是浪漫”**,它是一个包含需求沟通、系统设计、团队协作、项目管理、问题纠错、创新探索的复杂过程。能够打通这些复杂的环节,看着“万丈高楼拔地而起”,一直都是我追求的的最终“浪漫”。这个过程中,许多地方都充满了人类的不可替代性:
权衡与取舍(Trade-offs): 在性能、成本、可维护性等多个维度之间做出最优决策。
责任与担当: 对最终产品的质量、安全和伦理问题负责。
创新与远见: 预见技术趋势,提出具有前瞻性的解决方案。
目前来看,这些恰恰是AI的短板。所以我大胆约一下,未来的趋势更可能是人机协作。AI成为程序员强大的辅助工具,帮助其落地自己的Idea,而非取代其本身。程序员将会从“演奏家”变为“指挥者”和“编导”。
面对如此强力的冲击,我庆幸我还年轻和清醒,可以感受到这股浪潮,及时做出改变。Keep Thinking & Do one thing and do it well。
最后,我仍想强调一下我的心得和信条:
告诉AI Need,不要告诉AI Think。
永远不要相信AI写的内容,是你主导AI,不是AI主导你。