AI 正在创造一代不懂编程的程序员

在这里插入图片描述

原文链接:https://nmn.gl/blog/ai-illiterate-programmers

这是一个我们正在经历而不得不面对的现象,本文值得程序员群体深思


摘要:

本文探讨了 AI 工具对程序员能力的影响及应对策略。作者通过亲身经历发现,过度依赖 AI 会导致程序员的多项基础能力衰退,包括阅读文档、调试代码、深度思考等。针对这一现象,作者提出了"无 AI 日"的实践方案,每周安排一天完全依靠自己编程,以维持核心能力。

文章指出,当前的问题不是 AI 是否会取代程序员,而是程序员是否在"取代自己"。为此,文章建议:

  1. 在尝试理解问题前不使用 AI;

  2. 认真理解 AI 提供的解决方案;

  3. 保持定期不依赖 AI 的编程练习;

  4. 关注学习模式而非仅解决当前问题。

此外,文章还提供了详细的实践指南,包括如何分级使用 AI、培养提问和验证能力、建立学习反馈循环等。核心观点是将 AI 定位为辅助工具,在提升效率的同时,持续加强对技术本质的理解和掌握。


正文:

前几天,在 ChatGPT 宕机期间,Cursor 也跟着挂了。

我盯着终端上那些让我头疼的红色报错信息,一个 AWS 的错误直勾勾地瞪着我。没有 AI 的帮助,我居然不想去解决它。

编程 12 年后,我竟然在自己的专业领域越来越差劲了。这不是在夸张——这就是当下程序员的真实写照。

1 能力的衰退

这种衰退来得很隐蔽。

首先,我不再看文档了。有 AI 能立即解释,何必费那个劲呢?

然后,我的调试能力受到了打击。没有 AI 的帮助,看到堆栈追踪就觉得无从下手。我甚至不再仔细阅读错误信息,只是复制粘贴。

我变成了一个"人肉剪贴板",仅仅是代码和 AI 之间的一个中转站。

以前,每个错误信息都能教会我一些东西。现在呢?解决方案神奇地出现了,而我什么都没学到。即时获得答案带来的多巴胺快感,取代了真正理解问题的成就感。

深层理解能力是接下来受影响的。还记得那些花好几个小时去理解某个解决方案原理的日子吗?现在,我只是简单地实执行 AI 的建议。如果不管用,就优化一下提示词,然后再问 AI。这是一个越来越依赖的恶性循环。

情绪上的变化也随之而来。以前,解决新问题是编程的乐趣所在。现在,如果 AI 五分钟内给不出解决方案,我就烦躁不安。

最可怕的是什么?我正在开发一个 AI 驱动的开发工具,但我甩不掉一个感觉:我正在助长这个侵蚀我们集体技能的问题。

2 戒断计划

我不是建议采取什么激进措施,比如完全不用 AI——这不现实。相反,我从"无 AI 日"开始:每周一天:

  • 完整阅读每条错误信息
  • 重新使用真正的调试工具
  • 从零开始写代码
  • 读源码而不是问 AI

老实说,这感觉很糟糕。我觉得自己变慢了,变笨了,还更容易急躁。

但我也能看到不同:我对代码有了更强的掌控感和主人翁意识,这些在用 AI 的过程中慢慢消失了。而且,我学到的东西多了很多。

3(不舒服的)事实

我们并没有因为 AI 变成十倍效率的开发者。

我们变成了对 AI 十倍依赖的人。这是有本质区别的。

每次让 AI 解决我们本可以自己解决的问题时,我们都在用长期的理解能力换取短期的生产力。为了今天的代码提交,我们牺牲了明天的能力。

我不是说要放弃 AI 工具——这艘船已经起航了。但我们需要一些使用规则。这是我的一些想法:

  • 在尝试理解问题之前,不要用 AI
  • 阅读并理解所有 AI 建议的解决方案
  • 定期不依赖 AI 编程
  • 专注于学习模式,而不仅仅是修复眼前的问题

说实话,我觉得我不可能一直严格遵守这些规则。但这是一个开始,而且我强烈建议所有编程新手一定要遵守这些规则。

此时此刻,在某个地方,有个新手正在学习编程。他们永远不会体会到真正靠自己解决问题的成就感。他们永远不会经历通过与 bug 搏斗数小时而获得的深刻理解。

