Let me start with a quote from wonderful person James Edward Gray II:
One of my favorite techniques for really learning a new language is to read the core API like a good novel. I’m a hit at parties!
I’ve had great success with this approach as well. I probably read the majority of Rails, the source of every RubyGem I used, and chunks of Ruby’s standard library in my first few years of working with Ruby. I picked up new tricks, figured out how things worked, and got myself out of a lot of tricky corners by reading code.
That we can do this is, to me, the real wonder of working with an open source stack. If I’m curious, I can dig into the framework, language, database, compiler, and operating system I’m using. If something goes weird, I can dig into it. I probably won’t end up changing or fixing anything below my app in the stack, but the ability to peel back the layers is a huge deal.
Given the choice of digging into why software sometimes goes weird and complaining or giving up, always chose digging into the source to see what’s going on.
When you work with open source software, you can always chose to figure out what’s going on around your app. Eating at the source code buffet is awesome!