| iPhone and Apple IIgs programmer Lim Ding Wen, 13. source: Wikimedia Commons |
Introduction
I initially wrote an article on how children can learn coding, with different programs and online learning initiatives readily available. However, objections to the value and extent of why people should learn to code have emerged, and become a cause of debate in the coding community.
Aside from this, people have also raised concerns on the viability of coding self study. Today, I’ll try to address those issues so you have realistic goals and expectations in teaching your children coding.
Why study coding
This question surprisingly suddenly became very controversial in the coding community, stemming from the initial optimism garnered by the Code Year project. New York city mayor Michael Bloomberg surprisingly tweeted that he had signed up for the project. As Code Year’s critics point out, how could Bloomberg make use of his coding training as a mayor? After all, his job does not require programming at all. And so, the same argument is leveled as to why the general public should need to learn programming.
But I disagree. Like others have pointed out, people get more value from coding outside of work. Coding teaches people how to think about designing things a particular way. From this point of view, coding is a creative endeavor. These sentiments have been expressed by Steve Jobs, Steve Wozniak and others.
Aside from that, coding is important to learn to understand how programs work. And in this age where we depend so much on devices for our daily living, it’s important to have a rudimentary idea on how coding works, in the same way that we should learn in school that the world is round, pi is the ratio of a circle’s circumference by its diameter, and World War II is the single most far reaching event in modern history.
It can also be argued that, to a certain extent, anyone can learn coding as a hobby, and make use of rudimentary coding to make simple programs and applications for personal use. This may or may not lead to a career in programming, but they would still have benefited from having learned.
Why coding self study
Now, to more practical concerns. As a response to this emerging need for more people to learn coding, several organizations have come up with initiatives to help people learn code. Some of these have been designed to encourage self study, and even incorporate ideas like gamification and social. Among these initiatives, the most prominent are Google Code University, Khan Academy and Code Year.
These courses are meant for adults, so I won't elaborate on them here. Suffice to say they represent a growing push for more people to learn to program. I muddled in each of these three a little bit, but I'm going to focus on Code Year because I've discovered something I think everyone who wants to learn to code, young or old.
The problem with self study
Unfortunately, I’ve personally run across with some problems trying to learn myself using Code Year. Like everyone else, I had that initial spark of enthusiasm reading their press releases and blog posts. We can all learn to code now! I can learn to code now, online, by myself!
When you get in, you find a lot of things set up for you to ease use. The right hand side features a console, while the left side features the lessons, given out in small increments of instructions. There are also quick and easy links to a glossary, a Q&A forum, and a scratch pad. For the first few lessons, everything seems easy and fun.
However, that spark would fizzle away the deeper I went in. There’s a mid point where the lessons become more complex, and answers are no longer self-evident. For several of these lessons, I found myself cheating and going straight to the Q&A forum. I would eventually find the answer there, but laid out for me so that I did not have to figure it out on my own. Professional programmers have likewise noted the limitations with the self-study model Code Year has implemented.
Not to oversimplify things, but even as I looked up the other self study programs implemented by other organizations, I saw that they didn’t even have the inital incitements that Code Year has. Even if you were only doing this for fun, it’d be hard to sustain interest in coding using any of these initiatives.
So I think, at least for the moment, that these self-study initiatives can be very powerful learning tools, but aren’t good enough on their own. The ideal solution, really, is to have an actual coder go through the lessons with you to cover for whatever shortcomings these lessons have.
Of course, that’s missing the point of self study programs in the first place, and many aspiring coders probably don’t know other coders. I would make a comparison to learning a language; you can study and practice on your own, but the best way to learn and remember is if you study with other people who already know, and to keep applying what you’ve learned.
To sum, since these lessons are setup online, it’s viable to find a coder who would want to help teach you online, possibly in a programming/coding forum, or you could try looking in your social networks.
I’ve outlined the reasons why anyone should learn to code. The need to understand how coding affects the world is especially most relevant to children. However, these self-study programs come with their own challenges that affect most people, and set the bar even higher for children. So, how should children learn how to code?
My advice, outside of the websites and programs I’d recommended earlier, is to provide children a strong support system. If your child is fortunate in that you’re a programmer yourself or you know someone who can teach him or her, you should arrange for a tutorial.
I also suggest you form a class for coding study. It will be more worth the effort if more people will benefit, plus that will be a more solid support system. If you can build a class of people in the same age group, that could make it easier for the class to relate to each other, but either way is fine.
If coders aren’t directly available to teach, you should make the effort to find a mentor online. I’m not saying it’s impossible to learn on your own, but you have to avoid the situation where you’re stuck in the middle or your learning is incomplete because you did not get a single lesson right.
How to best learn coding
So I think, at least for the moment, that these self-study initiatives can be very powerful learning tools, but aren’t good enough on their own. The ideal solution, really, is to have an actual coder go through the lessons with you to cover for whatever shortcomings these lessons have.
Of course, that’s missing the point of self study programs in the first place, and many aspiring coders probably don’t know other coders. I would make a comparison to learning a language; you can study and practice on your own, but the best way to learn and remember is if you study with other people who already know, and to keep applying what you’ve learned.
To sum, since these lessons are setup online, it’s viable to find a coder who would want to help teach you online, possibly in a programming/coding forum, or you could try looking in your social networks.
How children can best learn coding
I’ve outlined the reasons why anyone should learn to code. The need to understand how coding affects the world is especially most relevant to children. However, these self-study programs come with their own challenges that affect most people, and set the bar even higher for children. So, how should children learn how to code?
My advice, outside of the websites and programs I’d recommended earlier, is to provide children a strong support system. If your child is fortunate in that you’re a programmer yourself or you know someone who can teach him or her, you should arrange for a tutorial.
I also suggest you form a class for coding study. It will be more worth the effort if more people will benefit, plus that will be a more solid support system. If you can build a class of people in the same age group, that could make it easier for the class to relate to each other, but either way is fine.
If coders aren’t directly available to teach, you should make the effort to find a mentor online. I’m not saying it’s impossible to learn on your own, but you have to avoid the situation where you’re stuck in the middle or your learning is incomplete because you did not get a single lesson right.
Beyond learning
This may not be self-evident to everyone, so to be clear: you do not want to learn how to code for code's sake. Coding is utilitarian for everyone who uses computers, so use what you've learned to build applications you can use, even simple ones.
I'm not saying you should feel obligated to make something professional. Even if you're just running a few simple macros, say, to open a reminder on a particular time, then you've already made use of what you've learned. Even if no practical uses immediately come to mind, you should have that developer mindset after learning how to code.
I'm not saying you should feel obligated to make something professional. Even if you're just running a few simple macros, say, to open a reminder on a particular time, then you've already made use of what you've learned. Even if no practical uses immediately come to mind, you should have that developer mindset after learning how to code.
Just read your story. "you do not want to learn how to code for code's sake" - this is so true.
ReplyDeleteYou can check out Ding Wen story here:
http://www.youtube.com/watch?v=Eovdro7jOwk
Nice article.
ReplyDeleteI think learning how to code teaches kids about thinking critically, and the importance of process driven tasks. It also gives them a bit of confidence in having the ability to pick up tech-related subjects. These skills can help them later in life regardless of whether they become programmers in the professional sense.
In addition, there are several programming tech camps out there for kids that mix learning and fun. Placing our kids in environments like these not only gives them an introductory experience to learning how to code, but can also provide that needed setting for mentorship and teamwork.
A great example of this is the Programming Academy at iD Tech Camps.
There are several others out there like this as well. Some of them are online only and after-school type programs. I think the real question here is not necessarily the validity of teaching kids how to code, but more so how do we create and then channel an enthusiasm for tech related learning. For in this day and age we can’t afford to ignore the strengths of computer literacy beyond the basics.