Purpose: The authors analyze and discuss what it takes to do computer programming (student conceptions) using phenomenography or qualitatively described ways in which people think or feel about a phenomenon.
Findings: Twelve quantitatively different categories emerged belonging to 5 themes: 1) syntax and language features; 2) nature of programming work generally, 3) computational thinking and problem solving, 4) pre-requisites, and 5) auxiliary skills. Inexperienced users had a mechanistic view of programming. More experienced students stressed algorithmic thinking and logical reasoning. What stood out is that the beginner students listed memorization which became a prevailing category within the general nature of programming work theme.
Recommendations: Introductory courses should use intelligent features to help novices in writing the code, reducing memorization. Those students who see that programming requires perseverance could be given contextualized, smaller tasks so that students understand the usefulness of what is learned. Game design and graphic design could be integrated in programming education to enhance student motivation. This was a smaller theme - additional software and should be considered, thus, avoiding "keeping things simple" only by segregating design and programming.
Sample Size: 541
Participant Type: Students
Notes: Finnish students (11-18 years old).