Obstacles to Mastery of Programming

by Michael_Koger

The mastery of computer programming involves several issues.

The apprehension of computer programming can be a challenge particularly for those who are new to the discipline. There is much research into the issues which may account for students’ difficulty in this academic area. Moreover, investigators have explored what is necessary for them to be successful with computer programming and how teachers can convey the material in an effective manner [1, 2].

What Makes a Successful Programming Student?

In order to learn programming, one must demonstrate problem-solving skills.  This entails high-order thinking [1].  Students will also need self-efficacy which is the confidence that they can successfully perform the tasks of programming.  Those who have done well in mathematics tend to have better experiences with computer programming than individuals who do not excel in that area.  Also, students with high academic achievement in general are likely to perform well in computer programming [2].

Successful students will need to show that they can do abstract thinking especially when they work with databases and networks [1].  Previous experience with programming will make mastery of classes easier [2].  Additionally, since algorithms are an essential part of this field of study, it is useful to learn about them before one takes courses in computer programming [2].  

People with analytical intelligence and cognitive capacity are likely to perform well in this field [1].

Why Some Quit

Many students who take taken a course in programming never return for another one [1].  They say that the courses do not provide enough practice.  Some will identify concepts such as debugging, program semantics, as well as programming skills and knowledge as barriers to a successful class outcome [2].  In general, these courses seem to be quite difficult, and mastery usually does not occur quickly [2].

Another issue that arises with new students is that the thinking for the two disciplines--mathematics and computer programming--are not always the same.  This requires that the student change his or her thinking skills from one discipline to the other [1].  Studies suggest that the transference of skills from one cognitive domain to another has a connection with higher level thinking which is necessary to learn programming.

Teaching Methods

As with most other academic disciplines, the use of visual aids, graphs, and animation will significantly enhance the ability to apprehend computer programming.  There are several languages that one can use, and it may be beneficial to start with a simple one and then later study others which are fairly complex and have advanced applications [1]. 


There are many factors and predictors which can influence a person's ability to master computer programming.  Despite these measurements, students can be successful if they are persistent and obtain lots of practice.


  1. Holvikivi, J.  (2010).  Conditions for successful learning of programming skills.  In N. Reynolds & M. Turcsányi-Szabó (Eds), Key Competencies in the Knowledge Society, 324, 155-164.  Springer Berlin Heidelberg.
  2. Özmen, B. and Altun, A.  (2014).  Undergraduate students’ experiences in programming:  Difficulties and obstacles.  Turkish Online Journal of Qualitative Inquiry, 5, 9-27.
  3. The photo is of the library at the Centers for Disease Control and Prevention in Atlanta, Georgia and is reprinted with that organization's permission.
Updated: 04/06/2015, Michael_Koger
Thank you! Would you like to post a comment now?


Only logged-in users are allowed to comment. Login

You might also like

Main Differences Between LAMP and MEAN

Which one is better? And what are the main differences between them? Let's ad...

What is: C++?

C++ is an all-purpose programming language which is based upon one of the mos...

Disclosure: This page generates income for authors based on affiliate relationships with our partners, including Amazon, Google and others.
Loading ...