You think developer success is defined about how much harder, better, faster, stronger you work? Well it isn’t … there can be only one, and it is smarter.
Don’t work harder, work smarter
Once you reach a certain level in your language/framework it is easy to get stuck in work mode - just working, no learning. I always try to dedicate one portion of my day to research and learning. It is important to always learn new things and improve your craft because it can save you time. What you can do in an hour with today's knowledge, maybe you can do in half that time with a smarter solution to your problem, different mind-set, better project architecture, a library that you didn't know about etc. That is why it is important to never settle and always improve.
Better and faster is for beginners, code smarter
When you first start working you think that if you code better or faster you will become a better engineer, but that is not true. A developer has much more skills that s/he needs to practice in order to become good. Teamwork is one of the most important skills to have. Communication with developers, testers and designers is very important. Always learning and improving your craft is a must. Staying focused while a very hard task is presented to you. And one last thing - Having fun while doing it all.
Stronger is boring, smart is fun
To me, the most important thing when discovering a new codebase is to keep things interesting and maintain motivation and focus. You can do this by not forcing yourself to understand everything in the beginning. The smart thing is to pace yourself. Start with one class or one method and understand that piece of code fully. Once you see the bigger picture behind the codebase, shake things up to keep from getting bored. Try making small changes or create your own, easy tasks and try to do them. Keep it fun and in time that codebase will feel like home.