DEV Community

Cover image for Improve your learning ability to help you learn to code
James Robinson
James Robinson

Posted on • Updated on • Originally published at thefrontendcoach.com

Improve your learning ability to help you learn to code

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.

Start with honesty

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.

Improve your learning process

Now you're totally cool with being honest with yourself. Whatever you're currently learning there is always an improvement you can make to your processes (or lack thereof). For instance, let's say you want to teach yourself how to code, with the end goal of becoming a front-end developer. Let us assume you have a solid grasp of the fundamentals of HTML and CSS but now you wish to learn JavaScript. You decide to follow some online tutorial courses. The courses (like many) are structured as a progressive learning experience, i.e. you start with the very basic foundational concepts of the language and gradually move on to more challenging, tricky aspects. Whilst you rattle through a particular course, you are probably encouraged to build small, contrived projects as you go, and by the end of the course, you may work toward building something a little more substantial with the focus being to build upon the concepts you have covered during the course.

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:

1. Make notes as you learn

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 let and const:

  • let and const are block-scoped
  • If I want a variable to be reassignable I should use let
  • When I do not intend for a variable to be reassignable I should always use const
  • Using const will 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.

2. Practically apply what you're learning

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 const.

A screenshot of the Google developer tools console

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.

3. Don't let time or fancy completion badges become your metric for progress

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.

What do I mean by understood? In my opinion, this means that you are able to verbally explain out loud the topic you're learning (this can still be fairly broad) and additionally, be able to explain this with code. Using our JavaScript variable example above, could you explain those concepts to yourself verbally? Could you also demonstrate that you understand said concepts with code in the console too?

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.

4. Once you have understood, move on

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.

5. Beware of the rabbit hole

Looking up, out of a hole toward the sky

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.

Using our JavaScript variable example above, you may find your research leads you to a variety of other concepts. Maybe your research lead you toward an important concept in JavaScript called 'scope'. If you have no understanding of scope at this time, it may be best to move on for now and come back to this more advanced topic when you are ready. Do note, I'm not saying you shouldn't learn about scope in JavaScript, I'm merely suggesting you focus on learning one topic (if you can) in detail at a time.

Final thoughts

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 😊

Top comments (0)