I recently changed jobs, and in this new company we are working with a different tech stack than I was used to.

I had to quickly learn the new technologies and it was a challenge.

Being a self-taught programmer, I already knew what I had to do and how to learn efficiently and quickly.

In this post, I will go over ten rules that I follow whenever I have to learn something new.

Recall what you’ve just learned

After going through a chapter or coding exercise, do something else and remember the main ideas of what you learned.

Try recalling them when you are doing mundane activities like doing the dishes, going out to the store, or taking a shower.

The ability to recall new things you learned will help you cement them in your mind much more easily.

Actually write the code

Imagine you are watching an awesome Laravel tutorial on YouTube.

Now you’re already 2 hours in and can’t remember how the author got the database connection up and running.

Now you have to go back to that specific section and re-watch it.

What a waste of time!

Write out the code as you go along with the tutorial you are watching or reading. If you cannot keep up with the pace, press pause, solve the issue or coding challenge, and then resume the video.

Chunk the ideas and problems

The idea of chunking is to understand and practice with an idea or solution to a problem to the point where you can recall it in a split second.

Once you have learned a new programming concept, take some time to repeat it. Imagine a song about it and try to sing it in your mind over and over again.

The information will turn into a chunk and you will be able to make a connection and pull it up whenever you want.

Train your mind like you would train your body

If you want to build muscle, you will need to train your body a little bit every day.
But you wouldn’t want to train just one muscle group 7 days a week. It will not grow as much as you would like it to. Muscles need time to grow. The tissues need time to regenerate and grow in mass.

So one solution is to split your workout into muscle groups. On day one you train legs and abs, day two the chest, day three the back, and day four maybe the arms.

That’s what you should do when you learn.

Spread out your learning a little every day, just like a bodybuilder. The brain is like a muscle – it can handle only a limited amount of exercise on one subject at a time.

Try to split your learning routine into something similar to muscle groups:

  • Database management day (SQL/NoSQL)
  • REST API day
  • Web Design day
  • Functional JavaScript day

Mix up different problem-solving techniques

There is no one single way of solving a problem, that’s for sure. When you have a task and your way of solving the problem doesn’t seem to work very well, try a different approach.

Mix things up and see if you can come up with multiple solutions.

After every solution you have implemented, go over your errors and make sure you understand why you made them. Then, work on improving the code.

Take breaks

From my experience, it is common to be unable to solve problems or grasp concepts the first time you encounter them.

Sometimes you get frustrated that you've been stuck on a problem for so long, and it seems like you cannot figure it out. This is the ideal moment to take a break.

Let your mind relax for a while. You’ll find out that sometimes the solution to your problems comes in your sleep, or when taking a bath.

This is because a part of your mind is working in the background, figuring out things you might not be able to when you're focused

Explain Like I’m Five

Have you ever heard of this concept “Explain Like I’m Five”? There’s even a subreddit for it. And it's a pretty neat mental exercise.

Whenever you are struggling with a concept, ask yourself, how can you explain this so a 5-year-old could understand it?

This exercise will make you think about how to simplify an answer using analogies.

For example, how would you describe a database to a child?

I would say that a database is like a bucket or a toy box.

You organize your apartment or house by placing all the toys inside the box. Otherwise, the toys will be all over the place and you won’t be able to find them easily when you need them.

The database solves all of these issues.

Maintain your focus

I bet you’ve heard this a thousand times before. This topic is full of opinions and advice, some more unusual than others.

When working on a problem, try to focus on that task so you're as efficient as possible.

It's up to you to figure out how to focus on something and maintain it for a while.

What I’ve found that works for me so far is to turn off all interrupting beeps, alarms, and notifications on my phone and computer.

Besides this, I like listening to music that helps me focus. I found that I focus very well while listening to music that has no lyrics, like post-rock.

I’ve created a special playlist that I listen to when I’m programming or stargazing.
Check it out here.

Do the hardest things first

Take advantage of a rested mind and do the hardest thing earliest in the day.

There are some good reasons to do it this way.

You will feel better during the day after getting rid of that unpleasant thing first.

Harder things take more effort. By doing the hardest task earliest in the day, it will help make sure you’ve got enough time to complete it.

Also, this makes it less likely that you'll postpone the hardest task for the next day.

Motivate yourself

Sometimes you feel like the work you are putting in is not getting you anywhere.

This happens to everyone from time to time. You are not to blame, honestly.

If you want to stay motivated, make yourself feel like you are making progress.

No matter what’s happening in your life, always have one thing you’re making progress with, so you feel good about it and yourself.

For example, if you want to learn JavaScript, make it your number one priority.

Every day you should read a few pages of your favorite JavaScript book or work on personal and/or open-source projects that rely on JavaScript.

If you want to read more tips on how to keep yourself motivated as a software developer, check out this article.

Follow me on Twitter @pelu_carol and say hi!