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, 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 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, Founder & CEO of Lifehack.
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.
And stay in touch on 🐦 @evergrowingdev
Top comments (5)
Your learning post is really motivating! I like how you reveal the need of improving habits, memory, and mindset. Your thoughts and solutions have given me new thoughts to my own learning adventure. Thank you very much!
Thank you Pinjari, I'm glad this post has motivated you and given you new ideas for your learning journey. I wish you all the best on your adventure!
Yup!
Great post, and so relevant to me right now. I am currently learning new languages as way to grow professionally, and I chose learning them in public (on here!) for the reason that I want to overcome that fear of failure and perfectionism! Thanks for the motivation and guidance!🙏
Thank you Nick, I'm glad you found some value in my post. I wish you all the best in your learning journey - keep going!