ITPUB

在 AI 学会编程的时代,程序员还能学点什么?

本文来源于美国人工智能教育研究非营利机构TeachAI 联合计算机科学教师协会(CSTA)发布的《人工智能时代计算机科学教育未来指南》,原标题“为什么学习编程仍然很重要?”

  • 原文地址:https://www.teachai.org/csbriefs

  • 核心观点:尽管生成式人工智能(Gen AI)已经能够编写代码,但学习编程仍然至关重要,因为它能培养概念理解、自主能力以及有效使用 AI 工具所需的思维方式,帮助我们评估并修改 AI 生成的代码,并理解编程所处的更广泛背景及其影响。编程不仅仅是产生代码;它还激发创造力、批判性思维与合作精神,并为学习计算机科学(CS)这一学科奠定基础。AI 可以辅助学习,但无法取代通过学习编程而获得的知识与技能。

近年来,Gen AI在编写代码方面的能力取得了显著进步,这使得一些行业领袖声称学习编程已不再必要。尽管专业人士正越来越多地借助AI工具生成代码,但学习编程仍是一个培养解决问题和计算思维能力的过程,这些能力有助于恰当地使用这些工具、评估和修改其输出结果,并将其应用于具体情境。Gen AI工具并非削弱学习编程的重要性,反而凸显了掌握编程基础知识的必要性,以便更好地理解和利用这些工具。

正如学生必须学习“数字感” ——对数字及其相互关系和连接的概念理解——才能继续学习代数或微积分一样,他们需要发展“代码感”才能在这个新的 AI 辅助编程时代取得成功。

代码感:我们将代码感定义为对计算机程序底层设计、过程和系统关系的概念理解,以及分析、仿真和预测程序行为的心理能力。

代码感支持有效地调试、优化性能以及理解代码在系统中的更广泛背景。

在本文中,“编程”(programming)与编码(coding)可互换使用,并包括软件开发方面的内容。编程被定义为设计、编写、测试和维护代码以执行特定功能并解决问题的创造性过程。

下文我们将揭拆穿这个误解:Gen AI 编码工具使学习编程变得不必要。

01 AI 不是魔法:它需要人类的专业知识和指导

  • 误解 1:AI 编码工具使编程知识和技能变得不必要。

为了最大限度地提高 AI 工具的价值和有效性,开发人员需要知道如何构建有效的提示、改进和请求。学习编程不仅仅是学习编程语言的语法,它还提供了理解编程逻辑、练习解决问题并发展对算法和数据结构的理解的机会。这些知识对于有效地指导 AI 工具是必要的。

例如,早期针对10至17岁初学者的研究表明,使用代码生成器的初学者中,编程流畅性更高的学生能从该工具中获得更大收益。这表明,AI 工具在增强而非替代编程知识与技能方面最为有效。

02 AI 不是完美的:它需要人类的监督

  • 误解 2:学生不需要学习编程,因为 AI 可以准确、独立地完成。

尽管 Gen AI 工具正在改进,但它们仍会给出不准确、包含安全漏洞及偏见,或者与用户意图不一致的代码。2023 年对三个流行代码生成器的研究发现,它们正确生成代码的比例在 31% 到 65% 之间。另一项研究表明,人类和 AI 配对比单独使用任何一种方式都能更有效地审查代码。学习编程为开发代码感和计算思维技能奠定了基础,这些技能对于评估、调试、修改以及将 AI 生成的代码应用于更大程序的背景中至关重要。

03 AI 不会取代对程序员的需求:它需要人类的创造力和领域专业知识

  • 误解 3:学生不需要学习编程,因为 AI 将取代所有编程工作。

Gen AI 在工作场所的快速采用正在改变编程实践,但没有使人类变得多余。学习编程的重点正在从关注代码生成转移到更多代码阅读、评估、调试和重构。

关注基础知识:Gen AI 编码工具正在迅速发展,通过消除重复性任务、提供代码建议,甚至实现不同编程语言间的代码转换来协助软件工程师。当行业专业人士继续适应这些创新时,学习编程的学生需要建立理解这些不断发展的工具背后基本、持久概念的能力,以便适当地使用它们。

人类的创造力和领域专业知识一直是并且在编程中将继续至关重要。创造力推动创新问题解决、直观的用户界面设计和功能开发,而领域专业知识确保解决方案准确、相关并解决特定用例。它们共同让创建强大且易于使用的程序成为可能,这些程序既满足技术要求,又符合具体情境需求。

04 AI 可以编写代码:但编程不仅仅是代码

  • 误解 4:学习编程的唯一目的是生成程序;现在,AI 可以为我们完成这项工作。

编程不仅仅是将指令翻译成编程语言;它还涉及探索需求、编写规范以及测试、调试和分析代码。学习编程提供了一个协作解决问题的平台、创造性表达的场所,以及发现创造新事物的乐趣。

当学生一起工作时,他们不仅会发现更容易吸收新概念和词汇,而且更容易表达他们的好奇心和热情。研究表明,结对编程可以提高计算机科学专业学生的留存率。在学习编程的过程中拥有这些机会,可以培养出具有韧性、终身学习的能力,使他们能够在快速变化的世界中茁壮成长。

学习编程也具有情绪价值。一项针对小学生的研究显示,孩子们在学习编程后感到明显更快乐、更兴奋、更有掌控感。这些结果突显了学习编程对学生情感状态的积极影响,提醒我们需考虑 AI 应用可能给学生对计算机科学态度带来的影响。

最后:计算机科学不止于编程

学习编程只是学习计算机科学的一个方面。计算机科学的课程标准还包括理解计算机的工作原理、信息如何在互联网中传输、数据如何被收集与分析,以及技术对社会的影响。即使编程变得过时,基础的计算机科学经验仍然至关重要,因为它能够:

  • 推动多个领域的创新,如数据科学或计算生物学;

  • 克服追求高等教育计算机科学所面临的文化和结构性障碍;

  • 扩大高薪且令人满意的工作机会的获取渠道;

  • 以及促进众多领域中多样性的提升。

计算机科学不止于编程!如果你想要进一步夯实对于计算机科学的基础认知,我们推荐你阅读刚刚出版的《编码:隐匿在计算机软硬件背后的语言》第2版。这本书旨在揭开计算机硬件与软件的神秘面纱,从最简单的编码概念出发,逐步深入到复杂计算机系统的构建,是一部深入浅出揭示计算机运行本质的经典著作。了解更多请点击→重磅!“能读一半就是赚到”的神作《编码》第2版来了

图片

图片

福利时间

赠书规则:

赠送书籍:即上述介绍的《编码:隐匿在计算机软硬件背后的语言(原书第2版)》正版书籍

赠送数量:5本

赠送方式:将本文转发至朋友圈,集赞满 28 个,添加小助手微信itpubpx2领取

注:书籍免费包邮到家,数量有限先到先得