Why I stopped trying to "Learn by Doing"
I've recently taken an old hobby of mine (web coding) more seriously. This has involved deepening my knowledge of JavaScript and even picking up some languages that are brand new to me so I can move beyond web development into app and game development. For a long time, it didn't go so well.
I tried reading through websites like W3Schools. I tried using those "follow along" website tutorials like freeCodeCamp and Codecademy. I tried watching Lynda.com videos (which I normally love – Lynda.com is my second Netflix). I tried playing a game on my iPad that's made to teach you (or kids? Still not sure) how to program with Swift by playing a cute game.
But none of these methods really stuck the coding principles into my brain. What's worse, they weren't tangible or practical, and they had no context to speak of. I could use a language to add a couple numbers together, or tell me if a simple equation was true or false, but I couldn't make the connection between these simple commands and anything useful.
Eventually I realized I learned so much more and so much faster when I was 10 years old, coding my first ever websites. "Have I lost my edge over the years?" I asked myself while trying to recall simple JavaScript code to create new website functions. "Am I simply less interested in this than I was as a pre-teen? Do I have too many responsibilities and too little time as an adult to learn a new skill that requires so much concentration? Are programming languages simply harder to learn these days?" Most of these things may be true, but considering my young age and my scarce access to learning resources at the time (like the family computer), I didn't expect to be at such a disadvantage today.
And then it struck me. I have been using a completely different method to learn now than the one I used before. While I've been trying to "learn by doing" today, I was never trying to learn anything as a kid. I was just trying to do. I didn't care at all about putting "Fluent in HTML" on my resume. I barely knew what a resume was! I wasn't trying to learn coding. I was just trying to make a website. It just so happened that making a website involved HTML. So I would copy and paste bits of HTML together from reference websites to form my own working website. I would see a feature on someone else's website and copy their code for my own website, tweaking bits and bobs as I went, slowly having to learn the difference between a <tr> and a <td> table element in order to create what I was after. Eventually, I would use certain bits of code so often that I'd happen to memorize them and I could cobble together a functioning website without referencing any materials at all, even though memorization was never my goal. My goal was simply to make something. To create something. To do something.
So here's what I propose as a new way of learning your next skill: Don't try to learn it. Just do it. Mimic others for a while. Tweak your techniques. Ask for feedback. Creating websites provided phenomenal feedback in a safe, uncritical setting as a kid. If my code was wrong, the website didn't work. So I'd tweak the code. Working now? No? Tweak the code some more. Working now? Nope. More tweaking. How about now? Yes, it's working! This is still what gets me excited about coding. There is no better feeling in the world than succeeding at something after you've failed at it countless times.
Is my perspective essentially a new take on learning-by-doing? In a way, but it's a much more efficient take on it. Is it a different articulation of "fail faster"? No, but that's definitely going to help you execute this strategy faster. What I'm proposing is a new perspective on learning in general: Don't try to learn. Just try to do and you will learn.
If this article made you think or inspired you to take action, please leave a comment or message me about it! I'm always happy to chat.