How repetition, mistakes and teaching cemented my code knowledge
I am not going to lie, coding is not easy. Learning to code is another beast altogether. Sorting through documents of code can feel incredibly overwhelming, frustrating and mind-numbing. It’s enough to make anyone feel like you have to be some super nerd genius in order to master this skill. Or if not a genius, then surely there must be years of specialized training to wrap one’s mind around the concepts.
When I was first introduced to coding back in 2010, there weren’t many options out there to learn in what I felt was “the proper way”. I was a new mom looking for part-time work and I didn’t have the time or money to invest in a skill I wasn’t even sure would pan out. All I knew is the little bit of code I tinkered with, I loved. My curiosity drove me to learn more. With a handful of online tutorials and some Coding For Dummies books at my disposal, I attempted to immerse myself in all the things.
Yeah, all the things was too much. I don’t know a single mom with the time to learn all the things. So I limited it to just whatever menial task I was working on at the time. The growth came on at a very slow pace, but it came nonetheless. After I finished a project I would be astonished that, hey, I actually did that having no prior computer programming experience. I was pleased with my progress, but still felt I would never catch up to the “real” developers who had all the time in the world to sharpen their skills. Little did I know I was not alone.
Self-taught: It’s a thing
In 2016, StackOverlow reported that 69% of today’s developers were self-taught, meaning they did not go through formal training. The next source of learning was directly on the job. So that means the people writing a lot of today’s technology got their start on their own and continue to learn more through working. No bootcamps, degree paths or certificates. They read documentation on their personal time, studied tutorials, checked out books and combed through forums to solve bugs in their code.
I was fascinated to learn this. It makes sense, too. New technology surfaces every few months. Once you start learning ABC.js then it’s not long before it’s obsolete and XYZ.js is the new thing. Why spend money and time on a formal program when it will be old news once you graduate? To be honest, I can’t tell you how many times our team is handed a task and told to build it using XYZ-123.js even though no one knows it. What do we do? We go a learn it. If you’re not already familiar with some aspect of self-taught coding, you will surely fall behind.
Work smarter, not harder
So, that’s cool. I didn’t feel like a total idiot then. Much of what was holding me back was the fear that because I was a working mom, I would never have the same time or opportunities as my working male counterparts to be as skilled at my work. The comparison game was eating me up. But it was all crap. I mean, I gave birth to three children for crying out loud! At the very least, I could tell the Imposter Syndrome voices in my head to shut the hell up. I pushed past the doubt, the awkwardness, the defeat. But I still struggled to retain much of the information I learned. Finding spare time to put into personal development was hard to come by when raising three kids. How could I make the most of the little time I had?
So I really dug into what actually stuck with me after reviewing all the study material from the past year. My strongest areas were when I made a lot of mistakes and used the most hands-on repetition. Then it hit me… this is how we learn. It’s a struggle. What felt like frustration was actually my brain learning. What seemed like hammering out unintelligible characters over and over was actually coding!
If my kids can do it, so can I
It’s the same thing with kids. As my kids grew, I really enjoyed watching them meet the tiniest milestones. I was inspired by how they learned motor skills and a language for the first time. They didn’t care how much they fell down, bumped their heads or how silly their gibberish sounded to others. They never executed it perfectly the first time, or the second or tenth or 100th time, but eventually, they learned! Repeating the process over and over and over in context moved them from beginner to expert status in no time.
Repetition was just the beginning. Are children blessed with the dexterity of a concert pianist from day one? No, but they feed themselves awkwardly with a spoon or create a messy masterpiece out of crayons. Do they have the balance of an Olympic gymnast? No, but they strive to climb stairs and navigate around furniture. They aren’t afraid to make mistakes. In fact, making mistakes forced them to make course corrections along the way. Lots of spilled drinks and boo-boos later, they are now masters of these skills. Thinking back over my life, the most valuable lessons did not from my success but from my mistakes.
Fall flat on your face, it’s ok
So I began to code over and over and over again without constraint. It wasn’t pretty. Stuff broke. Lots of face-palm moments. But as I went about my days, I caught myself thinking about code. Solutions to problems would come up in my dreams. I would be in the shower and Eureka! a thought would hit me and it would be the solution to a bug. My brain was busy learning in the background, even though it made no sense to me when I first did it. So, my advice to anyone struggling to code (or learn anything new or intimidating) is to make messes and keep doing it.
Fast forward a short time and I was asked to present on a topic I really liked to my team at work. Now, I thought I knew enough about the topic, but let’s just say knowing and teaching a concept are two entirely different things. So I put together some slides, notes, and graphics and spent more time researching the finer points in more detail. Before I even presented, I gained so much more in the short time preparing for the topic than I had in the months it took me to learn it. Not only that but answering questions and explaining the concepts during the workshop sealed the deal. It reached a deeper part of my memory. Not the RAM, but the hard drive.
So I thought, why wait to be asked to present on another topic? Why not approach learning a new concept as if I were preparing to teach it? So now when I tackle a new coding language or some logic I can’t quite understand, I do the research, put together a pretend presentation and practice teaching it as if I were giving a lesson to my students. I take it a step further and create a lecture, workshop, lightning talk and elevator speech version on the topic, each one getting shorter and more condensed. I have found this to be the key to making it all stick for good.
So, take a cue from the kids. Repetition and mistakes are how our brains learn. Teaching is how we truly know.
What are your proven, go-to methods to learning something difficult? What held you back from trying something you thought was impossible?
Want more information on how to learn all the things? Check out this cool article. Because facts.