The Art of Learning
Tags: career, productivity
Published: 2020-08-30 17:52:57

__Disclaimer :- The post is bit big__

In the world of programming there are lots of languages like java, python, c++ etc, concepts like Data structures, Algorithms, Databases with frameworks like Django, React, Vue, Flask, spring and many more uncountable things are there. This field demand us to learn more than one language or framework and we go towards it.
we try to learn the things as quick as possible. we want to see our self making the things quickly. so we start learning through tutorials, books or articles whatever is convenient.
And we go on learning from one topic to another, than another than another and the loop continues. But while doing so sometimes (in case of newbies many of the times) we forget that we clearly need to understand the topic not only understand but to practice also and we continue to move from one topic to another.
After finishing the topics we wanted to learn, when we turn back or we go for the interview, we see that we lack the understanding of many concepts. we intend to think that we need to start over and in many cases we have to start over, and this loop continues until and unless we really come to know the things and this in most cases make us an under confident person. 
**So how to Overcome it**
Most of us have heard about the **_The Art of Learning_** book. In this book the author has taken the **depth first approach** instead of **breadth first**. 
The author has mastered two skills through this approach(chess and Tai-chi) and it takes lots of effort, determination and consistency. 
We also can use this _depth_ approach to understand the programming concepts at a very deep level and then we can move to another concepts once we are comfortable with the current technology. 
Suppose we start leaning a framework like Django, so then how we can **proceed**? When author was learning chess he used to practice almost every **possible moves** through each **piece**. In the same way we can try many different moves with each technology (in this case Django) like creating the login-registration page or some other crud application. And when you do certain projects than you start to develop the habit of thinking the big picture with small steps. In this way by creating several projects on your own, you will drill yourself more and can reach to the level where you know many of the things. With time the more projects you do the better you become, but remember doing every project in the same way won't let you drill yourself much, instead try to take different approaches, through that you can learn the most efficient ways to do the things. When you are comfortable with that specific concepts than you should move towards other technology whatever you wishes to learn. The same thing can be done in learning everything whether programming or sports or some other thing.
The key is to be consistent and have patience while learning instead of rushing. Try to focus on depth instead of just learning everything in short span, even if you have less time. 

Note:- Just going through tutorials and doing the things in  project that author makes, will keep you in __tutorial purgatory__ and won't allow you to expand yourself because we just want to finish the things quickly so we have to come back again and again. So be patience and take time to learn the things instead of rushing through it. I am not saying that you should not take tutorials instead take tutorials and try to do the things by yourself also.

If you guys follow the same approach or some other ways also please let me know. It will be very much valuable to learn different ways of learning.