作为一名在过去十年里领导开发者关系团队、教授编程训练营以及同时也是一名专业软件工程师的人,我亲眼目睹了编程教育随着生成式AI工具的兴起而发生了巨大的转变。我想分享一下在这个新时代我们应该如何教人们编程的看法。
找到平衡:基本知识 vs. AI工具教人们编程变化非常快。但我认为,基础部分比任何时候都更重要。虽然有了像GitHub Copilot、Amazon Q Developer和Cursor这样的AI编程助手,理解核心编程原理仍然非常重要。
原因很简单:你不应该将你不理解的代码部署到生产环境中。因此,虽然生成式AI可以加快开发速度,软件工程师仍需能够解释他们编写的代码,发现安全漏洞,并长期维护代码。
‘氛围感’时代"Vibe编程"在社交媒体上超级流行,我也超级喜欢。你只需要写提示来构建应用程序,完全不用管代码,这样做。
我认为这最令人兴奋的一点是,让非技术人员也能成为开发者并快速起步。他们可以从零快速入门。这使得编程更容易被大众接受,让新手能够在无需先掌握所有编程基础知识的情况下,开发类似 three.js 游戏的项目。
当我教人们编程的时候,他们上的是第一堂课,学习如何使用CodePen来构建简单的HTML和CSS网站,这让他们能够快速获得视觉反馈,从而取得初步成功。而Vibe编码则将这一切提升到了一个新的高度。
不过,当AI生成的代码投入生产时,风险就会出现:
- 安全漏洞问题
- 可扩展性问题
- 性能瓶颈
- 影响用户的 bug 问题
不同代际在使用这些工具时有着明显的差异。对于这些学生和新毕业生而言,这些生成式AI工具是他们思考和构建的途径,这些工具已经成为他们成长过程中的一部分,这与资深开发者截然不同。
虽然有经验的开发者可能很难改变他们的开发工具配置(就像我自己的 CLI 一样!),新手开发者却从一开始就将这些工具整合到了他们的工作流程中,使得结对编程体验更加自然。
学生和初级开发者的好处生成AI擅长完成传统程序常会忽略的任务:
- 测试生成:GenAI 在为你的代码库生成测试用例方面非常出色,这一点在编程课程中很少被教授。
- 代码文档和解释:编程的一半挑战不仅仅是写新代码,更重要的是理解之前的开发者所编写的代码,这对于刚入行的工程师来说可能会非常令人害怕。GenAI 让这一切变得简单得多。
编程课程必须与时俱进,以使学生为这一新的现实做好准备。我认为它应该通过继续教授基本知识,确保人们能够成功运用这些基础知识……同时也要确保人们能够更好地进入这个就业市场,在这个市场中,你可以使用生成式AI工具更快地构建内容。
这不仅指的是教授传统的编码原则,还包括教授新的技能,比如有效的提示工程和与AI编程助手协作。
学编程还值不值得?这可是个值一百万的问题。我的回答比较复杂。五年后发展还会一样吗?甚至今年内会一样吗?肯定不会。在这种就业市场上,编码训练营是学习的最佳途径吗?也不是这样的。
然而,编程本质上是解决问题。尽管计算器和计算机可以轻松解决人类能解决的任何问题,但是我们仍然让学生学习数学。学习数学仍然是一个有价值的技能,而且我们还没有达到可以完全依赖自动化生产代码的程度,无需人工干预、严格的代码审查,而关注安全性、可维护性和可扩展性。
最后的总结:编程教育正处于一个十字路口。未来之路融合了传统基础与AI工具,比如Claude的全新教育模式。最有效的方法不仅传授核心原理,还教会学生负责任地使用AI。随着这些技术的发展,我们也将不断改进下一代软件工程师的教学方法。
未来不是选择在人类知识和AI辅助之间,而是利用两者来创建更好的开发者,从而打造出更好的软件。拥抱两者,让更多的普通人也能成为开发者,并通过编写代码来拓展可能的边界。
共同學習,寫下你的評論
評論加載中...
作者其他優質文章