Learning to Code in the Age of AI: Advice From a Top Udemy Instructor

TL;DR · AI 摘要
AI正在重塑编程教育,教师角色转向解决复杂判断问题,学生需掌握AI工具与Python结合的技能。
核心要点
- AI使学生提问减少80%,教师需专注解决路径选择等判断性问题
- 初级开发者应掌握AI工具与Python结合的三阶段学习路径
- 专业IDE使用率提升30%,可加速代码生成与调试效率
结构提纲
按章节快速跳转。
分析AI如何改变编程教学模式与学生学习方式
AI吸收基础问题后,教师需处理战略判断类问题
要求掌握AI工具与Python结合的三类核心技能
提出包含AI辅助开发的三阶段学习框架
强调专业IDE在AI时代学习效率提升的作用
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- AI时代编程学习
- 教师角色转型
- 处理战略判断问题
- 减少基础问题解答
- 学生技能需求
- AI工具使用
- Python与AI结合
- 项目评估能力
- 学习路径
- AI辅助开发
- 专业工具使用
- 实战项目构建
金句 / Highlights
值得收藏与分享的关键句。
AI absorbed the small questions, and what’s left for the teacher are the ones that actually require judgment.
Students now expect AI to be part of the curriculum
A three-stage path for learning to program with AI
在人工智能时代学习编程:来自Udemy顶级讲师的建议 - JetBrains 博客
JetBrains Academy
以你自己的方式学习和教授计算机科学的平台
关注
- 关注:
- X X
- Facebook Facebook
访问我们的网站
访谈
在人工智能时代学习编程:来自Udemy顶级讲师的建议
Regina Muradova
初学者开发者应该学习什么才能在AI时代保持竞争力?这是当前科技界最热议的问题之一。我们联系到了Udemy上拥有超过65万名学生的Python讲师Ardit Sulce,探讨了学习新事物时坚持努力的价值、教师角色的转变、初级开发者需要掌握的技能,以及为什么学生应该从一开始就使用专业开发工具学习。
#### Ardit Sulce 是一位拥有10年教学经验的Python程序员和Udemy顶级讲师。
他拥有德国明斯特大学地理空间技术硕士学位。Ardit 还是 ActiveSkill Dev 平台的创始人和主要开发者——这是一个以AI作为私人导师学习编程和软件开发的平台。他认为学习Python的最佳方式是通过构建实际应用。他的课程结合了通俗易懂的讲解与使用专业工具的实践练习,从自动化脚本到AI代理都涵盖其中。
在本次访谈中,我们讨论了以下主题:
- AI 如何改变教师的角色
- 初学者何时应该坚持不使用AI,何时应该借助AI
- AI时代初级开发者需要掌握的三项技能
- 为什么应该在专业IDE中学习
- 使用AI学习编程的三阶段路径
AI时代教师的角色
Q: Ardit,在生成式AI成为日常开发流程的一部分之前,你就开始教授编程了。学生对学习编程的期望发生了哪些变化?
Ardit Sulce: 我主要通过视频内容教授编程。你看到的不仅是虚拟环境的讲解,更是有人实时创建、激活并使用虚拟环境的全过程。这种形式依然有效,学生也依然喜爱。
但AI带来的变化在于我收到的学生问题数量。现在每天收到的问题数量是以前的1/5到1/10。当学生遇到困难时,他们直接向AI求助,几秒钟就能得到答案。以前他们需要在课程问答区发帖,等待数小时才能得到我或助教的回复。这种等待时间消失了,学生可以持续保持学习状态,而不会在每个障碍前停滞。现在仍然会收到的问题往往更宏观:我应该选择哪条发展路径?这个项目对我的作品集足够好吗?它在整个图景中处于什么位置?等等。
“AI吸收了那些琐碎的问题,留给教师的只剩下真正需要判断的问题。”
还有一个新的期待。现在学生期望AI成为课程的一部分。在AI出现之前,Python课程只关注Python本身。如今,学习者想知道Python和AI如何结合,如何利用AI工具提高编码效率,以及如何用AI构建应用:使用语言模型、代理和自动化功能的应用程序。
对于忽略AI的课程,他们会感到过时,这种感觉是合理的。这是我作为讲师需要做出的最大转变——不是教学方式的改变,而是教学内容的调整。
Q: 如果 AI 能够瞬间回答这些问题,编程课程和教师的角色还剩下什么?
Ardit Sulce: 正如之前所说,学生可以立即获得问题的答案。然而,当你对某个主题一无所知时,你甚至不知道该问什么。这正是教师仍然至关重要的地方。初学者不知道虚拟环境的存在,因此永远不会去询问它们。他们不了解自己所不了解的内容。
“课程的作用正是如此:它为学生从未接触过的领域提供一条精心规划的路径。”
AI 在回答问题方面非常出色,但仍然需要有人知道哪些问题值得提出,以及提问的顺序。这就是教师的工作。
在学校里,我们一直都有好老师和坏老师。他们使用相同的教材和黑板,但有的老师让时间飞逝,有的老师却让人度日如年。优秀的老师有一种让人渴望倾听的感染力。这似乎对 AI 来说很难复制。
当挣扎促进学习
Q: 学习编程一直伴随着挫败感。AI 应该消除哪些挣扎,保留哪些?初学者如何区分这两者?
“这里的关键词是‘挣扎’。学习必须是一个挣扎的过程。如果没有挣扎,你就无法学习任何东西。”
大脑必须通过努力才能吸收新知识。你可以在海滩上随意阅读一本编程书,但你不会从中学习到任何东西。
“你需要拿起这本书,打开 IDE,投入工作——复现书中的结果,尝试代码,失败,努力找出代码中的问题。只有这样,你才能真正学到东西。”
困惑、错误信息、花二十分钟寻找一个缺失的冒号——这些不是学习的障碍,这些就是学习本身。
可以肯定的一点是:手动输入代码将成为过去式——但仅限于专业人士。对于学生来说,唯一理解编程的方法是先手动操作。你需要编写语法来理解自己在做什么。因此,手动输入代码的挣扎对初学者值得保留,但对专业人士值得消除。这与任务本身无关,而是取决于你所处的阶段。
那么,初学者如何区分有助于学习的挣扎和浪费时间的挣扎?我的经验法则是:如果挣扎是为了理解,保留它;如果只是摩擦,消除它。努力理解为什么你的循环多运行了一次?继续坚持——这就是你学习的方式。与损坏的驱动程序安装、晦涩的设置错误或过时的教程作斗争?让 AI 来处理吧。那里没有可学习的内容。
问问自己:当我克服这个问题后,我会更深入地理解编程,还是只是回到原点?如果解决问题教会了你一些可以复用的知识,自己去克服它。如果只是临时的障碍,交给 AI 处理。初学者往往完全搞反了这一点。他们让 AI 编写循环,然后花一晚上与驱动程序搏斗。正确的做法应该反过来。
Q: 如果可运行的代码不再是学习的充分证明,教育者和雇主应该寻找什么替代标准?
Ardit Sulce:老实说,可运行的代码从来都不是好的证明。它只是最容易衡量的指标。在ChatGPT出现之前,学生就早已从Stack Overflow抄袭代码,每位老师都心知肚明。AI并未创造这个问题,它只是让作弊变得如此快速和干净,以至于我们再也无法忽视。
我首先关注的是学生是否能解释代码——不是用专业术语,而是通过简单的问题:为什么用字典而不是列表?如果这个文件不存在会发生什么?为什么这段代码要放在函数内部?如果我把这行代码移动到上面那行会有什么问题?如果学生用AI编写了代码,但能回答这些问题,说明他们确实学到了东西。如果无法回答,那他们只是"交付"了某个东西。
我建议雇主也采取类似方式。停止要求求职者编写代码,转而让他们进行代码审查。给他们一份包含细微问题的AI生成代码文件——比如越界错误、静默异常处理、功能看似正常但对空输入处理错误——观察他们是否能发现这些问题并解释清楚。或者与他们面对面调试。在二十分钟内观察一个人如何缩小问题范围,比任何居家作业都能更准确地判断其能力。
AI时代初级开发者必备技能
Q:哪些技能能帮助早期职业开发者脱颖而出?
Ardit Sulce:我建议重点关注三个方面。
#### 1. 阅读自己未编写的代码
现在编写代码很容易,但判断代码质量才是关键。你将花费大量时间查看模型生成的代码,判断其是否优质、是否符合需求、在输入量增加三倍时是否依然稳定。大多数新手从未真正阅读过代码——他们只写过代码。改变这种状况:在GitHub上阅读代码库,回顾自己的旧项目,阅读代理生成的代码,而不是盲目接受。
#### 2. 精确表达你的需求
过去我们编写程序代码,现在我们"说出"程序代码,但大多数人在这方面都很糟糕。他们说"帮我做一个登录系统",结果得到一个通用方案,然后责怪模型。优秀的提示词就是一份规格说明书:代码应该做什么,必须避免做什么,边界情况如何处理。我们过去称这为"需求",过去是其他人负责的工作。现在这成了主要的交互界面。
#### 3. 系统级理解能力
第三点就是我上面提到的系统级理解能力——了解一个应用由哪些组件构成以及这些组件如何协同工作。这里没有捷径,这正是能力差异所在。
"前两项技能让你能高效使用AI;第三项技能让你成为AI为之服务的人,而不是反过来。"
使用专业工具学习
Q:你最新的视频课程《Gen AI Engineer Bootcamp》搭配了PyCharm的实践操作。在AI时代,使用专业IDE学习能带来哪些优势?
Ardit Sulce:视频本质上是被动学习。从"我看到别人这么做"到"我能自己做到"之间存在鸿沟。你必须动手实践,在IDE中编写代码。这就是为什么《Gen AI Engineer Bootcamp》Udemy视频课程要搭配PyCharm的实践操作——我不想让学员看完课程后觉得理解了内容,而是希望他们立刻进入与我相同的环境,使用相同的工具,亲身体验解决问题的过程。
此外还有更实际的考虑。
“生成式AI工程师的工作不在浏览器标签页中。他们处理的是环境文件中的API密钥、虚拟环境、依赖冲突、版本间出现问题的包,以及会向项目中写入文件的代理。所有这些内容都存在于IDE中。如果我只教授概念却忽略了环境,那就只教了工作的一半。”
通过编写、运行、调试和修改代码,你获得的远非视频所能提供。编写代码能揭示你自以为理解但实际并未掌握的部分。运行代码会将你暴露在真实的环境中:依赖项、虚拟环境、包版本、配置文件、API密钥和跟踪回溯信息。调试教会你进行调查而非从头开始。修改代码则能检验你是否真正理解项目,从而在不破坏其他部分的前提下进行更改。
在AI时代,最后这一步尤为重要。生成应用程序的初始版本正变得越来越容易。但充分理解现有代码以安全地进行修改,仍然是真正的技能。
“在IDE中学习还有实际原因。AI编码代理需要与实际项目和文件进行交互。它们在开发环境中创建和修改代码。如果你不熟悉如何在该环境中导航、审查更改、运行项目和调查问题,你就不是在真正监督代理。你只是被动接受它生成的内容。”
在PyCharm中开启训练营
新兴的初级开发者学习路径
Q:基于以上内容,今天开始学习的人应该遵循怎样的学习路径?
Ardit Sulce:自从生成式AI能够生成完整脚本变得清晰以来,这个问题一直困扰着我。界面正在发生变化。过去,开发者主要通过编写编程语言来表达指令。现在,他们也可以用自然语言描述意图,并要求代理来实现。但编程仍然是共同基础。你仍然需要理解程序如何运作、数据如何在其中流动、组件如何协同工作,以及如何判断输出是否正确。
语法可能变得更容易生成。但理解系统却并非如此。
我会将学习路径分为三个阶段。
- 手动编写语法。在合适的IDE中编写真实代码,即小型程序。不是因为你在工作中会这么做,而是因为这是构建思维模型的地方:变量是什么,循环的作用,数据如何在程序中流动。不要跳过这个阶段。
- 将AI作为导师使用。转向规模逐渐增大的项目,途中由AI解释你不懂的部分。
- 将AI作为同事使用。让AI编写代码的部分,同时你审查其生成的内容。每个项目都应该比上一个稍大一些:从脚本开始,然后是带有数据库的应用程序,接着是包含用户的项目,之后是部署的项目,最后是能够与API通信的项目。这种逐步推进的过程,将语法知识转化为系统知识。
过去的方式是花费数年掌握语法,并希望架构理解会在过程中自然出现。新的路径更短但方向相反:学习足够的语法以理解发生了什么,然后专注于理解系统——因为这才是你实际会被付费的部分。
手动编码是你仍在学习阶段时的作业。当你开始职业生涯时,你将准备好从事架构师的工作。今天开始学习的人与那些手动编码二十年的人相比并不处于劣势。他们跳过了一个阶段,坦白说,这个阶段从来都不是重点。
我们要感谢Ardit分享了他对在AI时代教授和学习编程的见解与经验。
你是编程课程的创建者,并希望利用专业开发工具让课程更具实践性吗?我们很乐意探讨合作方式,无论你是否已经在使用JetBrains IDE,或正在考虑将其引入教学中。
通过JetBrains课程创建者计划,我们为教育者提供工具、资源和机会,帮助他们触达更多学习者。了解JetBrains课程创建者计划或通过[email protected]与我们联系。
JetBrains Academy团队
Ardit Sulce
教育者
JetBrains
初级开发人员
学习编程
在线课程
教授编程
Udemy
- 分享
上一篇博客
JetBrains Bootcamps教师包的停用