Learning to code is becoming increasingly prevalent in today's schools and afterschool programs. And why not? There are countless benefits of learning to code: practicing critical thinking, problem solving, processing, and systematic thinking skills, to name a few.

Coding helps develop key 21st-century skills, which is proven to predict school and workforce success. It’s no wonder there are many educators that are dedicated to providing coding curricula for children as young as kindergarten. Organizations also spearhead initiatives such as the Hour of Code campaign that is dedicated to increasing equity of K-12 computer science classes across the nation. But did you know that by learning to code, you can simultaneously grow your growth mindset in the process?

This is part two of a two part blog series about growth mindset and learning to code. In this series, we will explore how developing one skill can help develop the other. If you haven’t already, be sure to check out our blog post about how having a growth mindset can help you become a better programmer.

How can learning to code help you develop your growth mindset?

By understanding that experience and practice is essential for growth and success

  • Practice, practice, practice! If there is one thing that programming and growth mindsets have in common, it’s that you are not born with great skill, it is developed with continual practice. Similarly, one is not magically born with advanced programming skills. You can’t become a programmer without learning and practice, and you can’t go up a professional level without gaining more experience. For instance, the only way you become a Senior Developer is through gaining experience by investing an extensive number of hours into developing programming skills. Those with a growth mindset see practice as essential for obtaining mastery of any certain skill.

By knowing that If you give up, then you’re not going to learn anything

  • When learning to program, if you get stuck on a problem, one thing you learn is to keep on trying to solve it. Sometimes it can take hours to debug something that in the end was fixed by changing half of a line of code. For some, it may be easy to look back on those hours of trial and error and consider it as a waste of time, but learning to program helps you recognize that those hours aren’t wasted. There is value in focusing on the process—you spent hours learning what did and did not work and now the next time you encounter the same issue, you can recall that experience and know you can fix it. Learning not to give up is a key component of having a growth mindset.

By learning when to ask for help

  • A critical aspect of programming is knowing when to seek help. Luckily, as a programmer, your network of resources doesn’t stop at your coworkers. There are programming subcommunities that specialize in different languages. These networks act as learning communities that support each other and learn from one another. As a programmer, if you are having trouble figuring out how to accomplish a task, have done your due diligence, and exhausted your own cognitive resources, yet are still stuck on a problem, it’s time to seek help and guidance. When the priority is to complete a programming project, you can’t stop and wallow in your perceived failure to complete something, you must continue to seek solutions and utilize all resources available to you until you’ve accomplished your task. Having the humility to ask for help makes for a stronger programmer, and perceiving the need for help as a strength rather than a weakness is a characteristic of a growth mindset.

By being open to feedback and suggestions

  • Programmers are no stranger to constructive feedback. A common everyday practice is to do code reviews. Code reviews are essential, especially when a team of developers have a feature they want to implement. Typically, before a feature gets pushed out to a website, other developers look at the code to identify mistakes and recommend suggestions for revision. Code reviews help to reinforce quality of code and maintain high quality products. Websites like Github and Gitlab allow other programmers to review, comment, provide feedback, and make changes to your code. This process provides the opportunity to ask questions and apply feedback to your code, and contributes to your own personal development of programming skills. Reflecting on areas of improvement and seeing mistakes as learning opportunities is one of the most difficult growth mindset practices, but programming helps to normalize these behaviors in a productive way.

By understanding that there’s always room to grow

  • One thing is clear for programmers: there is always more to master, another language to learn, another library to familiarize yourself with, a more efficient way of doing something. A familiar feeling for programmers is knowing there is more to learn and being motivated to learn it, rather than being discouraged if you haven’t mastered everything at a certain point in time. Even those programmers who have mastered a language seek ways to further refine their expertise. Accepting that you may not be at the skill level you desire yet, but one day, with continued effort and practice you will get there, is a prime example of a growth mindset. Learning to program can foster growth oriented behaviors such as goal setting, effective effort, and motivation to keep striving for improvement.

“Technology is always evolving so you can’t expect to stay stagnant in your skills, because by the same time next year, what you are currently doing will most likely be outdated and upgraded or replaced by something else. It’s important to have a growth mindset and continue to evolve your skills as the technology world evolves. If you’re looking for a profession that embodies lifelong learning, nothing does it better than being a Programmer.”   –Stephanie Barreyro, Software Engineer, Nordstrom

As you can see, programming and growth mindset have a symbiotic relationship; developing one can help to develop the other. If you’re looking for a great way to introduce your child to coding, visual programming can be a great segway into other programming languages. Scratch is a free coding platform and online community for kids. As always, don’t forget to check out Mindset Works’ Free Resources page to help your students grow their growth mindsets!