GettyImages_sb10069478bo-001 - students in a computer classIt’s no secret that many of today’s geniuses hail from the tech world. Steve Jobs, Bill Gates, Mark Zuckerberg: they are household names who have changed the world. Just about everyone with access uses technology to navigate through life on a daily basis. From artificial intelligence to robotics, great advances are being made at a rapid pace, and all this technology uses computer programming at its core.

As a parent interested in providing her child with the necessary skills to thrive and succeed in the real world, I wanted to teach my son the fundamentals of computer programming. To me, it seemed as basic and necessary as learning the alphabet. Consequently, several years ago I began a personal quest to teach him basic computer programming. The only catch? I knew nothing about computer programming myself. I didn’t even understand all the various coding languages out there. Java, JavaScript, C++, C#, Scratch, Python, Tynker and on and on…. I didn’t know that Java was different from JavaScript! Yikes.

I searched the Internet in earnest for tips on computer programming camps and websites that could get us started. There are so many resources out there, but most just list a bunch of websites that have free lessons without much guidance on where to begin. Fortunately, it was the beginning of summer, and my son’s private school had a summer camp session on MineCraft, the popular game that many kids play using blocks to build forts and virtual cities. My son who was 9 at the time was already obsessed with MineCraft so I figured that this was the perfect way for him to get started. Fortunately, he was hooked.

I then learned from speaking with his MineCraft teacher that Scratch is a popular, relatively easy language for beginning programmers. Scratch was developed by the MIT Media Lab and is widely used as a stepping stone to more advanced computer programming. Using Scratch, kids can create their own video games while learning basic coding skills. Many schools, including our own middle school, use Scratch as the beginning computer programming language. So the next summer, I enrolled Dylan in an iD Tech camp in a Scratch class. He loved it and wanted to be more challenged after playing around with it for a summer.

Taking computer programming to a slightly more advanced level was harder, especially during the school year. Although summer camps had been plentiful, how was I going to keep up my son’s interest in computer programming during the school year, especially with all of his other activities? After an extensive web search, I stumbled onto a great website called Art of Problem Solving . It’s actually a math-oriented website founded by a math genius for students who want to take their math to the next level through online webinar courses. But it also offers great computer programming courses (it makes sense that a lot of the gifted math students would be interested in programming as well).

As an experiment, I enrolled my son in the beginning Python class. I figured that if he understood even 50% of what was going on in the class, it would be money and time well spent. The classes are online at a set time each week, and there is also a chat forum where students can ask questions to the instructor. The students create a project and learn the basics of Python. Python is a general purpose, higher level coding language that many programmers use but is widely praised for its simplicity. Thankfully, my son was interested enough to stick with the class and wanted to continue on. Then he signed up for the next level Python class which, in his opinion, was much more difficult.

After the Python class came the Java class. Java is an advanced programming language used to create applications for your computer. According to the Art of Programming website, students who complete the Java class should be prepared for college level computer science courses. The Java class was much more difficult and Dylan felt that he would need to repeat the class again to learn more about it. In addition to realizing that he needed a lot more practice and time to become a proficient coder, Dylan discovered that there are other coding languages he would need to learn to be fully proficient at coding,.

Now I would definitely not claim my son (now 12 years old) to be any kind of a computer genius, but is he pretty comfortable with basic coding at the end of all this? Definitely! Would it be easier for him to pick up a new coding language as a result of this experiment with coding classes? Yes! Can he look at a bunch of Python and Java codes and have a basic understanding of what is going on? Yes! So all in all, mission accomplished.

Like any other language skill, however, I find that computer programming needs to be maintained. Accordingly, I bought him a book on creating various games using Python on his own for the time being. As an incentive, he has to create games to earn Yankees baseball tickets. So far so good. He has gone to quite a few games this year.

Note: For parents who want to introduce their kids to computer programming, there are several websites out there that are described in the article “Teach Your Kids to Code” by Matt Davis. In addition, Khan Academy offers various computer programming classes online.