Programming refers to a set of processes of writing, testing and correcting the program code aimed at creating a program that can do certain works in accordance with the programmer’s instructions, it requires the mastery of algorithms, logic and programming languages. This study discusses the concept of programming skills to develop problem solving skills, which focuses on secondary school students. Various activities allow students to collaborate and develop problem solutions. Some previous studies suggest that students can obtain knowledge and programming skills through formal and non-formal education even though formal education shows better results of students’ attainments. Given a basic programming skills, students are expected to have a high level of reasoning for their better problem solving skills to solve complex problems using computers through an integrated approach between thinking skills and computational thinking (CT). Computer programming has the effect of reasoning abilities for students, problem solving and self-efficacy. Currently, programming-based computation has been introduced in school curriculum at different levels. Consequently, teachers are required to teach relevant materials relevantly to the current curriculum.