August 14, 2020

Can Anyone Learn to Code? Yes! (It’s Science)

Learning to code can feel like an intimidating challenge. It's made worse by the gatekeepers — the programmers out there telling you that only "STEM people" can or should learn programming.

Some of this gatekeeping may well-intentioned. The idea that *everyone** *should become a software engineer is as silly as the idea that everyone should learn any other trade. The dream of doing a quick coding bootcamp and jumping right into a high-paying programmer job is more marketing than reality.

But "don't learn to code" articles tend to miss a pretty basic point: Learning to code and becoming a full-time software engineer are two different things.

Many people interested in learning to code are looking at other professions, like data science. Others are simply interested in adding some skills to their skill set, automating some of their work, or pursuing a fun hobby or side hustle.

Obviously not everyone can become a software engineer, but that's not because it's some arcane science that only the tremendously gifted can understand. It's just because the world doesn't need that many software engineers.

Anyone who wants to *can *learn to code and reap some real benefits from it. Coding skills are used every day by many, many people who aren't full-time software engineers.

And despite what you might have heard, you don't have to be a "math person" or a "STEM person" to learn to program.

You Don't Have to Be a "Math Person"

The idea that learning programming requires being "good at math" is considered common sense by some people. It's even codified in our education system — many university programming courses have advanced math courses as prerequisites.

But a study published by Scientific Reports in March of 2020 points out that the existing science on math skills being helpful for learning programming is "inconsistent." And in their own research — a study of 36 individuals who learned Python online in ten 45-minute sessions — and found that an aptitude for learning human languages was a better predictor of success than mathematical aptitude.

The Python learners who did best tended to have strong language-learning and reasoning skills. Working memory and resting-state brain activity were also predictors of higher Python learning performance. Math aptitude does seem to help, but only barely — its effect was not as strong as any of the other factors.

That's not to say that math skills are useless, of course. Depending on what you're hoping to do with coding, some level of math knowledge is going to be necessary. But this study suggests the idea that you cannot or should not learn to code if you're not a "math person" is nonsense.

As one of the study's authors pointed out in an interview with Science Daily, the idea that learning to code requires a math background has become a bit of a self-fulfilling prophecy. "Many barriers to programming, from prerequisite courses to stereotypes of what a good programmer looks like, are centered around the idea that programming relies heavily on math abilities, and that idea is not born out in our data," lead study author Dr. Chantel Prat told the publication.

Anyone Can Learn to Code, But There's a Catch

Here at Dataquest, we teach Python and R programming interactively online to people interested in learning data science. We've seen thousands and thousands of learners, people of every conceivable background, work through our courses, learn to code, and meet their learning goals.

The catch is that while you don't need a math background, you do need motivation. Finding the right learning platform can make it smoother, but learning to code is hard. At times it's going to be frustrating. If you don't have a good reason to learn, it becomes very easy to convince yourself to quit.

For that reason, it helps to get specific. If you want to learn to code, you absolutely can. But why do you want to learn to code?

  • Are you trying to automate boring tasks at your job?
  • Do you have an idea for a website or an app you want to build?
  • Are you interested in making a game?
  • Do you work with spreadsheets and want to be able to do more with your data?

All of these are good reasons to want to learn to code. What's important is that you choose something that's specific to you that's going to keep you interested. Ideally, your motivation will also point towards a project or projects that you can break down into smaller steps, so that you're actually accomplishing your goal in small steps as you learn.

You can read more about this motivation- and project-based approach in our articles on how to learn data science, how to learn Python, and how to learn R.

But the big takeaway is that you need a personal, real reason to want to learn. If you're just learning to code because someone said you should, or you read an article saying coding is an important skill, you're probably going to struggle to reach the finish line.

Want to Learn to Code? Pitfalls to Avoid

There are a lot of ways to learn programming, and plenty of great places to do it (Dataquest is one of them and we hope you'll consider us).

But just as many people have the misunderstanding that you need to be a "math person" to learn coding, there are also many misunderstandings about how you should learn to code. Here are some platform-agnostic tips for anyone interested in learning to code in any language for any reason:

  • Find your goal/motivation first. Figure out what you want to do with programming skills. That will help you determine which language you need to learn, what specific skills you should focus on, what platforms you have to choose from, and much more.
  • Don't spend too much money. There are tons of free learn-to-code resources out there. Interactive learning platforms like Dataquest and Codecademy and lecture-based platforms like Coursera and EdX charge small fees in exchange for the convenience of not having to plan your own curriculum and find resources yourself. Bootcamps can be great, but they're very expensive — think carefully about what you're getting for your money, especially if you're considering a bootcamp or university program that costs thousands or tens of thousands of dollars. 
  • Avoid the "hottest tech" hype. The tech industry is fast-paced, and there's always some hot new thing you "need" to learn. Try to avoid these fads and stick to learning the tried-and-true essentials for your goals before you follow the hype train. (And beware of bootcamps pushing the hottest new thing; sometimes they'll leave out some of the basics to cover hot new tech because that's what's most marketable. For example, we've seen data science bootcamps that skim over SQL — a critical skill for data work — so they can get to machine learning faster).
  • Build projects and get your hands dirty. Some learning platforms (including Dataquest) have this built into the curriculum, but if yours doesn't, be sure you're doing it on your own. Watching a video lecture will not help you learn to code; actually writing code will. Be sure you're taking the time to apply what you're learning, or pick an interactive learning platform like Dataquest where writing real code is part of the process.
  • (For job-seekers) Research your industry. Will you need some kind of certification? In data science, the answer is no, but other industries will be different.

Find a good motivation, follow these tips, and you'll be well on your way to learning to code! Don't let anyone tell you that you can't, or that you need to be a certain type of person. **Anyone can learn to code. **

Charlie Custer

About the author

Charlie Custer

Charlie is a student of data science, and also a content marketer at Dataquest. In his free time, he's learning to mountain bike and making videos about it.