acm-header.
登入

ACM的通讯

研究亮点

技术视角:专家如何学习新的编程语言?


在一个词气球中的编码括号内的问号

关于新手学习编程语言的大量学术油墨已经溢出。这对教育工作者的教学介绍编程很重要,但对于大多数情况来说,我们未能询问那些学生如何学习语言。传统智慧是,编程中的专业知识是从一种语言转移到另一个语言 - 这么多,因此教授和老板都经常预计程序员自己乘坐班级或工作所需的新语言。由于新语言继续出现,并且开发人员希望利用他们在新设置中的专业知识,学习新语言是终身的职业。如果我们始终假设的那么容易怎么办?

在下文中,Shrestha等人。探索这个问题,并报告学习新语言可能非常困难,即使是编程专家也是如此!为了使任务更容易,开发人员尝试应用他们对他们正在学习的语言的编程语言的知识。这通常足以有用,但它也可以引导他们误入歧途。在堆栈溢出的实证研究中,作者识别了几种情况,程序员基于他们所知道的语言的错误传输的想法,程序员最终有关新语言的误解。本文在心理学和神经科学理论方面优雅地绘制了这一点,这表明旧知识可以促进学习新知识或干扰它。

为了了解这些困难的来源,作者与正在学习新语言的专家开发人员进行一系列采访。结果提供了对问题的性质的洞察力,并提出了解决它的路径。一个值得注意的观察是程序员创建了按需构建的心理图,从他们正在学习他们已经知道的语言的语言的特征。

这是一个令人兴奋的洞察力,部分原因是它有助于我们了解专家开发人员如何工作,也是因为它指出了支持开发人员在学习那些映射时的方法。例如,该文件表明,专注于学习编程语言的文本和其他文档可以在映射周围组织,显示如何将一种语言中的编码技术转换为另一语言。同样,作者讨论了寻找反映程序员原始语言中使用的错误的工具,并建议以新语言解决它们的方法。

在我看来,潜在的研究生长甚至更广泛。由于这些心理贴图在需要时逐步构建,因此工具也可以尝试制作语言和库的功能更加可发现。例如,自动完成有助于发现库方法;可以为语言构建做些什么类似的东西吗?更广泛地,为了帮助程序员学习映射,工具必须了解它们;可以根据挖掘源存储库自动学习此类映射吗?

本文还确定了两个特别严重的挑战。当新语言的特征(例如Rust所有权)的特征时,不映射开发人员熟悉的任何构造。另一个人在学习一个完全新的范式时,例如功能规划,需要从开发人员那里的“思维思维”。


即使对于编程专家,学习新语言也可能非常困难,这是以下纸质报道!


一种可能的响应是语言设计人员,以避免“外星人”的功能(以一个参与者的话语),或需要思维偏移的范例。但这将是短暂的;它是新的,有时具有挑战性的语言特征,使得锈病等新兴语言的力量提出。更细微的占据是认识到,在记录新语言时,在语言之间提供映射不会总是足够的。文本应该提供对以前语言中没有类似物的思想的深入覆盖,并且应该帮助开发人员以新语言有效地编程所需的新方式。

本文还可以促进一个重要的新兴趋势:以正式的方式考虑语言的可用性特征。Mindshifts可以是一个障碍,但也是一个工具语言设计人员,可以用来识别可能已经有一些正确的思想模式的目标用户。设计人员可以评估替代语言设计,以发现是否存在与其目标用户可能已经知道的概念的干扰。最后,设计人员可以调整他们的语言尽可能简单地制作映射,同时仍然保留了使他们的语言有价值的核心新想法。

总的来说,专家专注于语言学习,提供了建立工具和资源的机会,帮助今天的程序员变得更加有效,并影响将提供更加表达力量的未来语言的设计。

回到顶部

作者

Jonathan Aldrich.jonathan.aldrich@cs.cmu.edu.)是美国Carnegie Mellon University的计算机科学学院教授,​​匹兹堡,PA,PA,PA,宾夕法尼亚州Pa,PA

回到顶部

脚注

查看随附的论文,访问doi.acm.org/10.1145/3511062


作者持有的版权。
请求权限(重新)从业主/作者发布

数字图书馆由Computing Machinery协会发布。版权所有©2022 ACM,Inc。


没有发现任何条目

登入完全访问
“ 忘记密码? »创建ACM Web帐户
文章内容:
Baidu
map