🧠💡 Studying can be a complex challenge, filled with decisions about what, how, and when to learn. A thread on some thoughts I've had on the subject.
A few months ago, I had a conversation at work about how far you should or ought to go to acquire new knowledge. The context of this conversation was precisely the question: How far should one study a codebase when we were going to maintain only the surface of the application. We all know that certain areas are so complex or have so many ramifications that it's impossible to learn everything, or it will take a lot of time. Eventually, you will have to make decisions about what to learn and what not to learn, whether to become a specialist or a generalist.
At the time of that conversation, I made a comparison between studying and decision trees. And this is an idea I would like to share.
You might wonder what a decision tree is? Decision trees are models that use a branching structure (nodes and leaves) to represent a series of decisions and their possible outcomes.
Start by identifying what you want to learn (or a problem you want to solve); this is your root node. From there, it is necessary to branch into sub-areas, which are the child nodes. Each branch of the tree represents a study choice: which topic to review, which resource to use, or how much time to dedicate to it.
Once that's defined, you need to weigh the paths, and this choice should be as quantitative as possible. Note that I mentioned some possible metrics above (whether the topic has resources, the time you have to study, etc.), but you can and should create other metrics. This will help you acquire certain knowledge (like learning a programming language, for example) and choose the "best" path to follow.
Of course, there is another concept that I brought up to my coworker, known as pruning, which would be the act of pruning the tree, i.e., removing branches that are not useful, necessary, or relevant. And pruning is very much in line with what can happen to any student when learning something; many branches may be unnecessary, or not so relevant, but they end up deviating you from the path, making it longer (causing discouragement or dropout). Therefore, it is also essential to revisit the decision tree, and regularly "prune" the branches that are no longer useful or relevant, as this will help you maintain focus on still relevant areas and efficiently allocate your time.
Like everything in life, your decision tree for studies can (and should), be adjusted based on learning, because learning is not static but dynamic.
I understand that making this type of tree is complex and time-consuming. I have been using ChatGPT for this, to organize ideas, develop study paths, and time dedicated to each topic.