I was listening to Remotely Interesting today, a podcast by Netlify, and they were talking about how to level up as developers, and learning by copying came up as one of the key strategies.
By the way, if you're into web development and JAMstack and not heard about Remotely Interesting, you so should because it's f**king hilarious. Hosted by a team of 4 developers, their energy and dynamics are just infectious. I find myself literally laughing out loud at their jokes and puns, all the time, when out in public. Slightly embarrassing but extremely delightful. Yeah puns are my type of humour, and it's rare to find a podcast indulging in that!
So back to learning by copying. One of the hosts Phil Hawksworth talked about how being able to view source in the browser console when you see something you like, and then tinker and play around with it, copy the code and add your own spin to it, was exactly what brought him into web development in the first place. That really got me thinking about my own web dev journey, and true enough, it's the same for me.
I'm not a huge fan of following tutorials and classes. I might take some in the beginning of learning any language, but that's about it mostly. Most of the time now I go to Codepen and dive right into the source code that others had done and change one thing here, another thing there, just to see what happens. Kind of like pushing random buttons on a mystery device and seeing what pops up on the other side. If it's fun enough I'll fork the repo and play around even more, add my own spin to things. Sometimes I even combine different repos just to learn how to add some complexity into things. When I see something on the internet that I like—true to what the hosts of the podcasts said—I go for view source to see how I can replicate or change things.
All by copying.
I realised coming from a more design background, that's exactly how most designers learn too. We all start from copying a logo or a poster we like, and over time, learning what we like and adding our own styles to it (unicorn gradients anyone? Haha). So perhaps that's why I veered away from what seems to be typical way most developers seem to learn – from what I observe from comments and advice given in forums, it's always, "Read the docs", "Follow this tutorial". All very structured ways to learn. It's probably not 100% accurate to make such sweeping statements, but it does feel quite repeated from my experience.
Is there a designer's way to learning development? Like Refactoring UI but flipped. Hmmm.