前言

软件在当今社会中扮演着至关重要的角色。很难找到一个不受软件影响或不因软件而改变的行业。制造业依靠软件来监控生产线和物流系统,更别提那些日益增多、执行具体操作的机器人了。在广告、健身等多个领域,大数据无处不在,而这些行业正是通过软件来分析和理解这些数据的。电子游戏和电影的制作同样离不开软件的应用。这些示例数不胜数,足以说明软件的重要性。

这一现象催生了一个显著的趋势:越来越多的人渴望学习编程。这不仅包括那些在大学中主修计算机科学、计算机工程和数据科学的学生,这些专业在过去十年中一直非常热门,也包括那些需要编写软件来评估自己的数据的科学家,希望将日常烦琐的数据任务自动化的办公室工作者,以及那些出于爱好,想要为朋友制作有趣电子游戏的业余爱好者。

尽管人们有着强烈的学习编程的愿望,但我们在计算机教育领域的长期研究揭示了学习编程面临的众多难题。即便你已经掌握了解决问题的方法,也仍需要向机器传达如何使用一种规则严格且不容有误的编程语言来实现目标。虽然使用Python这样的语言编写程序相较于使用打孔卡的机器代码,其难度已大大降低,但学习之路依然充满挑战。我们之所以深知这一点,是因为我们亲眼见证了许多充满动力和智慧的学生在初级计算机科学课程中屡遭挫折,他们往往需要经历多次尝试,才能获得成功。更糟糕的是,不少人选择放弃。

想象一下,如果我们能够与计算机进行更自然的对话,而不必了解那些常常让初学者感到困惑的烦琐语法规则,那该多好。这一愿景已经随着像Copilot这样的AI助手的出现而逐步实现,它们能够提供智能的代码建议;同样,ChatGPT也能够在接收到提示时撰写出合理的文本。本书专为那些希望在AI助手时代掌握编程技能的人士设计,我们很激动能与你一同开启这段学习之旅。