Coding has been on my mind for the longest time as a skill that I want to learn. Coding has so many functions… developing apps, games, software etc. I’m interested in learning how the programs I use daily are created from the bottom up.
But I’ve put learning to code off for such a long time. Why? I’m a huge believer in mastering one skill, as opposed to becoming a jack of all trades, so anytime I sat down to start learning code… I’d think “This is going to take a long time to get good, why even bother.”
And that’s a terrible learning mindset. It stops you from trying out new things out of pure curiosity. And so, I’ve decided to change that mindset this year and have some with learning. I’m just too curious about many different parts of life. So I’m going to have fun, enjoy life, and learn skills as I please.
So in this challenge I’m learning to code. If you want to see my entire journey, watch the video above. But if you prefer reading instead, here’s what I learned throughout my 18 hour journey.
1. The best way for me to learn coding is by seeing a fully coded project.
The way FreeCodeCamp works is you usually learn a specific piece of isolated code, at best surrounded by a few other pieces. That’s fine. Learning like this in individuals lessons was a good introduction for me, but I learned so much more from the projects at the end.
Seeing examples of full project code along with the visual outcome of the code, allowed me to make more sense of what I had learned. I could go through 100’s of lines of code and analyze it to see why things worked the way they did.
I think there’s a structure to code that’s hard to learn through individual lessons. My idea learning source would be a video tutorial of a fully finished project, where the creator explains each line of code. And it turns out, there are many of these videos available from FreeCodeCamp and many other sources.
2. Learning to code is mentally taxing, so breaks are your best friend.
The FreeCodeCamp lessons are separated into sections, and each section took me about 2 hours to get through. But 2 hours is a long time to sit at a computer and learn efficiently. After about an hour, I started to gradually lose focus, so I wasn’t learning the information optimally. Of course, I didn’t have to finish the entire section in one sitting, but the allure of finishing a section kept pushing me forward.
I’d zoom through the last half of each section without paying close attention to details because I was already mentally exhausted. This is a bad way to learn because you won’t remember anything. It’s very surface level learning, as opposed to paying close attention, purposely trying to remember the information, and making connections to things you already know.
So, when I went back and reviewed those lessons later on, I couldn’t remember anything. This taught me the importance of taking breaks to rejuvenate your mind. The next time I go about a learning challenge, I’ll keep this in mind.
3. Master a few concepts before you learn new ones
My learning strategy was to go through each lesson once before reviewing, so I went through over 200 lessons without ever reviewing a concept. This was a mistake, and here’s why.
My biggest motivator was the curiosity of what I was going to learn next. That’s why I kept pushing through. But I burned through all of that curiosity quickly when I went through each lesson for the first time, and I had no motivation to review the lessons. So reviewing was torture. I just didn’t want to do it. There were too many lessons, and I had relearn many of them because I didn’t learn them deep enough. Everything I had learned felt jumbled in my brain, and it was hard to keep track of.
A better solution would have been to review every 20 lessons, master the concepts, and build on those ideas with new lessons. I couldn’t build onto anything though because I didn’t have a base. By the time I was on the 100th lesson, I couldn’t remember lessons 1 – 80. I felt confused at times thinking things like “isn’t this similar to the other thing I learned? How are they different? What are their uses? Where should this go?” But because I couldn’t remember what I’d previously learned, I couldn’t answer these questions.