How I Teach Programming (10/17/2026)

I as the teacher need to be self-accountable in the way I teach people knowledge in different contexts.

How Teaching In Formal Schooling Works

Teaching programming is difficult in any setting. In college, the instructor has the responsibility to provide learning materials and be ready to engage the students in the transmission of knowledge and most importantly guiding them toward the most important topics beginning with the fundamentals toward the higher levels of abstractions.

The student equally has the same level of responsibility when it comes to learning. In fact, the hallmark of a great learner is not whether they always attend college lectures. I personally am not a big lecturer attendee anymore. To learn effectively in college, I only have to time-manage well and leave enough space in their day to reflect, study, learn the materials and challenge myself on whether I could understand what I have learned. However, this idea is only applicable to higher education versus than what would be teaching kids to how to code.

Teaching Kids to Code

My current credentials as of 2026 only allow me to be a coding tutor at a learning center. Throughout my employment at The Coder School, Irvine since October 2025, I’ve had my fair share of frustrations when it comes to teaching younger students how to code from scratch. A prominent issue is the tendency of the students to assume understanding when they often do not and then forget all about the topic when the next session come. Granted, the student’s total time here was about once per week. All learning centers encounter the same problem: how to make yourself marketable while engaging the student to create a foundation of problem-solving and programming fundamentals.

A example case study

Week 1:

Tutor: We’re starting with PixelPad. The first we’re doing is putting a picture on the screen. Now there are three different ideas that you have to understand.

Student: …

Tutor: The first idea is there are classes, and you create them by pressing the plus (+) button next to Classes. [Shows them creating classes]

Tutor: So far so good?

Student: Yeah

Tutor: So now classes create objects. And objects have a variable that stores a sprite. A sprite is an image.

Student: Hmm okay… [Clearly overwhelmed by the vocabulary]

Tutor: [Smiles and acknowledge confusion]. Well okay, let’s just get started so you can be familiar with the code and see more clearly what I’m talking about.

Game Start
# Tell class Player to create object Player
Player()
Player Start
# Assign sprite object to object variable sprite
self.sprite = sprite("Player.png")

Tutor: Okay so you tell the class Player to create the object by typing its name and then type the parentheses. Inside the class Player, we override the object variable sprite of self. Self is a variable that refers to the object the class is creating. So self is essentially the player object and you can modify sprite which is one of its variable. Okay, any questions?

Student: Hmm… I’m good. [There’s a lot to actually ask from. Student not used to hearing technical talk.]

Week 2:

Tutor: Okay, welcome back! Last week we covered how to make a sprite. Let’s do a quick review. Do you remember what this code does?

Player()

[There are typically two ways a student respond which depends whether they remembered a bit of it or forgot everything]

Student: No, not really. Could you explain it again?

Tutor: [Rexplain what happened last session. Worst case it’s a redo of last time and the same thing happens next week from now]

OR

Student: It creates the player?

Tutor: Hmm okay. But specifically how does Python understand it?

Student: uhhhh

Tutor: Well what’s Player?

Student: uhhh [Well I can clearly see the text. The heck is that. I forgot]

Tutor: Well, Player is our class. And as a reminder. Classes create objects and each object holds only one image. [Shows the code that sets the variable sprite]. Okay then what’s self.

Student: uhh. It’s a variable.

Tutor: Yes it’s a variable. So what does this variable refers to or what does it track?

Student: uhh, the Player?

Tutor: Yes, self would refer to the object that the class Player creates.

Student: Okay. [Appears stoic but only understand at most half of the words the tutor is saying].

Tutor: Well alright, now we move on to making the player move when you press the keys WASD.

Student: …. [Here we go again…]

Being Marketable Harms Understanding

The term marketing is an adult term. It means fast. It means hype. And it also means lack of understanding.

It’s reasonable to say that students only learn by doing. It’s marketing to say that students should learn doing projects while being taught to by the coach. It’s more so the learning center’s desire to recruit parents’ interests. The analogy is showing a banker a big salary before forcing him to work for 12 hours a day.

The idea of practice while being taught is antithetical to the purpose of studying. Mastery of concepts is done through studying, and studying can only be done when the instructor is no longer involved as strongly to what the student is doing. The student must struggle and get lost in the process of learning so that they achieve mastery of the topics.

The listed example case-study above describes the primary reason why students do not understand topics. In higher education, this fast pace can be overridden by the efforts of the student themselves. But when it comes to teaching kids to code as part of their extracurricular, where they are being forced by their parents to go to, the younger the students are, the less incentive they have to carry on the burden of actually studying things on their own.

Solution - Encapsulation and Repetition

When it comes to teaching kids to code. I have two resolutions that I am implementing as of October of 2026.

First, when a topic is introduced to the student, my teaching materials should gravitate to practicing those materials until the students themselves become bored. Instead of heading to level 5, from now I’m going back to level 1 and practicing the most fundamental concepts so many times that the students would regard it as really easy. This is repetition.

Second, in order to keep things engaging, my teaching materials should now gravitate toward allowing the student to copy and setup code so that it is enough to show something interesting on the screen while only open the students to a section of the project that allows them to practice the simple concepts first. This is encapsulation.

So next time, instead of making the spaceship move from scratch. I’ll give them the code that moves the spaceship, and instead just focus on making the spaceship appear on the screen instead of showing a blob titled, “Empty image” moving around. Then as part of the subsequent session, I’ll give them the code that make fruits move around on the screen but now will task them with making the fruits appear on the screen.

In short, I’ll make them practice the same concepts in different contexts until they can do it blindfolded from me just saying a short sentence.