A lot of the modern web feels like magic. With so many indirection layers piled on top of each other and with the prevalence of web frameworks as a vehicle to increase productivity, a lot of modern software has actually become a black box in the sense that when we leverage them, we are essentially acting as consumers of a specific API that encapsulates what can be very complex abstractions beneath the surface.
I think that in order to become a more effective engineer, it's critical to actually put in the time and effort to go and read the code. At a deep level. Not only the top API layer but at least one, preferably two layers down.
By reading the code that is powering the frameworks we are using we can get more knowledge and gain more flexibility because we can better understand and leverage some things at the top levels that we otherwise wouldn't be able to grasp.
There are several strategies to accomplish this and it's worth noting that they aren't mutually exclusive, so, in fact, we can apply them all in combination to extract the maximum benefit from this approach:
if using open-source libraries, prefer to use an editor like IntelliJ and a build system like Maven where you gain navigation capabilities to navigate directly into the internals of any library or framework you are using as if it would be your own code;
explore official repositories available publicly at GitHub, for example, to learn the motivations behind certain design choices and how they can shape up the way you will think about your code, this is also a way to get to know the maintainers which is always a great plus!
Next time you need to use a new library or framework, remember to go deeper than before anf you will be surprised with just how much you can learn!