The Next Generation of Programmers

Ned Bauerle - Apr 17 '20 - - Dev Community

Our world is constantly introducing new technology and in many different forms. We have mobile cell phones that are more like mini computers than phones. We are able to pause, rewind, and fast forward our televisions. Our cars have computers to control various safety features and in some cases even drive the car for us. Face it we are becoming more and more dependent on highly technical devices which require complex programs.

It's not a secret that many children follow in the footsteps of their parents when selecting a profession and if you are reading this article then chances are that you work in a technical field. Perhaps you want to teach your children about programming or perhaps you have been approached by a friend or relative who has children interested in learning to program. In any case the intent of this article is to help you get started and provide some resources for teaching the next generation of programmers.

Children are generally hungry to learn. We need to help them out and it is good to strike while the iron is hot, but how do you get started?

I bet that most of you are not elementary school teachers and have not likely gone through training on how to educate young children. Some of you are parents, but teaching children about technology (especially your own) is not the same thing as raising children. So here are a few general tips when teaching children:

Let the child learn. Some will pick things up quickly and some will take a few times before they "get it." Either way is OK, everyone learns differently, just remember to be patient and let them learn in their own way.

It is easy to get frustrated when teaching children, just remember to keep your cool and be encouraging. No one does well when they are being yelled at but rather the opposite will happen and they will only remember that you were upset with them.

As a Cub Scout leader and BSA Scout Master I was trained to use the EDGE method which works really well especially with young children.

  • Explain what you are going to learn / do
  • Demonstrate how to do it
  • Guide or coach them while they try it themselves
  • Enable them by letting them do it without guidance (only assist when they ask for help, but don't just jump right in, first give hints.)

If you are a programmer or have tried to learn programming then you will probably agree that there is a lot of dry material sometimes very abstract. When teaching kids you have to keep things interesting. Many kids think they are going to write the next World of Warcraft or some other completely complex software. Encourage them to dream big. Tell them that it is a great goal and that there are a lot of things they will need to learn to accomplish such a feat. Let them know that they will need to practice on smaller ideas like a calculator or number guessing game so that they can first learn HOW to program.

One thing that is important is to utilize the right teaching tools and techniques for the right age groups. It took me awhile to figure out that my 6 year old was not going to start programming Java right out of the gate. I then tried to teach him HTML, which he thought was interesting, but I realized that I couldn't easily transfer what he was learning into an actual program. I decided that I had better do a little more research to figure out a good path for teaching my kids rather than taking random stabs in the dark and causing us both to get frustrated.

These are the resources that I found:

HourOfCode has a lot of fun activities and games that you and your kids can utilize to introduce programming concepts. The activities are divided into age groups from pre-readers all the way through high school age. They are designed to be about an hour long each sometimes with an additional follow along activity. I see these activities as great introductions to a lot of different opportunities but there really isn't a lot of consistency from module to module and if you decide that you want to learn more about a specific language or technique there isn't really a guide for that.

Scratch by MIT Media Lab is a free online tool and community that has a lot of great resources for teaching young children and older kids alike. A series of step by step tutorials is built directly into the Scratch ecosystem and you can share your ideas as well as see what others have shared. (seen below)

Scratch

The interface allows you to drag and drop blocks. Many times with input boxes that represent various programming constructs such as conditional if/then statements, loops, variables, etc. This tool is fantastic for teaching kids how to think logically about how to accomplish certain tasks. The graphical user interface and fun cartoons make it interesting, easy, and fun for kids to learn about programming. If you browse through the community gallery you will find that you can accomplish pretty fantastic things like the game PacMan, or Galaga. Scratch is a great tool for those that want the freedom to create endless ideas, but it will only last for a period of time. Eventually your child will outgrow the interest because Scratch can get bogged down and slow. They can write fun simple games, but they really want to write Minecraft. When you see this happen you know that it is time to start teaching them to program using the syntax of a coding language.

Code Combat is a tool that is a cross between a game and programming. Just like Scratch is great at teaching logic and problem solving using concepts like loops and conditionals, Code Combat expands on that knowledge by teaching about syntax. You are a player in a game where you have to solve different challenges. As you move through the game you earn new objects with different capabilities (commands). For example: the first item you get are boots which allow you to move left, right, up, or down. You have to enter the program and click run to see if you complete each challenge.

Code Combat

One day my oldest was at the point where he wanted to put everything together in his own program. I found the book "JavaScript for Kids: A Playful Introduction to Programming" by Nick Morgan. There is a lot of good humor and the book teaches all of the fundamentals of JavaScript.

JavaScript For Kids

When he finishes that book he will pretty much be at the same point that many junior level developers are. I will likely introduce him to NodeJS followed by Angular 5. I am certain that he could work through the tutorials even now, but he is excited to finish the book because at the end he noticed that they have built the game snake.

I hope that you are able to get some information from this article that can enable you when teaching your kids (or your friend's kids) how to program and at least an idea of what other things you can find to help them in their journey.

Good Luck !!


Smart EDJE Image

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .