Working in a new unfamiliar codebase is like driving in heavy foggy weather.

Even if we've done a few small fixes here and there to ramp up, we don't have a full understanding of the system and we can only see as far as our understanding of the codebase goes.

Just like we can potentially not notice an obstacle and bump into it if we drive too fast, similarly, we run the risk of breaking some part of the unfamiliar system if we make changes quickly and try to get them to production as soon as possible.

This slows us down significantly. However, on the bright side, being thrown in a ditch and crawling our way out of it makes us stronger.

This ability to work with pre-existing large systems is also useful in contributing to open source projects. There isn't anyone there to hold our hands and show us where to make changes or how to get the software up and running in our dev environment.

The more we get better at working with unfamiliar code, the easier it is for us to switch to different teams and become productive quickly.

This is something I used to shy away from but have learned to embrace it. The earlier we accept it, the better it is for our career.