When I was a kid, there was a high level of struggle inherent in learning to build and engage with technology. If I wanted to play a video game on the computer, I had to type in a bunch of commands. And, even after I corrected all the typos, that was no guarantee that the game would load up.
Or, if my friends and I were playing Nintendo and wanted to switch games; there was a chance that the new game wouldn’t immediately work. When that happened, we would remove the cartridge, blow on the strip and then cycle the game up and down in the machine to try to get it to work.
And, once we got AOL dial up internet in the house, that introduced a whole new level of frustration as you waited to see if you could actually get a connection to the outside world. Sometimes, you would restart the service or you would restart the entire computer.
In essence, kids from earlier generations gained knowledge of problem solving because technology was still under rapid development. Technology companies were rapidly pushing the boundaries of what was possible and they knew that eventually the limited functionality would catch up with the world changing vision. As consumers, no one really expected their computer or video games or going online to work the first or even the second or third time. We were the quintessential early adopters.
Nowadays, the functionality is vastly improved. Technology companies like Apple and Google produce some of the greatest consumer devices and services the world has even seen. Not only do you not have to wait. But, by the time you open your iPad, you are greeted with a beautiful user interface full of well designed applications that just work. Our kids are fast followers or mass market customers.
This design evolution presents challenges to our kids as they shift from content consumers into content creators. In programming, students learn to give instructions to a computer so that it can execute a series of repeated tasks. Sometimes, this works as intended and other times it does not.
Many of the introductory tutorials or projects that kids are exposed to are intended to be simplistic in nature. These highly scripted, beautifully designed programs show how basic instructions can be used to move characters across a screen or execute other common tasks. In essence, it is designed to conceptualize computer programming.
After a short period of time, projects can quickly increase in complexity and difficulty. Since kids are used to everything technology related always working, they may get the false impression that if their project or program doesn’t work right the first time then maybe programming isn’t for them.
This would be the equivalent of watching Steph Curry or LeBron James play a basketball game and then going to practice and giving up on basketball because you can’t shoot 3 pointers like Steph or dunk like LeBron.
In contrast, any parent who sees their kids start jacking up half court 3 pointers like Steph is going to immediately redirect them to shoot layups or jump shots because those are high percentage shots which will increase their probability of early success. As their child enjoys initial wins, they are more likely to develop the internal motivation that will propel them to stick with it and improve their skills over time.
Or, if there kid isn’t a natural on offense, they may emphasize that their kid also learns how to play defense as this skill is highly desirable for the game. And, even if they aren’t skilled both ways, the learnings on defense will ultimately improve their offense abilities.
Within programming, this would be the equivalent of back-end vs. front-end development. There are some students who will quickly understand the setup of databases and the logic involved in structuring and accessing the information within tables. Other students may be better able to develop interfaces that beautifully present this information to users when required. Both skills are ultimately useful within technology. And there are opportunities to develop strength in one while shoring up weaknesses in the other.
When learning to build with technology, there should also be similar guidance provided. If your kid is getting frustrated with learning as they progress, he should be encouraged to stick with it even if they are struggling. If your child asks to get on the computer and design the next cryptocurrency using the latest cryptography protocols, you should ask her to practice logic building animations or games on Scratch.
Depth of skill development in any topic is built over time. While technology has rapidly evolved in our lifetimes, it is essential that we contextualize the educational journey of our children to make sure that they feel properly supported as they learn these important skills so that they can be successful.