The Secret to Learning to Code (Quick & Easy)
Coding is an interesting profession as it is one of the few professional industries that does not necessarily require the individual to have any formal education or certificate. Perhaps you're 15 and you've figured out how to hack the government; congratulations, you're now employable. Many people do indeed follow the traditional educational pathway and that is undoubtedly a tried and tested method for entering the industry. But if you're more like me, (a self-taught developer), then there are some learning strategies that will serve you better as you breach the barrier to your first developer role job; faster, sooner & easier.
The Secret Strategy
This secret learning technique is possible thanks our favorite new age technology; the Internet. There is a true plethora of freely available learning resources, where people try to teach you everything you could possibly want to know on your journey to becoming a developer. One such channel is my very own:
And consequently, it is not a lack of learning resources that becomes the challenge, it is instead translating that information from the realm of the internet, to the depth of your mind for later retrieval and use.
And we can optimize this process by taking advantage of our knowledge of how the brain works. Learning is a gradual process, and consolidating a concept or topic in your mind is best achieved by following a process of:
- Understanding a given concept.
- Recalling said concept.
- Applying the knowledge in a new context.
In a practical learning environment, let's say that you're learning Node.js by following along with a youtube tutorial, we can achieve this optimal learning pattern by taking the following steps.
First, we complete the tutorial, coding along, ensuring that we understand each of the individual steps taking to achieve or produce the result of the tutorial.
Second, we compliment this process by leaving paraphrased comments littered throughout our code. One comment for every concept or step explained by the educator that is more complex or new.
Third, we squirrel this resource we have created away in a knowledge bank, (as if cataloguing it in a library), such as Github. This step is essential as the first two steps have helped us achieve familiarity and understanding of the material and so now we need to be able to retrieve this information for later use in a new environment.
Finally, when we find ourselves trying to implement a particular technical system or complete a particular task, we have a moment of 'Wow, I've done this before, I know exactly where the logic is, I can go and follow along with code, comments clarifying any questions I may have, and apply that same logic in whatever new environment I may need to'. The library of resources we have created acts as an extension of our own minds.
Why is this Method so Successful?
This method works so effectively for numerous reasons.
Similarly and secondly, the only work you've really done to achieve understanding or learning is finishing the tutorial, leaving some considerate comments here and there for your future self, for if and when you revisit the material. No more having to write it out 1000 times, or say it in your head every time you have a shower. Just a few concise comments. Plus a final commit to a library or repository (for example Github).
Third, when the material does eventually get pulled from your catalogue for a new implementation, you quickly write it out again for this new application, perhaps it's a slightly modified adaptation of the original, you will inevitably end up legitimately memorizing the concept and so the next time you need it, it will likely come straight from memory. Once again, no extra work, no extra memorization, just by pure happenstance and convenience of completing a related task.
And finally, it's even more efficient because it very naturally sifts and sorts through all the material you've encountered and lets any unused or irrelevant information lay rest, ensuring you never waste any time committing unimportant information to your actual memory.
So next time you've got a new coding concept to learn, don't stress the small stuff, write yourself some kind and clear explanations of any cool explanations found in whatever tutorial or resource you might be following, and catalogue the finished project in a library for later use; it doesn't get any easier, quicker, faster or efficient.