借助 AI 学习编程,最重要的是打通学习和反馈的循环

为什么绝大部分的编程教材,都是从 Hello World 开始?因为通过让你动手去打印一个 Hello World

  • 验证环境搭建:通过运行最简单的程序,确保编程环境已经正确配置

  • 建立信心:完成第一个可以运行的程序给你带来成就感

  • 理解基本概念:包含了程序的基本要素(如输出语句)

虽然这只是一个简单的开始,但实际上它有助于你打通编程学习的循环:

理解概念 → 动手实践 → 遇到问题 → 解决问题 → 加深理解

这也是为什么编程要动手实践,因为你不动手就不会遇到问题,不遇到问题就不知道如何去解决问题,也无法真正理解编程知识。

但是如果你遇到的问题总是无法解决,也一样无法提升。

所以对于初学者来说,最好有个导师,遇到自己解决不了的问题的时候帮助指明方向。我初学编程的时候,在学校的网络中心兼职,有高年级的师兄带着,遇到问题可以随时请教,所以进步很快。再后来虽然师兄们毕业了,但是学会了在 CSDN 这样的论坛发帖子提问解决问题(那时候的 CSDN 还是很好的),再后来学会了自己通过搜索引擎解决问题。

现在 AI 的编程能力已经很不错了,在很多方面都可以胜任好导师的角色,只要你肯学习,善于提问。

如果你想借助 AI 学习编程,我的建议是这样的:

  1. 使用最流行的语言和框架,这样 AI 训练的预料最多,生成效果最好

  2. 先能运行再优化,即使是用 AI 也不要想着一口吃成个胖子,先跑起来,能看到效果很重要

  3. 做中学,先生成可运行代码,再让 AI 解释代码中不明白的地方

  4. 遇到错误的三板斧:复现、精确描述、回滚

逐条展开解释一下

一、使用最流行的语言和框架

这个不是必须的,但是遵守的话会更好,比如你做前端,CSS 选 TailwindCSS 最简单,如果框架选 React 的话,那么 UI 就选 Shadcn UI 最方便,语言 TypeScript、Nextjs 框架。

一个 AI 生成的时候会质量更高,另一个遇到问题网上的资源也多,AI 能帮你更快定位到问题。

二、先运行再优化

能运行非常非常重要!为什么学习编程要从 Hello World 开始,因为这样你能马上看到反馈建立信心。借助 AI 编程也一样,要让它马上看到可以运行的结果,这样就能马上得到反馈,也能建立起信心。

要想让 AI 生成的结果能稳定运行,一次可以只实现一个小功能。这样好处就是成功率很高,基本上生成的结果都能看到,如果出错了回推到前一步也容易。

另外这样一个小功能一个小功能的迭代,作为新手你也能跟得上,可以直观的看到每个功能是怎么实现的,以后维护的时候你也能快速定位到问题在哪里。

举个例子,如果你要做一个个人博客网站,可以这样的步骤来做:

1). 先把你的需求都写下来,你的博客要有哪些功能,有哪些主要页面?页面有哪些主要功能?当然你也可以直接去问 AI (ChatGPT、Claude等),一个基本的个人博客网站需要哪些功能?

2). 需求大概定下来后,确定技术选型。比如你打算用什么语言、框架、数据库等等。同样你没必要自己定下来,也可以去问 AI:我要做一个个人博客网站,要有这么几个功能,我应该用什么技术架构比较好?

3). 搭建脚手架,让 AI 帮你生成一个可以运行的 “Hello World”。比如说你确定选 React/NextJS/TailwindCSS/ShadcnUI/Markdown静态文件搭建博客,你可以把这些技术选型告诉AI,让 AI 帮你创建一个可运行的简单的博客网站,创建完后,按照说明安装必要的包,安装完了后马上运行看效果。如果不行让 AI 修复或者简化要求重新开始,直到能运行为止。

4). 在你看到的运行基础上,可以开始逐步增加功能模块了,比如你可以试着让它添加一个页面;可以让它修改一下页面布局,调整下样式,增加个暗黑模式什么的,一次一个小功能。

当然以上只是示例,实际上你并不需要完全遵守,重点就是每次一小步,每次都可以运行,遇到问题让AI帮你解决,解决不了就回滚到上一步,并调整要求。

三、做中学,让 AI 给你解释代码

有了 AI 帮我们写程序,并不意味着我们不需要懂程序,因为要建立好编程学习的循环,让自己编程水平提升才是关键。每次 AI 生成了可以执行的代码后,让 AI 给代码加上详细的注释,让 AI 给你解释你不理解的代码,这些事情上 AI 可能比你想象的还要有耐心,还要详细。

也不必要求一次就完全搞定,听完 AI 的解释没有完全搞明白也没关系,反复几次哪天就可能明白了。很多概念需要时间的积累才能消化,也不用心急。

四、遇到问题怎么办?

现在 AI 生成代码、解释代码都做的非常好,但是调试程序还不太行,这是因为大语言模型并没有自己的运行环境,它无法去执行程序,无法了解在什么步骤出了问题,所以需要你去配合。

遇到问题可以分成几个步骤来:复现、精确描述、回滚

有编程经验的都知道,遇到 Bug,最重要的是重现,如果你怎么知道重现步骤,就好定位到问题在哪了。所以如果你遇到问题,先看怎么一步步重现,重现后就是精确描述问题了。

要精准描述一个问题,就是把重现的步骤、问题的现象、期望的正确结果、错误信息等等都一起发给 AI,让 AI 帮你定位,然后给出方案。运气好的话 AI 能马上提供靠谱的方案,运气不好可能你得反复修改测试反复调整给 AI 的信息。

如果上面的步骤实在不行,就可以考虑回滚会上一次可以正常运行的结果,从头开始。

当然有了 AI,并不意味着你不需要人的帮助,也不妨请教一下你身边的朋友同事,也许他们可以很快帮你定位解决。

最后再强调一下:每次都生成一个可以运行的结果,一次只迭代一个小的功能,生成后让 AI 给你解释不明白的地方,遇到问题先重现,描述清楚问题,不行就回滚。也不要忘记请教你身边的人。