During development, there are many instances where I need to read code written by others and trace through massive codebases to understand how a new technology functions and what exact role it plays. Implementing the Virtual DOM this time gave me a clear sense of how to learn from other people's code. Solidifying theory through classic textbooks and practicing by reading the code of actual services on GitHub—wouldn't this be the fastest learning method and the best study material?
However, in this process, I also painfully realized the flaws in my existing approach to studying algorithms. Because I had primarily encountered algorithms through problem-solving, I lost sight of the essence, confusing whether I was studying to pass coding tests or to truly understand algorithms. While parsing HTML into a tree structure and traversing child nodes using DFS in this implementation, I questioned, "Is this really the best way?" But knowing nothing else at the moment, I couldn't apply any other algorithm as an alternative. Failing to independently come up with an approach like the n x n matrix hash table the coach mentioned stems from the same issue. My ability to perceive the inefficiency of the current method and improve it is still severely lacking.
The short timeframe might be a reason, but fundamentally, I need much more practice in deeply analyzing long, unfamiliar code and internalizing it. Therefore, instead of getting buried in simple algorithm problem-solving, I want to see for myself how algorithms are naturally utilized in real-world engines.
For Week 5, however, I will focus on firmly establishing the core concepts of algorithms and completely making them my own. Once I finish the course, I want to start analyzing various open-source projects in earnest. I want to contribute to open source as well.