🧠 The Art of Learning Stuff Quickly
Tags: beginners, productivity, codenewbie, webdev
Published: 2023-03-16 18:39:38

## Techniques for learning new programming skills faster and remembering them!

---
It’s hard to remember now, but there was a time before the Internet 😱.

A time when learning meant poring over textbooks, attending lectures, and scouring libraries for the right resources.

As a learner in this day and age, it's hard to imagine a world without the vast wealth of knowledge and information available at our fingertips. But even with the world wide web at our disposal, learning new programming skills can still feel like a daunting task.

And learning anything fast can be just as tricky now as it was back then.

The technology landscape is constantly evolving, and staying on top of the latest trends and tools is essential for staying relevant in the industry.

Yet, with so much information out there, how can you possibly keep up?

Learning quickly and efficiently is very important as a programmer. The ability to gain new skills, be it in new tools, coding languages or frameworks, is the essence of the job - **_it’s what we do best!_**

In this article, I’ll explore the art of learning stuff quickly - specifically, techniques for learning new programming skills faster and remembering them.

And I’ll share insights into how I pick things up more easily by learning _**how to learn**_.

Let’s get cracking!

## The Traditional Methods of Learning

To gain a better understanding of how to learn, let’s look at traditional methods of learning.

Typically there are two main methods of learning: **Guided** and **Unguided**.

Guided learning is often associated with classroom-based education, where teachers provide students with a clear curriculum, assignments, and assessments.

Guided learning is effective because it provides a clear structure and direction for the learner, and the teacher can adjust their instruction based on the learner's progress.

Whereas, unguided learning is often associated with self-directed or informal education. This could include reading books or articles and watching videos or tutorials.

While unguided learning can be empowering and allow for more freedom and creativity, it can also be challenging without the guidance and support of a teacher or mentor.

> I’m teaching myself how to code, what does this mean for me?

Well actually, if you are teaching yourself how to code then these methods shift slightly.

Guided learning turns into anything where you are following a guide: from books, watching YouTube videos or following a tutorial. You are _**learning from someone else**_.

Unguided learning will then be **_created by you_**, the learner. This could be in the form of building your own projects from scratch, taking a deeper dive into documentation, debugging code or anything else that allows for exploration without a guide.

You will need to find the perfect balance between guided and unguided learning methods if you want to pick things up quickly.

