How do you accelerate learning new technologies? Well, a lot depends on your preferred learning style of course. Some learn by listening or reading. Maybe reading a book or article, or watching a video on youtube or a MOOC site.
You can supplement it by performing some hands-on activity. Maybe do a small project. Doing something hands-on helps make concrete any ideas that you have read.
Most people would do these two and stop there.
Here are two more suggestions to really kick up the speed of learning.
Write
Write a blog post explaining the concept you are learning. If not a blog post, at least short form content on social media. Even if you write in your own notebook and don't show it to anyone else, that is fine. The act of writing forces your brain to collect and organise the concept, and that's when you start finding gaps in your knowledge. It is why we took notes back when we were in college.
In programming, we have this concept of talking to the duck when we are stumped by a problem. Everyone has experienced this phenomenon where you are stuck for hours, and finally you go to a colleague and while explaining the problem to them, you suddenly realise the answer.
Why is it that talking to someone makes your own brain find the answer, which it could not do for hours before that? It all comes back to the same thing -- expressing an idea causes the brain to process the idea differently.
You can spend months trying to learn something and make little progress. But write down blog posts of each concept as you are learning and you will learn faster.
Teach
Now, if you really want to speed things up by an order of magnitude, then my suggestion is to teach the concept. Yes, I suggest teaching the material before you are an expert at it. It's the same thing as writing, it makes your brain reorganise the material, but now you have to also restructure the concept in a way that a beginner can understand it.
โI didn't have time to write a short letter, so I wrote a long one instead.โ - Mark Twain
Analogous to the quote above, it's easy to give a long, complicated explanation. It's really hard to explain something in a way that anyone can understand. When you attempt to find a simple explanation for a concept, you will find your understanding automatically improves a lot. It is not possible otherwise.
So, if you are learning something, then sign up to teach a session on that topic at a meetup or similar event. Don't wait until you have mastered a topic in order to teach it, do the teaching while you are learning it. As a bonus, signing up to teach at an event also puts a hard deadline which can be quite a good motivator ๐
A story that happened to me
This takes me back to a story that happened a few years ago. I had been trying to learn the basics of machine learning on and off for about five years at that point, and gotten nowhere. My maths was too rusty and I could not make out head or tail of the code.
Then I got contacted by a Fortune 150 company that I had worked with before. They wanted a training on Tensorflow & Keras. They had a team of data scientists in Israel. Some of the participants would be PhDs in the field. Would I be available to do the training? I had struggled for years with ML and I had never used Tensorflow before. So naturally, I said okay ๐
I found myself sitting in front of Khan academy calculus videos until I could explain gradient descent and back-propagation in a simple way. That little extra step of filling in a hole in my understanding was enough. What could not happen in five years, I was able to complete in a few weeks. The class went off really well and I conducted five more Tensorflow classes at that company over a period of two years.
You do not have to be an expert to teach a class
What this goes to say is that No, you do not have to be an expert to teach a class. You just need to know the few concepts that you want to teach. And the act of preparing those concepts for teaching will itself make you understand it much better, and much faster than normal.
Try it out. Take a topic that you are currently learning, and sign up to do a talk on that topic at some upcoming event or meetup. Then post in the comments how it went ๐