Learning how to learn

You have chosen a framework, language or a stack you want to focus on. You are ready to go but… you should not forget about the most important thing about learning something new: Learning how to learn

A common mistake in the programming world is not having a plan at all (and I used to do it quite a lot) while learning new technology.

How many times did you just bought a video tutorial, watched the videos, then you tried to create a new project just to abandon it the same day because you can barely remember the basics?

As I said, I used to do the same. Crunching tutorial after tutorial thinking I was learning a lot but I couldn’t do more than a To-Do list, with a lot of googling.

But then I started looking how to be more productive while learning: I applied some of the ideas I found, tweak others and ignore the ones that didn’t work for me and I want to share with you what I believe it’s the best way to learn anything.

First steps

My first approach, while learning any new technology, is to normally use tutorials (This may come in the form of video, books and/or official docs).

I like this because it gives me a general idea about how to structure a project, how the language works, and it concentrates the knowledge of an expert in just a few hours.

It gives me a scaffold to build something from.

While doing a tutorial, especially if it’s a video-based tutorial, CODE ALONG with the teacher. Nothing builds more muscle memory that actually coding; reading or watching it isn’t good enough.

An extra tip: Once you’re done with a chapter or topic, stop the video or leave the book aside for a moment, and play with the code.

For example, if you just learnt about for loops in Python, modify the code, try to break it, make it work differently, see how different arguments produces different results and you’ll understand not how to use it but also how it works.

Create a small project or file and try to make it work by yourself. Play around again with the code. Don’t just watch an 8-minute video about a topic: Use it.

Read the official documentation about what you just learnt. Learn what it does behind the scenes, what parameters you can pass, when you should use this instead of other alternatives, when you shouldn’t use it, etc.

Tutorials are not a race: You won’t get a medal if you finish fast a course.

In fact, it would be detrimental to your knowledge if you don’t play with the code after you learn about something new. You are doing tutorials to learn, not just for the sake of it.

But there is a thing you want to avoid, and that is…

Tutorial purgatory

It made me chuckle the first time I read about it because it was just what I was suffering without knowing it.

Tutorial purgatory is that place in your learning career where you finish a tutorial, and then…you just buy another one. And another one after that. You do nothing but tutorials.

Don’t get me wrong: As I said, tutorials are a good tool to start learning something new. Tutorials are safe. They tell you what do you need to do and you feel like you are learning a lot and you are productive.

The problem is that tutorials give you a way to solve a problem. If you do the steps in that precise way, you solve the problem, but in real life, you normally don’t face that problem in that way.

A tutorial can teach you how to create a PostgreSQL database, but what if you are using a Mongo Database?

When you are done with the basics, don’t just go to the next tutorial. Because now it’s time to…

Create your own projects

Yes, that scary thing.

Now you are not applying only a portion of what you learnt in a safe environment provided by your teacher. Now you have no instructions, no steps of what to do. You are facing an empty text editor with a blinking cursor.

But that’s what it makes great.

Everything you have learnt until now, now it’s time to use it.

Creating a project without training wheels is what makes you really learn. You don’t have anyone hand-holding you this time. What you did in 1 hour of tutorial now takes you the whole day. If you are lucky.

You feel stupid and your brain starts telling you to go for another tutorial. Or just to drop it.

Don’t. Just build something small. Then start adding small features increasing its functionality.

You will be slow at the start, googling for almost everything. But this way, doing it by yourself, it is the best way for you to learn.

Scratch that.

It is the ONLY way you will learn.

Try to finish a small project, and keep adding more features and once you are done, share it proudly with the world.

Yes, it will be hard, you will be tempted to go for “just another tutorial more”, but you know that this is the proper way to learn. If you have a problem with something, google for it and keep going forward. If you face a problem you can’t solve, it is time to…

Ask for help

We are lucky to be learning right now. Free online courses, ebooks, documentation, blog posts… helps you a lot.

But you have another tool: Asking for help.

I found that many people avoid asking for help as if it was a disgrace to ask other people to help in a public forum designed to help people. It is not.

There are people that know more than you and there are people that know less than you. The sooner you accept it, the better.

When you are facing a problem in your code, it is very probable that you are not the first human in the whole world that has faced it before.

In fact, learning how other people with more experience than you have solved it is a good way to learn how to solve it in a professional way.

Ask a co-worker, friend, teacher or a stranger at StackOverflow or Reddit to help you. You will solve a problem that would take you hours to solve in just a minute, in a professional way. Not bad, right?

Summarizing + the Pomodoro trick

So now we know that a good way to learn about a topic is to get some tutorial, code along, play around with the code and reading the docs about the topic before moving to the next one, then creating projects and ask for help when you find a wall.

But how to silence that voice that tells you to stop everything and check your email and your social networks (once again) that makes you lose hours and hours of productivity a day?

I use s Pomodoro Timer.

You can tell yourself that you are going to crunch it for 4 hours without stop all you want: it won’t work. And if it does, the efficiency won’t be great as your brain need to rest and assimilate what you learn.

A common trick is to use the Pomodoro technique (more information here):

Set up a 25–minute timer. Work on that task (learning) for 25 minutes. Not opening a FB or Twitter tab, not checking your phone. Nothing else but learning.

After 25 minutes, you are allowed 5 minutes of rest. Get a glass of water, check your phone… do what you need to relax.

After those 5 minutes, set up a 25-minute timer again. On your 4th Pomodoro, you are allowed to a 10-minute rest. Then start again.

Keep doing this “25 min work — 5 min rest” balanced formula. Just remember, not checking the phone!

Bonus tips

I asked my Twitter followers (Feel free to follow me!) for tips while learning and I got some interesting answers:

This is why I said that Tutorials are a good idea as it gives you a structure of what to learn. Remember to avoid the Tutorial Purgatory.

I never take notes but just yesterday I read about how you remember more by writing something down in a paper than with your keyboard, so this is good advice. Also, stop and see how what you just learn affects the big picture.

Changing the code to see how the output changes with it help you to ‘get’ it. Don’t speed-run your learning process.

Remember too that you don’t need to learn every framework existent to become a good programmer. Enjoy your time learning and don’t push it. And do be discouraged.

What do you use to learn fast? I would like to see your tricks and hacks at the comment section.



Valencian Full Stack | Python | Django | DRF | Javascript | Vue | Flutter | Creator of http://letslearnabout.net/

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store

Valencian Full Stack | Python | Django | DRF | Javascript | Vue | Flutter | Creator of http://letslearnabout.net/