返回资讯中心
外部精选
软件工程
#工程实践#架构

在AI时代如何提升软件工程能力

软件工程师的技能培养需要放慢节奏。工具和 AI 可以加速工作成果的交付,但它们未必能支持技能的培养。Chelsea Troy在Craft大会上的演讲“AI时代的程序员进阶”(Leveling up as a Programmer in the Age of AI)中提到了这一点。工程师必须理解系统是如何运作的,才能真正学到东西。资深开发者可以通过运用学习技巧来指导初级开发者。

InfoQ 中国作者:Ben Linders2026/10/28 · 今天5 分钟阅读中文

以下正文同步自 InfoQ 中国,版权归原站所有,已转换为易读排版。

软件工程师的技能培养需要放慢节奏。工具和 AI 可以加速工作成果的交付,但它们未必能支持技能的培养。Chelsea Troy在Craft大会上的演讲“AI时代的程序员进阶”(Leveling up as a Programmer in the Age of AI)中提到了这一点。工程师必须理解系统是如何运作的,才能真正学到东西。资深开发者可以通过运用学习技巧来指导初级开发者。

软件工程包含两种模式:“摸索规律”(figuring stuff out)和“执行任务”(doing stuff)。当我们想要执行任务时,通常会加快速度,但 Troy 认为,想要摸索规律,就必须慢下来。如果执行任务依赖于前期的摸索,那么我们试图加快速度反而会让自己陷入停滞:我们必须先“降挡”(慢下来),才能继续前进。

那些能促进学习的活动,在设计上往往是低效的。它们需要高度的注意力和投入,而且往往是在我们感到自己不擅长的事情上“雪上加霜”。Troy 解释道:

我们必须直面那些让我们感到挫败的事物,并且去努力克服它。正是这种不适感(困惑与沮丧)才是我们构建认知能力所必需的。

把工具当作加速产出(outcome)的催化剂,通常并不利于技能的培养。Troy 表示,即使有 AI 可用,我们依然需要理解我们试图修改的系统是如何运作的。

神经科学中有一个概念叫“间隔重复”(spaced repetition)。Troy 认为,技能培养如果归结到最核心的本质,就需要高度集中的注意力,并穿插高质量的睡眠。她建议,可以通过将学习过程分散到几次高质量的睡眠周期中,来帮助初级同事加深记忆。

如果我们先尝试猜测答案,就能更好地内化信息;只有当大脑已经处于思考状态时,学习才会真正发生。Troy 解释了这种“结果预测”概念是如何运作的:

当你学习某事物的运作原理时,可以在每一步都停下来问自己:“根据我目前已知的信息,我认为下一步应该是什么?为什么?”,做出了预测之后,继续学习,去看看真正的答案是什么。通过停下来问自己这个问题,你可以极大地提高内化答案的概率。

Troy 还提到了“格式多样化”(format diversification)的概念:当人们以多种不同的格式接触同一信息时,学习效果要优于反复以同一种格式接收信息:

人们之所以认为自己是“动觉型学习者”(kinesthetic learners),是因为他们先阅读、聆听或观看了相关内容,然后才去尝试并弄坏它。真正让知识扎根的,是他们第二次(有时是第三次)接触该信息的方式。”

生成式 AI 改变了软件工程技能培养的现状。但是,Troy 指出,人类解决问题的生物学和心理学机制并没有发生如此迅速的改变。她总结道:“为了有效地使用工具,了解工具是如何运作的固然有帮助,但更关键的是要了解我们自己是如何运作的。我们必须持续训练自己,并用符合我们学习方式的方法和策略来指导初级同事。”

Chelsea Troy:学习的认知障碍在很大程度上是保持不变的,因为我们的认知结构和潜力并没有发生根本性的改变。但是,对工作节奏不断加快的预期,使得这些障碍的风险变得更高。

通常,学习一门学科意味着必须慢下来并沉浸其中。当这在职场中变得不再可行时,开发者就会被迫走捷径,并且再也不会回过头来达成学习目标。这是一个系统性的障碍,管理者有责任通过“向上管理”来设立护栏加以防范。

Troy:我们今天经常面临的一个问题是,学习者容易将“完成工作”与“达成学习目标”混为一谈。

当我在 25 名学生的课堂上授课时,我要求他们为一个简单的算术语言编写编译器,这并不是因为我个人需要 25 份编译器。事实上,这些学生编写出的编译器对我没有任何实际用途。我布置这项作业,是因为设计编译器的过程能让他们获得第一手的经验,从而更好地理解我们在整个学期中讨论的设计问题。当然,Claude 可以写出这个编译器,但这完全偏离了重点,因为重点从来都不是编译器本身。编译器只是一个用来学习如何思考更困难问题的“玩具问题”(toy problem)。

无论是学术环境还是职场环境中的学习者,如果在进行学习的过程中,能反思自己作为从业者希望做出怎样的改变,将会大有裨益。这种改变——而不是练习成果的质量——才是关键绩效指标(KPI)。当人们刚进入这个行业时,他们可能需要资深开发者的指导,以确定某项练习应该旨在改变他们的哪种思维方式。为了成功提供这种指导,资深开发者必须具备密切关注初级开发者实际工作的能力(不是基于他们对初级开发者的刻板印象,而是基于该开发者真实的工作表现),并在指导中针对这些实际表现做出回应。

查看英文原文: How to Develop Software Engineering Skills in the Age of AI

正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。

打开原文
去社区讨论 →