When we talk about getting better at programming, we often talk about testing, writing reusable code, design patterns, and readability. All of those things are important. But in this blog post, I want to talk about a different way to get better at programming: learning how the systems you’re using work! This is the main way I approach getting better at programming.

Once again, Julia Evans has great sensible advice up on her site.

I appreciate her note on how today we work with so many complex systems that it is next to impossible to understand all of them. The experienced developer comes at peace with that, acknowledges ignorance, and, more importantly, understands when it’s worth digging deeper. In other words:

Being a senior developer is less about knowing absolutely everything and more about quickly being able to recognize when you don’t know something and learn it.