Hour of Code, coding camps, hackathons – there’s a lot of hype around kids learning to code. Why? Because of the money.
The U.S. Department of Labor predicts there will be 1.4 million computer-specialist job openings by 2020. But current estimates say approximately 71% of those positions will go unfilled. So those who enter the field are going to rake in the cash. With average salaries ranging from $67,000 for web developers to $130,000-plus for IT managers, people who can code won’t have a hard time finding high-paying jobs.
Coding also helps make school a little easier and definitely more fun. Computer programming is more than creating games and smart-phone apps. It’s a multidimensional skill that requires coders to stretch their creativity and abilities.
Our digital world of computers and programs (code) makes it possible to do everything from building a website to analyzing large amounts of data. Just as humans need different languages to communicate different points, computer programmers utilize different programming languages for different tasks.
Some languages, such as HTML (Hypertext Markup Language), are rather easy to learn. Others, such as Python, require more advanced skills. The kids who learn these languages “are going to be ahead of the game,” says Susan Wills, assistant principal at E. K. Powe Elementary in Durham, N.C.
There are many benefits to learning and using these languages.
Coding helps develop problem-solving skills.
“Why do we do puzzles?” Wills says. “It’s challenging and fun. It’s a little bit of gaming. It’s a little bit of, ‘I’ve got a challenge, and I want to find a solution to that challenge.’ ”
Tinkering with an electronic game is a common “puzzle” – finding a way to make it work better or do something different. That’s what hooked Paul Talaga, an assistant professor educator with the College of Engineering and Applied Science at the University of Cincinnati. He says a lot of his computer-science students find their way to him through their experiences with tinkering.
“What I’ve seen happen is that a lot of the high-school professors don’t know a lot of programming,” Talaga says. “And a student goes, ‘I know how to solve that problem in 15 lines of Python code.’ It becomes a self-discovery tool – problem-solving skills that are useful on their own, exploring what’s possible.”
Solving any problem requires understanding the parts of the issue and the desired result. Developing an electronic solution requires knowing what language can accomplish it. Because coding is a step-by-step process, the language helps guide that analysis.
Computers must be programmed (taught) to follow logical reasoning, so a correct sequence of steps must be followed. This requires a coder to adjust her thinking to match the way a computer works. Approaching a problem this way is called “computational thinking.”
“You make this plan and you test it out,” Wells says. “You can actually see it happen right there in front of you.”
Logic and working efficiency are key to successful analysis. Developing proficiency with coding strengthens these skills, which can be used on other projects and activities.
“Programming is a different way of thinking for most people,” says Alfred Thompson, computer science teacher and Bishop Guertin High School, NH. “Beginners ‘get it’ at their own pace. I tell my struggling students that I also struggled quite a bit at the very beginning of learning to code. By sticking with it and working with others, I did get the hang of it, and it opened a lot of doors for me.”
Coding is a group effort. Coders work together to understand a problem and build and debug effective programs. So playing well with others is important.
Having a variety of perspectives can lead to a better solution faster. Whether the focus is a solo project or a group effort, each person brings her or his own expertise.
Many online coding resources include forums or user networks to connect people. They can share projects, tricks they’ve learned or peer-tutor. While all of these will help with collaboration, an in-person hackathon brings kids together to learn from other hackers.
“These are coding competitions for 24-48 hours, and the point is to not make something useful,” Talaga says. “It’s to do something you enjoy doing and you think is cool. But what ends up happening is they get all this experience with technology.”
Coding to solve a problem requires creativity, ingenuity, perseverance – and the courage to fail and try again. Even if the solution is to build on or combine existing code, coders need an entrepreneurial spirit.
“You’re going to fail a lot. … We’re just writing new code because that didn’t work,” Wills says.
Being open to possibilities is essential.
The coders who succeed in college tend to be the ones exposed to technology early on, according to Talaga.
But he says coding jobs are largely misunderstood.
“I saw some statistic that said, as an introductory programmer at any company, you’re going to be writing an average of 500 lines of code per day,” he says. “But as you work there year after year, it goes down to, on average, two lines of code per day. But those two lines of code absolutely need to be spot-on correct.”
The goal of coding is to solve problems. Talaga believes home-schoolers are in the best position, because they have the freedom to explore everything that coding has to offer.
“For home-school kids, the future is even better than for kids in regular school. You can find problems wherever you are and then write a program that optimizes the solution,” he says.