6 Helpful Coding Resources For Parents
People often ask me “How can my child get started with coding?” Here at Awesome Inc, we have been teaching youth coding classes since 2014, and in that time we have reviewed dozens of content resources and learning tools. We have also helped thousands of local kids take their first steps in learning to code, and we have seen what works well, and what doesn’t. Here are a few of our key takeaways, and a list of suggested starting points for kids who want to get started or continue their coding journey in 2020.
Breaking the Stereotypes
A common sentiment we hear from parents is “My child is into this technology stuff, and I don’t understand it. Can you help?” We can, and our Coding Coaches really enjoy sharing their knowledge and helping others learn. But one common misconception that comes along with this is that “Kids today are born with iPads in their cribs, they’ve seen everything on YouTube, and they already know everything about technology.” While there is partial truth in this statement, it misses a key point: while many kids today are avid users of technology, few are skilled creators with technology.
Just as traditional literacy is the ability to not only read but also write, digital literacy involves not only consumption but also creation.
Helping kids develop these creative digital skills, particularly within the realm of software development, is our focus.
Learning Offline Skills
I know, I know. You’re ready for me to just share a list of links to cool coding tools already. But we still have a few more things to discuss.
It turns out, the hard part about technology isn’t the technology part. One of the best tendencies that kids have going for them is something that adults, hardened by the experiences of life, often struggle with: embracing failure.
A key piece of the learning environment that we strive to create is a place where it’s safe to fail, learn from your failures, and try again.
One of the reasons that we love teaching programming is that the cost of failure is low and feedback is quick: if your program doesn’t work, change a few lines of code, and try it again. It’s practically free, and the whole feedback loop takes a matter of minutes. Compare that with learning to bake cakes, paint portraits, or build furniture, where there are tangible costs for any wasted materials, and possibly a long waiting time to see the results of your attempts.
While writing code is one part of software development, it’s also the easiest part to learn. The hard part is learning how to think about a problem. This is packed into a set of principles, often titled Computational Thinking skills. One example is learning how programmers break big problems into smaller problems. This process of Deconstruction is part of what makes digital computation possible, so no matter what domain or programming language someone is learning to work in, the fundamental process of Deconstruction applies.
The number one thing that aspiring coders should keep in mind is why they do what they do.
Software isn’t made for computers, it’s made for people. So empathy for the people who will use our software is of primary concern.
It’s one thing to solve a problem well, it’s something else to identify who will use your software, and what actual problem they need you to solve. Additionally, seldom are any major pieces of software built by a lone developer. Collaboration and communication are key in a world where software is built by multidisciplinary teams.
Ok, ok. I promised you a list of learn-to-code resources, and I don’t want to leave you hanging. Here are a few of our favorites, all are free or low-cost, presented in the order we like to introduce them to students:
Launched in late 2013, this non-profit organization had built out a great set of learning tools. This starts with a collection of in-house and external “Hour of Code” resources, which for many of today’s students is their first (and last) experience with coding. From there, Code.org’sCode Studiooffering has a full set of K-12 computer science courses, with tools for both students and educators.
If Code.org is not a student’s first coding experience, thenScratchmost likely is. Its block-based coding suite is not only easy to use and intuitive, but also surprisingly powerful. And who doesn’t love the friendlyScratch Cat? Developed as a project out of the MIT Media Lab, Scratch experienced a major upgrade in early 2019 with the launch of version 3.0. This helped make Scratch more accessible across devices, while maintaining backwards compatibility with the massive set of “remixable” projects shared publicly by the massive Scratch user community. Scratch is so popular with schools in Kentucky that there’s even localScratch educators meetup group.
For many years, we taught video game development with the popular, and powerful, Unity 3D. We’ve recently started to useConstructwith our students, also coinciding with the release of version 3 of its software. This version works great in a web browser, which leads to broader compatibility with computers (in particular, Chromebooks, which are common in schools). While Unity makes use of a visual editor and the C# programming language, Construct uses a drag-and-drop interface, with event sheets that contain the program logic. We have found this structure to be a helpful transition from simpler block-based programming languages to more complex text-based programming.
This tool for building mobile apps grew out of another MIT project, App Inventor. One reason we likeThunkableis that it lets people build for both iOS and Android devices. While it uses a block-based programming language similar to Scratch, Thunkable pulls in some very powerful capabilities through integrations with external APIs, like Microsoft’s Cognitive Services for doingimage recognition with AI. Another big plus as students progress to Thunkable from the earlier tools in our list is that it’s possible to publish real apps to the major app stores, and even earn money from ads (which does require a paid Thunkable subscription).
While these tools are great, some of the best ones we’ve ever had, in the end, they’re just tools. Using them begins with the mindset that even digital natives aren’t born with full digital literacy. It understands the necessity of gaining fundamental problem solving skills and taking a human-centered approach. Finally, it works best among a community of learners. These are a few things we offer to students in theAwesome Inc Coding Club, with classes resuming for beginners and advanced students in February. It won’t be long before today’s kids become the teams of people building our future, and my team and I are excited to help them learn how to do that well.