最终成效如何?一方面取决于你所从事的编程领域特性(越独立、越易于通过文本描述的场景效果越好,系统编程尤其适配),另一方面则取决于你能否构建清晰的问题认知,并准确传达给大语言模型
但总体而言,一个显而易见的事实是:对于大多数项目,除非是为了享受编程的乐趣,否则亲自手写代码已不再是明智之选。
我热爱一行行地编写软件。可以说,我的职业生涯就是一场持之以恒的努力 —— 力求打造出代码精良、简洁凝练,且始终以人文关怀为核心特质的软件。我同样憧憬这样一个社会:不会遗忘那些处于弱势的群体。此外,我并不希望人工智能在经济层面一家独大,也毫不在意当下的经济体系是否会被颠覆(说实话,如果能朝着大规模财富再分配的方向发展,我甚至会由衷感到高兴)。但如果我对软件与社会的构想,会背离自己的初心与愿景,那便是对自我与自身智慧的不尊重:事实就是事实,人工智能必将彻底改变编程的未来。
2020 年,我辞去工作,着手创作一部关于人工智能、全民基本收入,以及人类社会如何应对自动化浪潮挑战的小说。2024 年末,我开设了一个 YouTube 频道,专注探讨人工智能、其在编程工作中的应用,以及可能引发的社会与经济变革。尽管我很早就预见了这一切的到来,却曾以为编程领域被彻底重塑还需要不少时间,至少得再等几年。但现在,我不再这么认为了。如今,顶尖的大语言模型(LLM)只要得到清晰的目标指引,就能在几乎无需人工协助的情况下,独立完成大型子任务乃至中等规模的项目。最终成效如何,一方面取决于你所从事的编程领域特性(越独立、越易于通过文本描述的场景效果越好,系统编程尤其适配),另一方面则取决于你能否构建清晰的问题认知,并准确传达给大语言模型。但总体而言,一个显而易见的事实是:对于大多数项目,除非是为了享受编程的乐趣,否则亲自手写代码已不再是明智之选。
就在上周,我仅通过编写提示词、偶尔检查代码并给出指导,就在短短几小时内完成了四项原本需要数周才能搞定的任务:
  1. 我改造了自己的linenoise库,使其支持 UTF-8 编码,并搭建了一个行编辑测试框架。该框架基于模拟终端实现,能够精准反馈每个字符单元格的显示内容。这是我长久以来一直想做的事,但此前总觉得,为了测试一个副业项目而投入大量精力,实在得不偿失。可如今,只要你能清晰描述想法,代码就能应声落地,一切都截然不同了。
  2. 我修复了 Redis 测试中存在的瞬时故障问题。这类工作向来令人头疼,满是时序相关的漏洞、TCP 死锁等棘手状况。而 Claude Code(一款 AI 编程工具)则不厌其烦地反复尝试复现问题,深入分析进程状态以定位根源,最终成功修复了所有漏洞。
  3. 昨天,我需要一个纯 C 语言编写的库,用于实现类 BERT 模型的嵌入层推理功能。Claude Code 仅用 5 分钟就完成了开发,生成的 700 行代码不仅输出结果与 PyTorch 完全一致,运行速度也仅慢 15%,同时还配套提供了一个用于转换 GTE-small 模型的 Python 工具。
  4. 过去几周,我对 Redis Streams 的内部实现做了不少修改,并且为此撰写了详细的设计文档。我试着将这份文档交给 Claude Code,它居然在 20 分钟内就复现了我的全部工作(耗时主要是因为我在审核和授权执行命令时比较慢)。
人工智能正在彻底改变编程行业,这一现实已经昭然若揭,无可回避。在绝大多数场景下,手写代码已不再是必需环节。如今,更重要的能力是明确要做什么、以及如何去做—— 而在后者上,大语言模型同样是绝佳的合作伙伴。无论人工智能企业能否盈利,无论股市是否会崩盘,从长远来看,这些都无关紧要。就算那些独角兽公司的 CEO 们说出再离谱、再令人反感的话,也改变不了编程行业已被永久改变的事实。
对于我写的代码被大语言模型收录学习这件事,我是什么感受?我感到由衷的自豪。因为这恰恰延续了我毕生追求的目标:让代码、系统与知识变得大众化、民主化。大语言模型将帮助我们更快地开发出更优质的软件,让小团队也有机会与巨头企业同台竞争 —— 这就如同上世纪 90 年代开源软件运动所带来的变革一样。
然而,这项技术的重要性远超想象,绝不能任由少数几家公司垄断。目前来看,尽管不同企业在预训练和强化学习的技术水平上存在差异,但开源模型(尤其是中国研发的开源模型)正不断追赶闭源实验室的前沿模型,虽仍有差距,却具备强劲的竞争力。到目前为止,人工智能领域的民主化程度尚可,尽管还不尽完善。但这种局面能否长久维持,却是一个巨大的未知数。我对技术垄断的趋势深感忧虑。但与此同时,我也相信,规模化的神经网络确实蕴藏着创造奇迹的潜力,而当前顶尖人工智能技术并不存在什么不可逾越的 “独门秘籍”—— 否则,我们很难解释为何多年来 OpenAI、Anthropic 和谷歌这几家公司的技术水平始终旗鼓相当。
作为一名程序员,现在的我比以往任何时候都更渴望投身开源事业。我想重新拾起那些因时间有限而被搁置的代码仓库,对其进行优化完善;我想将人工智能技术融入 Redis 的开发流程中,进一步改进向量集合(Vector Sets)的实现,就像我现在对 Streams 模块所做的那样。
但我也为那些可能因此失业的同行们感到担忧。未来的行业格局充满变数:企业会选择扩招人手、加速推进更多项目?还是会为削减人力成本,精简团队,只留下那些精通提示词编写的程序员?更令人忧心的是,除了编程领域,其他许多行业的岗位也可能面临被人工智能完全取代的风险。
那么,社会层面的解决方案究竟在哪里?毕竟,技术创新的浪潮一旦涌起,就绝无回头之路。我认为,我们应当投票支持那些能正视技术变革、并愿意为失业群体提供保障的政府。而且,失业人数越多,民众要求政府出台保护政策的政治压力就会越大。但同时,我也期待人工智能能带来积极的改变:推动科学实现新的突破,减轻人类生活中不可避免的苦难。
话又说回来,还是回归编程本身吧。朋友,我想给你一个建议:无论你认为 “正确的道路” 应该是什么样子,一味抗拒当下正在发生的变革,终究无法掌控未来。拒绝接纳人工智能,对你和你的职业生涯都毫无益处。不妨认真思考一下,花上几周时间去深入测试这些新工具,而不是仅仅通过五分钟的试用就固步自封、强化自己的偏见。试着找到与人工智能协作、放大自身能力的方式;即便当下效果不佳,也请每隔几个月就重新尝试一次。
或许你会觉得,自己曾为学习编程付出了无数心血,可如今这些努力仿佛都被机器轻易取代。但请回想一下,当年你为了让项目成功运行而熬夜敲代码时,内心燃烧的那份热情究竟源于什么?是创造的乐趣。而现在,只要你能掌握与人工智能高效协作的方法,就能创造出更多、更棒的作品 —— 那份创造的乐趣,从未改变。

 

分类&标签