理解概念 → 动手实践 → 遇到问题 → 解决问题 → 加深理解
编程实践的重要性不言而喻,动手实践是发现问题的关键。只有面对问题,才能懂得如何去解决,进而真正理解编程知识。然而,如果遇到的问题总是无解,同样无法提升。
因此,初学者最好能有一位导师,在解决不了的问题上给予指导。如果你想借助 AI 学习编程,我的建议是使用最流行的语言和框架,这样 AI 训练的资料最多,生成效果最好。
先能运行再优化,首先要让程序可以运行,这样才能看到效果,这一点非常重要。做中学,先生成可运行的代码,然后再让 AI 解释代码中不明白的部分。遇到错误时,可以使用三板斧:复现错误、精确描述问题、进行回滚。现在 AI 的编程能力已经很不错了,能够在很多方面胜任好导师的角色,只要你愿意学习,善于提问。
为了确保 AI 生成的结果能稳定运行,最好一次只实现一个小功能。这种做法的好处在于成功率高,大部分生成的结果都能够按预期工作;如果出错,回推到前一步也容易。
另外,将小功能逐一迭代,新手也能跟得上进度,同时能直观地看到每个功能是如何实现的。这对于后续的维护也是有帮助的,能更快地定位到问题所在。
举个例子,如果你想开发一个个人博客网站,可以按照以下步骤进行:
1). 首先,把你的需求写下来,明确博客需要哪些功能,主要页面有哪些以及每个页面的主要功能。同时,你也可以直接询问 AI(如 MarsCode AI、ChatGPT、Claude 等),了解一个基本的个人博客网站需要哪些功能。
2). 在需求初步确定后,进行技术选型。选择你打算使用的语言、框架、数据库等。你不必自己决定,也可以问 AI:我要做一个个人博客网站,有这些功能,应该用什么技术架构比较好?
3). 搭建脚手架,让 AI 帮你生成一个可以运行的 “Hello World”。例如,如果你确定使用 React/NextJS/TailwindCSS/ShadcnUI/Markdown 来搭建博客,可以告诉 AI 这些技术选型,让它帮助创建一个可运行的简单博客网站。创建完成后,按照说明安装必要的包,安装后立即运行查看效果。如果不成功,可以让 AI 修复或简化需求,直到能够成功运行为止。
4). 在看到可以运行的基础上,开始逐步增加功能模块。例如,你可以尝试让 AI 添加一个新页面,或者修改现有页面的布局、调整样式,甚至增加暗黑模式,每次专注于一个小功能。
当然,以上只是一个示例,实际上你并不需要完全按照这些步骤进行。关键是每次只做一小步,确保每次都能运行,遇到问题时让 AI 帮助解决。如果问题无法解决,就回滚到上一步并重新调整要求。
有了 AI 帮我们写程序,并不意味着我们不需要懂程序。关键在于建立好编程学习的循环,从而提升自己的编程水平。每次 AI 生成了可以执行的代码后,可以让 AI 为代码加上详细的注释,并请求它解释你不理解的部分。在这些方面,AI 可能比你想象的还要耐心和详细。
并不必要求一次就完全搞定,听完 AI 的解释后如果没有完全明白也没关系,反复询问几次,总有一天会明白的。许多概念需要时间的积累才能消化,因此不必心急。
有编程经验的人都知道,遇到 Bug 时,重现问题是最重要的。如果你能够清楚地知道重现步骤,就能准确定位问题所在。因此,当你遇到问题时,首先要尝试逐步重现问题,完成重现后,就进入精确描述问题的阶段。
要精准描述问题,可以将重现的步骤、问题的现象、期望的正确结果以及错误信息等一并提供给 AI,借此帮助你定位问题并给出解决方案。如果运气好的话,AI 会马上提供一个可行的方案;但如果运气不好,你可能需要反复修改测试,并调整提供给 AI 的信息。