As flatiron students, while learning new concepts we often find ourselves challenged, overwhelmed because we are learning fairly complex concepts in a short amount of time. I would be referring to labs in this blog, for context, labs in flatiron school are small code-challenges that utilizes the concepts taught. To learn new material we might watch a lecture, re-watch it, scour the internet for additional tutorials and watch that again. We want to be comfortable with the material before we attempt any labs, or write any actual code. While we may tell ourselves that we are learning this way, which is not entirely untrue, but what we are also doing is avoiding doing labs. This is understandable, because labs can be a pain to do, especially when we are learning new things. But the pain we endure to go through labs to understand the material, in my experience helps me to understand the concepts much better. Let’s explore how actually writing code helps to enhance our learning.
Familiarization with syntax
Learning a new language, often introduces us with new syntaxes and new rules. The more we write code, the more familiar we become with syntaxes. If we make mistakes with syntaxes early on, it is easier to catch with less complex code. Every time we code, it reinforces us with that syntax. If we practice long enough it would become second nature to us.
Sometimes when we watch a video or lecture, we may feel we understand it, it makes sense to us, and we would not have questions. However if we try to implement those concepts in code, we might struggle, it will create questions. If we now watch another tutorial, or re-watch a lecture we might find the answer to these questions and gain an understanding at a deeper level, which we might have missed the first time we watched a lecture. It also helps to retain that information better, because we struggled with it and seeking the solution again creates that link in our brain.
Creates good foundation to absorb new material
Once we obtain this understanding at a deeper level, it becomes easier to absorb new information as most times it would build on the concepts that was previously introduced. Learning is much like coding, we use abstraction of the things we learnt to learn new things.
Gaining speed is kind of a no-brainer. The more we practice the faster we become. We do need speed, be it for code-challenge test students have to give at every mod, or getting a project done within a timeline. While writing code and doing labs, we are preparing for the code challenge and projects from day one, and not putting it off for later.
If we do not practice writing codes, we will forget what we have learnt, or it might take a long time for it to come back to us. I experienced this first hand. I did not code in thanksgiving holiday for two days. After I came back from holidays, it was extremely hard to learn new concepts or do any labs. Another way I experienced this was, in mod 3 project, where we mostly dealt with java-script, I wanted to write a class method in ruby. I actually had to look up my notes to write that method, while in mod 2 or later stage of mod 1, writing that method would have been easier. So all the knowledge that we painstakingly acquired would be harder to remember and apply, if we do not write code every day.
So in essence what I am saying is, googling things, watching lectures, watching tutorials are all great tools to learn, but the best tool to learn is by writing code, so go on and write a code, and don’t stop writing code.