C/C++ is one of the most common programming languages in introductory computer science courses. For students with varying levels of digital literacy, traditional teaching strategies that begin with C/C++ syntax and concepts appear inappropriate. Moreover, different programming languages are required for specific industrial purposes. To complement traditional teaching methods, we design a learner-centered constrictive strategy. Other than C/C++, students begin with two programming languages. Rather than conventional lectures, students learn to program by modifying, decomposing, and reassembling example codes. The midterm assesses their learning effectiveness. After the midterm, they can choose to take the collegiate programming examination (CPE) or not. If they pass CPE, they can pick between 1) regular class and final exam, or 2) no class after midterm, find a topic for a final project, finish it and present it in the last class. We invited 21 students from a class of 90. Eight students had no prior coding experience. Even though these eight students obtained lower scores in the midterm, they all had significant improvements in the final exams. Among sixteen students, six of whom had no prior coding experience, acknowledged that they learned useful skills in the class. Our results show that students with varying coding backgrounds can benefit from our proposed teaching strategy.