Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Is there any research into the most common mistakes or conceptual errors that people with no previous exposure to computer programming make when attempting to learn or being taught programming?

This question may be a dup, but in order to help reduce that possibility:

  • This question is not about people who can't learn to program or find it too difficult, but about problems or mistakes that even the ones who do learn, and perhaps even find easy, are more likely to have or make at first.
  • This question is not about errors that programmers who already know how to program make, only about clean slate beginners.
  • It is not about teaching or how to teach, it is about what, even after "proper teaching", some percentage of a introductory class's students might, at first, still think or do in (perhaps even surprising to the teacher) contravention to the teaching material.

This question is also not about programming style or patterns, but about the type of mental errors in beginners that prevent any code solution, even if not using the current thought in best practices.

share|improve this question

closed as too broad by Robert Harvey, gnat, Blrfl, MichaelT, GlenH7 Jun 16 '14 at 14:18

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs. If this question can be reworded to fit the rules in the help center, please edit the question.

It's possible that some learning resources explicitly go about teaching in a way that explains how the learning process itself (or even bad habits) result in people struggling to learn to program properly. Perhaps comparing a normal resource known to be error-prone (like w3schools) against some beginner lessons taught by experienced professors or even language authors themselves, might expose part of the problem. Another thing that beginners may struggle with, is the issue of taking the abstract knowledge and applying it (something a vast majority face). –  Joe Jun 16 '14 at 0:05
One could (and many have) write a book about this. And in the education field there are many research / experience papers on this topic. A quick Google shows many popular resources - do they not answer your question? –  andy256 Jun 16 '14 at 1:51
@andy256: Actually no. Most of the google results seem to be random lists of peeves according to the authors opinion of "good" programming practices, as well as lacking any research data (statistics, etc.) –  hotpaw2 Jun 16 '14 at 2:30
Ah, good. So I think a better place for your question would be Academia. I had a quick look there and only found a few loosely related questions. There is published research on this topic; Googling "research paper teaching programming" points to some. A paper such as Robins et al gives an entry point to the literature also. –  andy256 Jun 16 '14 at 4:25
Ah good. The Robins paper does point out some mental modeling and planning issues that beginnering programmers have. No data though. Why would pointers to that research (and 0 answers) be considered too broad? –  hotpaw2 Jun 16 '14 at 14:35