Table of Contents
I’m a pragmatic person. Sometimes, very pragmatic.
At the beginning of my programming journey, I obsessively saved every new resource(e.g. articles, videos) that I would stumble upon. Then, when I looked at the immense pile of resources that resulted, I felt overwhelmed. At the same time, I felt that I really wanted to explore those resources. However, there is only so much time in a day. Not to mention that properly learning about a new topic also requires a great deal of effort.
I deeply knew that I would never be able to go through all the saved links. But, it may not be necessary to do so in order to become the best developer I can humanly be.
Now that I have acquired some more experience in programming, I realized that, when it comes to expanding one’s knowledge, it’s better to follow one certain path at a time. At a time might simply mean a day, a week, a month or more.
Since I’m a fan of thorough knowledge, I thought myself: If I really want to learn about the topic X, then I will set up some time when I’ll essentially ‘devour’ information from the Internet. So, for example, although I find it interesting to find out the how TCP really works, watching a few videos today and then having a break of 2 weeks does not actually bring any benefits. Instead, I could set up a few weeks when I’ll be studying about TCP in my free time, while also making sure that I get some practical knowledge as well(e.g. implementing the protocol myself).
My strategy(and hope) is that, as my knowledge expands more and more, the dots will eventually connect.
My preferred approach to learning would be to follow a certain direction and deeply learn things along the way. I can always switch paths(which it’s hard not do to - there are so many interesting topics to learn about), but I make sure the switching frequency is not disruptive and does not affect the learning experience.