Background: Despite similar education and background, programmers can exhibit vast differences in efficacy. While research has identified some potential factors, such as programming experience and domain knowledge, the effect of these factors on programmers' efficacy is not well understood. Aims: We aim at unraveling the relationship between efficacy (speed and correctness) and measures of programming experience. We further investigate the correlates of programmer efficacy in terms of reading behavior and cognitive load. Method: For this purpose, we conducted a controlled experiment with 37~participants using electroencephalography (EEG) and eye tracking. We asked participants to comprehend up to 32 Java source-code snippets and observed their eye gaze and neural correlates of cognitive load. We analyzed the correlation of participants' efficacy with popular programming experience measures. Results: We found that programmers with high efficacy read source code more targeted and with lower cognitive load. Commonly used experience levels do not predict programmer efficacy well, but self-estimation and indicators of learning eagerness are fairly accurate. Implications: The identified correlates of programmer efficacy can be used for future research and practice (e.g., hiring). Future research should also consider efficacy as a group sampling method, rather than using simple experience measures.
翻译:尽管存在类似的教育和背景,程序员在效果方面可以表现出巨大的差异。虽然研究已经查明了一些潜在因素,例如编程经验和领域知识,但这些因素对程序员效能的影响并没有得到很好的理解。目标:我们的目标是解析效能(速度和正确性)与编程经验衡量方法之间的关系。我们进一步调查程序员阅读行为和认知负荷方面效能的关联。方法:为此目的,我们利用电脑分析法和眼睛跟踪对37~参与者进行了控制实验。我们要求参与者了解到32个爪哇源代码片段,并观察其眼睛的外观和认知负荷的神经相关性。我们分析了参与者效能与流行的编程经验措施的关联性。结果:我们发现,高功效程序员阅读源代码更具有针对性,认知负荷更低。通常使用的经验水平并没有很好地预测程序员的效能,但自我估计和学习渴望的指标相当准确。影响:已查明的程序员效能的关联性可以用于未来的研究和实践(例如,聘用)。未来研究还应将效能作为一种方法,而不是使用简单的抽样。</s>