I've been seeing more and more teenagers get into coding and attend hackathons. It's exciting to see that technology not only powers the communication between teenagers, but that the teenagers are understanding that they too can build those applications and solutions themselves.
Today, technology has certainly advanced to make this easier for anyone to start doing. From online courses that teach you everything from Design Thinking to Blockchain to Docker and Kubernetes, education is available at your fingertips, and much of it is free and self-paced.
And with so many online services offering APIs to services we use, there are endless combinations to put together. Once you get to coding and come across an API reference, you can often find Swagger docs that contain enough code snippets to copy and paste together.
Code snippets are all over the place. When you find a framework or project that piques your interest, browsing GitHub can unearth a ton of projects and ways it can be used. What if this could also…is a great prompt to ask and complete.
Finally, when you venture off on your own to code a solution and stumble upon an error, StackOverflow can be a helpful place to find the question and answers to what sometimes mystic and confusing error messages actually mean. It seems like every question you might have is already answered.
Occasionally I get asked by parents who want to encourage their children to start coding, even though they themselves are not in the programming profession. It is interesting to watch these parents have the motivation to encourage their children juxtaposed with very little knowledge on how to actually do it.
I believe there are several things that a parent can do to help their child find a passion and interest in programming. First, accessibility. I learned how to code by getting access to a salvaged computer and dial-up. Today, iPads, the Cloud, and simply a web browser can be the tools to enable the access to not only using technology but customizing it to do what you want.
Just like a parent encourages a child to ask questions about the world around them and seek answers, use this technique in programming. Have you heard the saying, answering a question with a question? It's frustrating not getting the immediate gratification of an answer, but if you teach the child "how to fish," the skills will be learned to solve on their own.
Lastly, sitting down with the child and learning yourself can be helpful. Even if you don't have first-hand experience with the technology, you have life experience. Building things with technology isn't just about getting a computer to perform a set of instructions. There's much more to it.
With user interfaces, how do we design tools that are intuitive, easy to use, and efficient? What types of problems really matter? Are there existing solutions already doing the same thing? How can you make it more unique and differentiate yourself from competitors.
In pair programming, two developers work together to write code, bouncing ideas and functionality off of one another. Using the same technique, children can bounce ideas off parents and receive helpful feedback in a different context and mindset then they have.
I sometimes joke that the last step is to give your child your credit card and a spending limit. For example, when building an Internet of Things solution, a $35 Raspberry Pi can be a tremendous enabler at a very reasonable price. There are a number of sensors that are also reasonably priced to enable more complex solutions. And it's probably better than buying all that candy that causes cavities. Though, there are quite a few sensors that your bank account will quickly regret this newfound interest.