You've probably heard the claim that coding, or computer programming, is as crucial a skill in the 21st century as reading and math were in the previous century. I'll go one step further: Teaching a young person to code could be the single most life-changing skill you can give them. And it's not just a career-enhancer. Coding is about problem-solving, it's about creativity, and more importantly, it's about empowerment.
Empowerment over computers, the devices that maintain our schedules, enable our communications, run our utilities, and improve our daily lives.
But learning to code is also personally empowering. The very first time a child writes a program and makes a computer do something, there's an immediate sense of "I can do this!" And it transforms more than just a student's attitude toward computers. Being able to solve a problem by planning, executing, testing, and improving a computer program carries over to other areas of life, as well. What parts of our lives wouldn't be made better with thoughtful planning, doing, evaluating, and adjusting?
The importance of starting early
As a computer science professor, I get to see the transformation firsthand, at an accelerated pace—from disoriented freshmen to confident, competent graduates who get high-paying jobs in industry, government, military, and beyond, in the span of just a few years.
But it can start much earlier, and indeed, these days it must. A 2012 Science Education study of career interest in science, technology, engineering, and mathematics (STEM) fields found that by ninth grade, over 80% of girls had self-selected out of STEM careers, and by the time they graduated high school, only 12.7% of females were interested in pursuing a STEM field. Boys fared better, but less than 40% of males stated an interest in a STEM career at both ninth and 12th grades.
That means that we must intervene earlier than high school. Middle schools and elementary schools must introduce computer science and engineering (the two biggest STEM fields, accounting for almost two-thirds of all STEM jobs) early and often. Better, more relevant, and more engaging science and mathematics instruction will support the goal of producing more STEM graduates, but coding and engineering exposure are absent from most primary education around the world.
Where do I start?
Here is where parents can make the biggest impact. Find visual, fun, engaging coding activities for your children to try at home, like Turtle graphics in Python (a personal favorite of my two sons, both under 10 years old), programmable robots, coding apps like Scratch, Tickle, and Tynker—whatever interests your child—and encourage them to play, explore, and try new things. Connect them with a mentor in industry or a tutor from a nearby university.
And be willing to model the importance of learning to code by coding alongside your child. Ask to see the programs they've created. Show them that coding matters to you, and it just might matter to them.
Once they've learned one coding language or platform, encourage them to learn another—most modern programming languages are free to download, install, and use. Many programming languages are open source, including Python, Ruby, PHP, and Java's OpenJDK. Several can even be learned online, for free, through sites like W3Schools, Codecademy, and Trinket.
There is also a growing wealth of free, open source programming tools, from helpful text editors with syntax highlighting, to full integrated development environments including Eclipse, Swift, and even VisualStudio Code.
Books, video tutorials, afterschool programs, and coding camps provide a variety of opportunities to expand your student's learning.
After picking up a couple of coding languages, explore robotics, mobile app and game development (including Minecraft, Unreal, and Unity), networking, cybersecurity, or physical computing with Arduino or Raspberry Pi. What starts out as a fun hobby can become a serious differentiator on a resume or college application. A cybersecurity recruiter I know made a hiring decision because the young graduate she was interviewing had built a device using a Raspberry Pi to help keep his cat off the kitchen counter.
Job recruiters and college admissions counselors alike want to see that students have done more than what's provided in that they've gone beyond what they've learned in the classroom, that they show an interest, or better yet, a passion, for technology, science, or problem-solving.
Begin at home
And that interest starts at home. Teach your child to code, change their future. Mentor a kid in using technology, and you'll give them a lifetime of new opportunities. That's how it started for me. My mother bought me my first computer when I was 13 years old, along with a programming book on the BASIC language, and a subscription to a monthly programming magazine. I was hooked.
I became the first person in my family to graduate from college, the first PhD, a tenured full professor, a department head of computer science, and an author. And it all started with a $300 computer, a book, and a coding magazine subscription.
That's how I know that teaching a kid to code can change their future. Because it changed mine. Everything I've been able to do in my professional life, and in much of my personal life, I can trace back to my mom giving me the chance to learn to code. I taught computer science on four continents in a single semester this year because someone made an investment in my future in seventh grade.
Make an investment in a young person's life or even your own. Learn to code. Teach a young person to code. Better yet, learn together.
Teach a kid to code, change a life.