我们正在创造一代能问 AI 正确问题但不能理解答案的开发者。每次 AI 宕机,他们就暴露出越来越无助的一面。目前,AI 还没有强大到可以完全取代程序员,但随着它的进步,情况只会变得更糟。真正的问题不是 AI 是否会取代程序员,而是我们是否在取代自己。

试试只花一天时间不用 AI 编程。结果可能会让你大吃一惊。

4 更新(2月1日)

这篇文章在开发者社区引起了强烈共鸣!我既惊喜又深感谦卑。

这里是一些有趣的数据:

  • 一周内浏览量超过125万
  • 被拥有70万订阅者的 AI 教育博主 ThePrimeagen 制作了27分钟的 YouTube 视频讲解
  • 在 Reddit 的 /r/programming 获得2500个赞,在 /r/webdev 获得1000个赞
  • 在 Hacker News 上收获100条评论

我们的行业正在发生变革,讨论这些影响很重要。

希望我的文章能让你思考。如果你喜欢,请分享给你的朋友!


以下内容我让 Claude 基于我和它对该文章的讨论整理而成,以下建议有较大参考价值,因此分享于此:

译者的思考

1 转变思维方式:把AI当作配角而非主角

想象一下编程就像做数学题:使用计算器(AI)可以帮我们快速得到结果,但关键是我们要理解解题思路。因此,在使用AI之前,建议先自己思考:

  • 这个问题的核心难点是什么?
  • 有哪些可能的解决方案?
  • 我现在卡在哪一步?

这样的预思考能帮助我们保持主动思维,而不是被动等待 AI 的答案。

2 建立分级使用策略

可以根据任务的不同性质,制定不同的AI使用策略:

第一类:基础性任务(如简单的CRUD、标准组件开发)

  • 可以直接使用 AI 加速开发
  • 但要认真阅读 AI 生成的代码,理解其中的设计模式和最佳实践
  • 定期回顾这些代码,总结共性的解决方案

第二类:学习性任务(如使用新框架、尝试新技术)

  • 先阅读官方文档,形成基本认知
  • 使用 AI 解释不理解的概念
  • 自己动手实现核心功能,遇到困难时才求助 AI
  • 要求AI解释原理,而不是直接给出解决方案

第三类:问题解决类任务(如debug、性能优化)

  • 先自己分析日志和错误信息
  • 尝试使用调试工具定位问题
  • 如果 15-30 分钟内没有进展,再求助 AI
  • 要求 AI 解释问题原因,而不是仅仅给出修复代码

3 培养与AI协作的新能力

  1. 提问能力
  • 学会拆分复杂问题
  • 提供足够的上下文信息
  • 明确表达你的疑惑点
  1. 验证能力
  • 不盲目信任 AI 的答案
  • 通过单元测试验证代码
  • 考虑边界情况和异常处理
  1. 学习迁移能力
  • 从 AI 的解答中提取通用原则
  • 总结解决问题的模式
  • 建立自己的知识体系

4 具体实践建议

  1. 设置"思考时间配额"
  • 每个问题至少独立思考 10 分钟
  • 记录自己的思考过程
  • 与 AI 的答案对比,找出差异
  1. 建立学习反馈循环
  • 每周末回顾使用 AI 解决的问题
  • 总结哪些是真正学会了的
  • 哪些还需要加强理解
  1. 保持动手实践
  • 每周选择 1-2 个小项目完全自己实现
  • 定期参与开源项目
  • 尝试写技术博客,加深理解
  1. 培养批判性思维
  • 质疑 AI 给出的方案
  • 思考是否有更好的解决方法
  • 考虑方案的可维护性和扩展性

记住,AI 是一个强大的工具,但编程的本质是解决问题的思维能力。通过正确的使用策略,我们可以既享受AI带来的效率提升,又持续提升自己的核心竞争力。

最重要的是要建立持续学习的心态:技术在不断发展,我们需要适应与AI协作的新时代,但同时保持对技术本质的追求和理解。这样才能在 AI 时代保持自己的技术竞争力。

对于如何高效利用 AI 的同时又不降低自己的能力,大家有没有其他好的方法和建议?欢迎评论区交流讨论。

如果文章对你有帮助,欢迎点赞、收藏、加关注,您的支持是我创作的最大动力。


想要学习更多 AI 经验和技巧,欢迎加入我的知识星球: AI 实战营
(知识星球号:71196788)