
序言
学习编程的黄金时代已经到来。为什么这么说呢?请允许我通过一个类比来解释。
我喜欢在家烘焙面包。相较于手工揉面,使用立式搅拌机明显更加高效且可靠。你或许会认为这是在偷懒,但我想说的是,它减轻了我的负担,让我能够更纯粹地享受烘焙的乐趣。或许你也有类似的体验,当某样东西能够接管那些日常琐事,让你释放双手时,你的生活不仅会变得更轻松,而且你可以将更多精力投入更重要或更有趣的事情中。例如,你的汽车是否配备了自动侧方停车功能?我清楚地记得,当Gmail为非英语语言引入拼写和语法检查器时,我丈夫的德国亲戚们非常兴奋,因为他给亲戚们写的电子邮件篇幅明显变长——当那些不常用的德语细节不再成为负担之后,他可以将更多时间花费在邮件的内容上。
遗憾的是,在过去很长一段时间里,我们在学习编程方面并没有类似立式搅拌机或语法检查器这样的辅助工具。而且,当你刚开始学习编程时,需要学习和记忆大量烦琐的东西。
好消息来了!2023年春天,我们终于见证了一种全新且(我们认为)有效的辅助工具的诞生。如果你打算踏上编程学习之旅,那么陪伴你的将是一种令人兴奋的辅助工具——AI(Artificial Intelligence,人工智能)。具体而言,本书将帮助你掌握一款名为GitHub Copilot的工具,它将帮助你提升Python编程技能,进而更轻松、更快速地利用计算机程序解决实际问题。Copilot是一款基于大语言模型(Large Language Model,LLM)技术的编程辅助工具,它能从大量现有的程序代码中“获取帮助”。一旦你学会了如何驾驭Copilot(虽然这比熟练操作立式搅拌器要复杂得多),你编写程序和解决问题的效率和成功率就会显著提升。
不过,你可能会问,是否真的应该使用Copilot?使用它之后,真的还是在学习编程吗?初步的研究结果看起来是积极的——那些借助Copilot学习的学生,在脱离Copilot辅助的情况下,当面对编程任务时,表现得比那些从未借助Copilot学习的学生更为出色(后者同样在脱离Copilot辅助的情况下面对相同任务)[1]。尽管如此,相较于我们以往在编程入门课程中的教学内容,使用Copilot编程时,你需要特别关注一些不同的技能,尤其是问题拆解和调试(如果你对这些术语还不熟悉,那也无妨)。要知道,即便是经验丰富的程序员,也同样需要掌握这些技能。但在过去,我们很难在入门课程中明确提出并有效讲解这些“高级技能”,因为当学生们专注于编程语言的拼写和语法等细节时,往往已经没有精力去学习这些技能了。
这本书的两位作者均为资深的计算机教育专家和研究者,他们在这本书中所制定的教学策略体现了对编程教育的深刻理解。我对此感到非常兴奋,因为通过这本书,他们正在向我们展示编程教育的未来趋势。
所以,恭喜你!无论你是编程新手,还是尝试过但遭遇挫折的人……我相信,借助Copilot学习编程将是你不容错过的一次机会。它将使你的大脑在编程过程中发挥更重要的作用,让你享受到“指点江山”般的编程体验。
Beth Simon博士