I've read 21 books about how to become a better developer, and they all pointed to one thing, complexity. Your ultimate job as a developer is to manage complexity, the complexity of the applications and the code bases you are working with. Expert developers are masters at managing complexity. Not because they have infinite memory to store all the details of the code they are working with, but because they understand the two main sources of code complexity and they use them to their advantage.
Number one is the number of modules in your code base, the parts of the system. And number two is the number of connections between those modules, the inter-connected parts. And every software architecture book will tell you the same thing. The more you can limit the number of modules and the number of connections in your code, the easier it will be to manage complexity and therefore to maintain and extend that code base.