When I get a chance, I try to dig into the "magic" parts of the tools I'm using.
I've wrote a bit on this on my blog in the context of creating a (nano) web framework similar to Rails [1]
and a (nano) http client library similar to requests [2].
I find this to help assure me that if I have to go one layer deep in abstraction I'd still be able to learn how it works.