It's something we are all guilty of. We watch a video, attend a lecture, or read an article on a subject matter we wish to learn. More often than not, when it comes to an end, we feel a small sense of accomplishment that we have learned something - we close our laptop or our book and we carry on under the assumption that we have furthered our knowledge on the subject at hand.
The truth is, for a lot of people, this process is extremely ineffective. In fact, it is the way that we approach learning and subsequently the learning processes that let us down. Whilst a lucky minority have an innate ability to easily absorb information, it is not so straightforward for the rest of us. But it doesn't have to be that way. Learning is a learned behaviour and because of this, we can become better at it. Doing so could make all the difference in your coding journey. It may not make you the next coding prodigy, but almost certainly, it will make you a better developer.
Improving your ability to learn can only ever work if you're honest with yourself. I know, I know, it sounds a little cliche I hear ya. But think about it, if you're truly honest with yourself (and this doesn't always mean being highly critical) this will open up many doors that will inevitably lead to self-improvement.
In the context of learning to code, this will become crucial - not only as you learn to code initially, but also throughout your career as a developer. Your ability to learn, and learn well, will be incredibly important to you as a developer. From the perspective of a front-end developer, this couldn't be more true. The tech landscape on this side of the stack is forever changing, maturing, and evolving. With new frameworks and libraries launched almost every day it seems, at some point in time you will almost certainly be required to learn something new, be it for a business purpose at work, a side project, or even for a new client.
What often happens with this approach, is that you get some way through the course, maybe just past the foundational concepts (maybe not even that far) and you hit a roadblock. This usually occurs when one of two things happen:
- You start to explore more advanced concepts
- You try to build some application or small project
Sadly, a lot of people become disheartened, their progress stalls, they think they're not good enough, not smart enough to code and this significantly hampers their learning process - they may even decide to give up entirely. Some onlookers may be thinking that's fine, this is just a way to whittle out those that aren't up to scratch and shouldn't be a developer in the first place. Well, maybe in some cases that may be true, but for others, that is definitely not the case.
Most of these individuals will be self-teaching, they may be working a full-time job, have a family, and/or juggling lots of different things in their life all at once. The solution for these individuals is multifaceted, it isn't just a 'one quick trick solution'. One particular facet of this solution will be improving their learning process. Time management will be in there too. But in keeping with the main topic of this article, we will focus on the learning process itself. Here are five actions these individuals could take to improve their process:
The notes you make could be handwritten or they could be typed. They do not have to be extensive, nor do they have to cover every nook and cranny of a particular topic. If you decide to write more elaborate and detailed notes then great, but most of the time a short list of key points and take-aways will suffice. Also noting down what you did not understand can be super useful, especially when you go back to reflect on these notes (which you should do). They could be as brief as the example below which looks at some key differences and similarities between
- If I want a variable to be reassignable I should use
- When I do not intend for a variable to be reassignable I should always use
constwill help safeguard against involuntary reassignments
Make sure you look over your notes. It's best to have a quick look either a few hours after you've written them or the next day. Essentially, once you're pretty sure you've forgotten them.
Whilst you're learning, open up the developer tools console, your IDE, or whatever coding environment you are using and test things out. For instance, using our example above, if
const is useful for protecting against involuntary reassignments, actually test it out. See if the console spits out an error when you try to reassign a variable already declared with
If you're unsure of anything you're learning, always try and test out any assumptions you may have. Using developer tools is a perfect environment for doing this.
Practically applying concepts can be tough, and a real blocker for many beginners. It hurts your brain, and it's really easy to procrastinate at this point when things get challenging. As hard as it may feel, you should endeavor to embrace these uncomfortable feelings! This is where the real learning occurs.
Just because you've completed a section in a course, watched an entire video, or even read through an article, this doesn't mean you've learned what you needed to. Even if you've spent x amount of your allocated learning time on a particular topic, doesn't mean you've learned what you needed to either. The best metric you have for moving on with a course, topic, or learning resource is whether you have understood the material. In most cases, this will take a lot longer than you initially anticipate.
Explaining something to yourself out loud can be a really useful learning tool. Mostly because it's quite uncomfortable and often you quickly realise how little you actually know about a given topic.
This is a super important point too. Don't become overly obsessive about understanding something. There is a fine line between trying to understand something and then trying to memorise something. I would advise against memorising programming concepts. There is too much content to memorise. Plus, there is no need. You have the internet at hand and a plethora of resources at your fingers tips to jog your memory if you have forgotten the name of a particular array method, for instance.
What's crucial, is that you feel comfortable with your understanding of a given topic. Once you do, you should move on. Having said this, if you thought you understood a topic and moved on, only to realise - when future content became more complex - that you actually didn't understand, then you should go back and cover that content again.
Conversely, if you did understand a topic, but at some point, your future self appears to have forgotten it, a Google search will jog your memory and you'll realise that in actual fact you only needed a quick reminder.
Finding yourself in a rabbit hole is a common occurrence in the development world. Learning when it's okay to venture deeper and when you should climb back out is the real challenge. For those teaching themselves to code, try to stick closely to the topic you are covering. Just learn what you need to learn for now. It's not possible to cover everything.
Your best metric for your progress is achieving a solid understanding of your learning topics. As mentioned at the beginning of this article, for you to be able to improve your learning ability you need to be honest with yourself when you don't understand. Following the learning points above may seem time-consuming and overly cumbersome, but in reality, you'll save time in the long run. Even better, you'll gain a deep and thorough understanding of many development concepts that will stand you in good stead for a career of learning.
Thank you for reading!
If you enjoy reading my content and want to support my work, please follow me on Twitter 😊