Heading into a Girls in STEM event this weekend, I was pulling together my slide presentation and creating a few sample projects. In case I didn’t see you there, here are the thoughts I shared with attendees…
Look at stats on Code.org, and you’ll see the need for programmers is great. But there are more reasons to learn to code than simply to fill open positions. Learning to code is really a vehicle to teach computational thinking skills. It can help you learn to problem solve, understand how to work through frustration, experience collaborating and communicating with others, and practice breaking processes down into smaller, manageable steps. Important life skills!
Your school may offer coding classes and/or there may be after school programs in your area as well. There are also apps and online programs aimed and helping you to learn. I’m starting to bring a few in-class lessons to my local elementary, and I’m offering after school classes and classes to homeschooling families who’d like a live person to teach concepts, offer suggestions, and troubleshoot code alongside them. But even if programs like that aren’t available or accessible to you, there are a number of great free places to start playing with code so you can find the language(s) you enjoy.
The Scratch visual programming language was specifically developed at the MIT Media Lab for young coders (and new coders of any age), so they can learn the fundamentals of programming using a simple drag-and-drop interface, without getting bogged down in syntax. You create scripts by dragging, dropping, and connecting code blocks. (You can find my beginner tutorial here, find my video here on drawing in Scratch, and find me on the platform at @codifiedconcepts.)
Python is a professional coding language and the fastest growing programming language in the past twenty-five years, meaning it will continue to dominate in the future. While a language used by professionals, it was developed to be intuitive and text-based, so it is very readable and a great next step for learners graduating from visual languages like Scratch. It is used to develop AI (artificial intelligence), VR (virtual reality), perform data analytics or machine learning or math-intensive operations, networking, etc., for NASA, Netflix, Instagram, Google…to name a few. (You can play with the code from the following GIF here.)
When you are ready to level up, you can download a professional (but still free!) text editor like Atom or Visual Studio Code, where you would create and edit your code files. With some additional basic git knowledge, your finished site created with HTML & CSS (and maybe a bit of JS) can be hosted on a GitHub page for free, so you can show it to the world! (You can find the same sample site I made on GitHub and then view the frontend.)
Earning a degree in computer science is great! But survey a group of coders/programmers, and you’ll surely find that the art of self learning and continuous learning are just as important to keep up with the pace of a constantly changing and competitive landscape. New coding languages emerge and their popularity is constantly shifting, so you need to be flexible and open to change.
The goal is really about developing computational thinking skills, learning key programming concepts like conditional statements (“if else” or “until”) and looping (identifying patterns and harnessing the power of automating tasks)…and mastering techniques like debugging, reusing code, and iterating on your work. Those skills, concepts, and techniques work across all languages. And surveys have found that problem-solving skills are the most-sought by employers, more than language proficiency!
Groups are emerging to support all new coders and make the barrier to entry more accessible. For instance, checkout the Codie Newbie podcast aimed at new coders and online schools like Skillcrush, whose missions is to get unrepresented groups in to tech (and incidentally was the first place I went when I wanted to learn to code).
Coding and iterating on your work cultivates a growth mindset. You may not master a skill right away, but you believe that you can get smarter through hard work, the use of effective strategies and trying different approaches, and seeking help from others when needed. It’s about effort and what you learn on the journey.
So go try out some code and take chances! Break things! And enjoy the learning process. 😄