How to learn things fast without going crazy
Tags: programming, productivity, tutorial
Published: 2022-01-06 21:12:54

As people who work in the tech industry, we often need to learn new technologies for our work.
With time I found myself struggling with the same points over and over again:

**1.The Tutorial Hell** - with the amount of information out there it's easy to get lost very quickly. Another tutorial and then another one. At some point I have found myself just watching tutorials, instead of actually building my own things.

**2.Long Form Of Content** - long courses are great, really, I appreciate the time people put into those courses. The problem for me with a 12-40 hours course is that it's too much to invest in the tutorial stage, when **in reality you want to start building your own things as fast as you can, because the best way of learning is by doing.**

## The Solution
The solution that I am about to propose is around one core idea: **Learn the general idea fast, and then gradually deep dive in**. From that perspective I built myself the next steps:

**1. The Crash Course** - I usually go to youtube, search for the subject that I'm trying to learn and add 'Crash Course' right after and pick one of the results. With time you might see that you already recognize the youtuber that created the crash course. You might also not see the term 'Crash Course' in the title of the video, but you can see that the video is short enough to be like a crash course.

Crash courses are great because they give us the big picture of what we are trying to learn, but they don't take very long to finish.

My personal rule of thumb is to **pick a crash course that does not take more than 5 hours to finish.** Most of them are much shorter than that.

**2. The Personal Project** - The idea is very straightforward: you learn by doing. **The goal is to build the must simple project that concludes the ideas learnt in step 1**. In this stage, all you need to care about is to see how you can build something alone based on what you saw.

It is important to build a different project than what you saw on step 1, even if the difference is small, it's still better than the same project. When you build something different it's actually make you think about the materials you learned, and not just copy-past it from the video.

It is important to say that you don't need to re-invent the wheel here. For example: if you lean Vue.js and decided for a project to build a todo-list(shocking), and now you want to learn react, it's okay to just build another todo list.

The goal here is not to get super creative with project ideas(which can be very fun though), but it's applying the new concepts and ideas we learned. **Remember: you can build the exact same project, but with different technology.**

**3.The Deep Dive** - ok, so now you have the general understanding of the technology. Now it's time to level up, and basically try to know everything you can about that technology. For me it means **get to know the entire power of the technology beyond the basic use of it, and if possible, how does it work under the hood.**

The first thing that I would do is **go through the documentation.** There are multiple benefits to this: The documentation contains the most updated information about the given technology, subjects that are not covered in other places, and how the creator of the given technology is thinking.

After that you can go in any direction you want. That is also the time to bring the 'Heavy Guns' like those 40-hrs long courses, or build big and complicated projects which use this technology.

So this is my personal two cents on learning new technologies. I would love to know your thoughts about this subject, and your own approach to learning new things.