I used to write computer codes all the time. It was part of the job, although I had no formal programming training. I took an entry level class from a local college, and after that I pretty much learned on the job. To my surprise, I became one of the best programmer in my group, and became a go to person when someone needed help on program codes. I loved coding.
I know it is important for today’s children to learn coding, so I sent my child to several computer coding summer camps and online coding classes. After several camps, we both felt the classes were getting repetitive. I also realized many classes just teach how to write codes or move coding blocks. It is very rare that the class teaches fundamental thinking process behind the codes. Anyone who worked in computer field knows how fast the field changes and how quickly the old coding systems being replaced by the new ones. The code itself won’t help kids to become a good programmer, instead the thinking skills behinds the codes are. The good news is you don’t need send your child to a coding class to learn these crucial coding skills. You can teach them at home. You don’t even need a computer.
5 Crucial Computer Coding Skills You Can Teach at Home
1. The ability to think from a different reference system
A very simple example is the Hot Dog Coding game we created. You can download the game at the bottom of this post. When kids put together the coding to move the bun to meet the hot dog, they can look at the board from either side of the board, so the “up”, “right”, “left” commands are leading to different moves depending on the side from which they issue the commands.
When you play the game with the kids, this is one important aspect to point out to kids. Asking them “Which side is UP, which side is DOWN?” Then challenge them “What if I am looking at the board from a different side? Will your code work?”
Lastly, challenge them to come up a solution, so no matter which side people are looking at the board from, they can use their code to reach the goal. Hint: They can use “if you look at the board from … , then use this code: … ; if you look at the board from … , then use this code: … “ or they can define a reference system, so everyone will look at it from the same side.
2. The ability to anticipate all different scenarios
We tend to believe computers know everything. But in fact, computers only know what we have told them by codes. If you want computer programs be broadly used by many people, you have to know every one thinks differently and has different preferences.
Using the Hot Dog Coding Game as an example again. At the beginning, some kids may decide to turn left first, some may turn right first. Once kids pass the first set of tables and chairs, there are again two potential paths to reach the ketchup, one from the left side of the bucket, one from the right side of the bucket.
One way to help kids gain the skill is to always push for more than one solutions, no matter it is when they are playing the hot dog coding game, solving a math problem, or coming up a dinner plan.
3. The ability to break a big task into actionable smaller steps
When kids start with simple tasks, this is not a very crucial skill. As they progress, the tasks will be more complex, and this skill will be more and more important. This is not just for coding, it is important for almost all jobs. A good coder or programmer is the one who can easily break the whole tasks into smaller steps and focus on one step at a time.
To help kids develop the skill, it is best to start early, when the tasks are still simple. Even if the task does not require to be broken down into steps, it is still helpful for kids to see all tasks are done by steps.
Using the Hot Dog coding game as example again, to move the bun to hot dog, some kids can do it all in one step. However, it will be helpful to point it out, that first they want to pass across the first set of tables and chairs, then they want to pass the 2nd set of tables and chairs and the bucket, then they want to collect ketchup, and last the bun can meet the hot dog. When kids experience more this thinking process, they won’t be intimidated with large tasks. They will be used to thinking in steps, instead of trying to achieve a big task in one stretch.
4. The ability to trouble shoot when things don’t go as planned, especially the ability to figure out where the problem might be before randomly making changes.
I have observed many times that when kids are told their answers are not correct, they erase their answers right away, without even looking at what they’ve done. Kids need know whenever they have done a project, there are always good parts in it, even if it is not working as expected. Most times, it is just a small part of the work has errors, and if they can figure out where the errors are and fix the errors, the overall work will be good.
This goes hand in hand with the last ability, breaking a big task into smaller actionable steps. Once kids can see that a big task is made up with many smaller pieces, they can easily understand the process of trouble shooting: examine one part at a time.
5. The ability to think backward starting from the end result
This is also related to number 3, breaking a big task into smaller actionable steps. When facing a big task, there are two ways to break down into smaller steps: starting from what you have, or starting from what you need achieve. Very often, the 2nd way gets forgotten. But starting from the end result is often a much more effective way for planning out the action steps.
To use the Hot dog Coding Game as example again, have you thought about moving hotdog to meet the bun instead?
These are the five skills I believe are crucial for anyone who wants to be a good coder. It is more important to help kids gain the thinking skills than to actually write codes. Once they master these thinking skills, they can easily learn the actual codes. It is disheartening to watch, at my child’s coding classes, the learning becomes a memorizing game at the end. Kids are given the “correct code” and copy the code into their own program, and that is it. Learning by memorizing helps kids learn how coding works, but it is not going to enable kids to become exceptional programmers. So please find a way to teach kids thinking skills before sending them to coding classes. I will write a series on teaching these 5 essential coding skills. To stay updated with the series, you can sign up for the email update if you put in your email in the form below.
Enter your email address if you’d like to have a copy of the Hot Dog Coding Game.
For more coding resource, visit Best Coding Learning Tools for Kids. You will be also interested in 11 Kids Activities to Learn Coding Without a Computer. For younger kids, Coding Toys may be a better choice.
Looking for STEM Activity Ideas? Check out these wonderful ideas from the STEAM Challenge.