Coding seems to be unique within education in that there are a large number of people who think that kids can learn to code simply by turning them loose on the internet with Google searches and Stack Overflow as their reference material. This phenomenon has always struck me as particularly peculiar especially given that it can take years of practice to develop and improve your technical skills.
Perhaps, it is the mythology behind those small number of self-taught programmers who with just a command prompt and some library books were able to teach themselves to code. While those make for great stories and help reinforce popular culture, the reality is that very rarely does someone not benefit from working within a more structured learning environment.
So, let's dive a bit deeper to see if it really makes sense for kids to learn technology on their own using free resources.
Let’s consider sports. Few would argue that Michael Jordan, Tom Brady and LeBron James are some of the most talented athletes ever to have ever played their respective sports. They have won championships, MVP awards and earned millions of dollars in salary & endorsements in the process. However, these athletes also have highly paid personal trainers, nutritionists, and top-tier coaches. They also outfit their homes with top notch training equipment and practice in state-of-the-art facilities. Remember, Michael Jordan didn't start winning championships until he partnered with Phil Jackson. So, while it is true that these athletes had natural ability, they worked closely with other experts to take their games to the next level.
Gifted & Talented Academic Coaching
In other domains within education, we also see the benefits of structured skill development. In reading, writing and arithmetic, gifted and talented students will often join accelerated classes with other exceptional peers to take their natural ability to the next level. Very rarely do parents take a child who is demonstrating genius in school and re-direct them to the internet to round out their skills. Instead, the goal is often to take a student who is showing promise and figure out how to really develop their skills systematically so that they can maximize their potential.
So, why is this a big deal? Why can’t my kid just learn to code on the internet? From YouTube videos to knowledge forums like Stack Overflow and everything in between, the internet has tons of resources on learning how to code.
When developing a skill one of the main challenges is making sure that someone doesn’t give up prematurely. Let’s say that your kid has a high potential for being one of the top programmers globally. Very few would argue that it is important to nurture this skill. Not unlike Tiger Woods or Venus & Serena Williams developed their talents in golf and tennis.
As your kid is learning how to code, they ultimately get stuck on an element of their project. So, they begin searching for a specific answer to their exact issue. Unfortunately, they spend hours and cannot find the answer. During this time, they begin to doubt their natural ability. Everyone has told them that they have a gift for computers. Yet, they can’t figure out what seems to be an easy issue. In the worst case scenario, they decide in that moment that maybe coding isn’t for them. All of the sudden, you notice that their confidence has plummeted. They just don't seem to be into technology anymore.
In an alternative scenario, they join a structured program that helps guide them in not only learning the foundational computing skills but also in the methodical approach for debugging and finding solutions to challenging issues. As a result of their supportive environment, they realize that coding can often be difficult and frustrating. But, they accept that is part of the process and begin to welcome the opportunity to work through challenges. Instead of embarking on an endless series of Google searches, their instructor is familiar with the syntax issue they are having and talks them through how to resolve it.
Now, they are slowly building resilience and grit alongside their natural coding ability. This resilience and grit will be especially useful when they run into a roadblock that neither their instructor or them is able to initially resolve. Since they have faced many of these roadblocks within their formalized education process, they now have a set of tools along with the requisite experience to go through and figure out how to get unstuck.
During their resource searches now, they know they don’t have to find the exact answer. Instead, they need to find a resource that is similar to the issue that they are facing. Now, they don’t just write code that achieves the purpose. They also have the skills to write code that is fast, efficient, resilient to edge cases, and easy for others to understand and build upon.
If we return to the student who is self taught and becomes great, the reality is that this student is not representative of the general population. These outliers were going to be successful regardless of their formal education environment. Yet, by consistently telling the stories of outliers we end up believing that if our child doesn’t self teach themselves to code using nothing more than Google searches and Stack Overflow that somehow technology is not for them.
Instead if we applied the same methodical approach to every other discipline, we would realize that by learning the foundations within a formal program will help anyone excel in coding. Let’s make sure we don’t shortchange our children’s potential in technology by assuming they can learn a complicated discipline like coding without the benefit of guided instruction.