Relying too heavily on guided learning will keep you in [tutorial hell](https://dev.to/evergrowingdev/5-interactive-learning-platforms-to-get-you-out-of-tutorial-hell-10k0), whereas purely unguided learning may slow you down as there will be a longer learning curve without some sort of guidance.

So let’s look at how to find that perfect balance.

## How to learn things quickly

As a self-confessed ever-growing dev, I’m always learning new things. But only in the last couple of years or so have I really managed to figure out the art of learning stuff quickly.

Here are 5 techniques that I practise for quicker learning:

### 1. Build a habit of continuous learning

In the past, when I wanted to learn a new programming language, I would find an online tutorial and go through a few chapters that day.

I would then feel happy and accomplished, but wouldn’t continue the next day. Due to life and other commitments, I would probably go back a few days later.

Then stop again and maybe this time it's a few weeks later before I jumped back in.

Sounds familiar?

The issue here was that I wasn’t building _**a habit of continuous learning**_.

There was no habit at all.

They say it takes [21 days](https://lovewellness.com/blogs/love-wellness/love-wellness-21-90-rule) to form a new habit, and 90 to make it part of your everyday routine.

Once I discovered this, I made learning to code a practice for each day.

To build a habit of continuous learning you should make learning part of your **daily routine**, just like exercising or eating healthy.

What’s more, when you practise every day you save cognitive energy in your brain, meaning you don’t need to waste time remembering the things you were learning before because you pick up right where you left off yesterday.

Through this, I have found that I retain a lot more information from learning for 30 minutes for 5 days in a row, than sitting down and learning for 2-3 hours in one day.

Of course, you can take days off, but treat these as you would do a cheat day from eating healthy, or a rest day from the gym - and get right back to it!

### 2. Fail with purpose

As I like to compare, failure when learning to code is like learning to ride a bike. If you fall off, you dust yourself off and get back on again. The same applies to coding, if you make a mistake or get a bug, you try something else - it’s all part of the process.

The great thing about code is that the more you **fail**, the more you’ll **learn**.

When something doesn’t work with my application, the first thing I’m going to do is research or Google the problem. During that research phase, I’m going to discover new things to try out.

Sometimes I even **_fail with purpose_**. What I mean by that is when I’m following a tutorial I might experiment with the code provided. By changing some values, or commenting out some lines to see what breaks, it can be useful to understand how it’s functioning.

To actively do this, the next time you do a tutorial, create your **_own experiment_**. If you think you understand a block of code, test out that theory by changing it to see if it breaks. Then do some research on it and take notes.

No need to spend too long doing this, as the purpose is not to get lost and become frustrated, you’re simply trying to deepen your level of understanding by testing things out.

The purpose of failing during your learning journey is to learn from those failures to discover new things and avoid making the same mistakes.

### 3. Save to memory

The older I get, the worse I’ve noticed my memory gets.

Yet at the same time, it’s my memory that has saved me time and time again when solving coding problems.

The ability to look at a problem and recall where you’ve seen something similar and apply the same solutions is paramount to being a successful developer.

You don’t have to have an excellent memory to be good at recalling information. The brain is wonderful at looking for cues that trigger things we’ve come across before without realising it, as it’s all down to _**repetition**_.

Just like how habits are formed, the more we repeat something the more it becomes ingrained in us.

One technique for strengthening memory through repetition is known as **spaced repetition**.

Spaced repetition involves reviewing information at increasingly spaced intervals over time. The idea is that it helps commit information to long-term memory more effectively by reinforcing it at the right intervals.

I won’t go into the details of this technique, that could be a whole other article in itself! But if you want to know more you can check out this [article by Leon Ho](https://www.lifehack.org/851026/spaced-repetition), Founder & CEO of [Lifehack](https://www.lifehack.org/).

I will quickly touch on one other way which helped me to memorise things during the learning process.

Whenever I’m following a new tutorial, I’ll code along for a while and then stop and delete everything. I then try to write the same code again from scratch without looking at the tutorial. If I get stuck, I’ll go back to the tutorial just to fill in the gap, but then close it again.

Doing this repeatedly until I can write the whole thing without looking.

Again, repetition **_saves_** memory whilst **_saving to memory_**.

### 4. It’s all in the Mindset

If you think you will never be good at coding, you are probably right.

I don’t mean to sound harsh but a massive part of learning to do anything well starts with your _**mindset**_.

Cultivating the right mindset will set you up on the path to success.

Think about a time when you first tried something that you weren’t very good at. Now one could say you weren’t very good at it because it wasn’t the activity for you. Some people are just naturally good at certain things and others aren’t.

However, let’s flip the script. Imagine you practised that thing every day for a year and by the end of the year you were much better than when you started.

Your determination and deliberate practice is what made you better at that thing.

Programming is no **different**.

Deliberate practice alongside a growth mindset that focuses on learning from mistakes and failures, and being open to new ideas and approaches is what will make you a successful developer.

Nobody is born great at anything - maybe good, but not great. Even the best singers in the world train their voices vocally in some capacity.

Greatness comes from within, when you learn to think you are great, _**you will be great**_.

### 5. Learn in Public

Too much consumption is destroying your learning.

What I mean by this is that there are those who only consume content and there are those who **_create_** it.

If you only consume then how will you know how good you really are?

Think about it this way, can you recall a time when you tried to explain something to someone only to realise that you don’t know the topic as well as you thought you did?

I know I have.

And that’s why learning in public is a great way to practise _**solidifying**_ what you have learned. The act of explaining something to others deepens your own understanding and retention of the material.

Learning in public can take many forms, such as blogging, creating YouTube videos, or participating in online forums. The whole concept is about sharing your learning journey with others.

This article you are reading right now is my form of learning in public. I want to share my knowledge whilst learning more alongside you.

However, learning in public is not just about showing off your skills or knowledge. Here are some other benefits I have found:

- **It helps you overcome the fear of failure and perfectionism** - By sharing your mistakes and struggles, you can normalise the learning process and help others feel more comfortable with their own learning journeys.

- **It helps you stay accountable and motivated** - Knowing that I have to send out a weekly newsletter keeps me focused and dedicated to my learning journey.

- **It helps to build your network** - You get the opportunity to get feedback from others, build connections with like-minded people, and even create a portfolio of your work that can help you stand out to potential employers.

You can share anything, even if it’s some thoughts on Twitter, as long as you create more, you will learn more.

---
Wow, I know that was a lot but this is one topic I’m passionate about as I know how it feels to not feel like you are learning fast enough.

So if you made it this far, you are awesome!

Hopefully the techniques I’ve shared will set you on the right path for quicker learning; through habit, failure, remembering, creating and sharing.

All the best!

From your fellow ever-growing dev,

Cherlock Code

---
💙 **If you liked this article...**

I publish a weekly newsletter to a community of ever-growing developers, seeking to improve programming skills, increase productivity and share knowledge within the exciting sectors of Tech, AI and Web3.

Get more articles like this straight to your inbox.

[Let’s grow together 🌱](https://evergrowingdev.substack.com/)

And stay in touch on 🐦 [@evergrowingdev](https://twitter.com/evergrowingdev)