Computer programming is a challenging skill that students in computer science and related disciplines are expected to learn. Computer science educators and students are concerned about the failures in programming competency. Programming errors reflect various details of student conceptual understanding and programming skills developed. This paper attempts to predict the failures in programming comprehension and debugging skills based on programming errors generated by the learner. We conduct a mixed method approach with prepost test experimental design to evaluate the Java programming competency of the learner. We also compute the error metrics and supplement the course material to improve the competency through self-learning spoken tutorial workshops. The characterization of student programming patterns helps to identify at-risk students and determine specific interventions. We analyze the compilation errors, computational time and computed Error Quotients to predict the programming behaviour. Results of the study show that students have improved their programming skills and benefited from the approach. Implications of this study is also helpful to computing education practitioners, workshop organizers, content developers and reviewers to improvise the course content.