Joining a project with an established codebase is tricky. There’s a significant amount of information to absorb, there may be new technologies to learn, and there’s usually a lot of code to read! These are five techniques I’ve used for finding sure footing in a codebase as a junior developer.
1. Survey the Codebase
Take a look around. Consider which technologies are being used, which build systems are set up, and which tooling is in place. Check out the project’s dependencies to get an idea of how much outside code is included in the codebase. Use this time to mentally catalogue anything you may need to learn to get up to speed on the project.
2. Pick One Thing and Dive In
While initially, you may need to learn a bit of everything, I find that picking one area of the codebase at a time and focusing on that is helpful when tackling a new project. Pick something that is a challenge, but narrow enough to maintain some focus. For example, spend some time growing your knowledge around just the front-end technologies of the app. Take the time to understand that area well before attempting to expand your knowledge further.
3. Take Notes
If you find that something doesn’t make sense or you catch yourself asking the same questions over and over again, take notes! I always keep note cards and sticky notes handy at my desk. There are a few architectural patterns in our project that didn’t click right away, so I sketched them out on sticky notes and attached them to my monitor. Anytime I’m working in a part of the app that follows the models, the sticky notes work as a reference guide for quick review.
4. Don’t Get Too Comfortable
Once you’re feeling settled in to a part of the codebase, keep pushing yourself to grow. If you’re comfortable in the front end of the codebase, look for work that you can take on in the back end. Picking one thing at a time doesn’t mean staying on that one area forever. In order to round out your skills, it’s best to keep exploring areas of the app that you don’t know well.
5. Advocate for Work that Helps You Grow
Growth doesn’t happen without intentional effort. My team often sends me work that they know I can handle. This is great! It feels nice to be able to contribute and not have to ask for help as often. But I know I need to keep growing, so I’ve asked for some work assignments on tasks that are outside of my comfort zone, too. Now that my team knows I’m interested in these, they’ve helped me keep an eye out for work that will let me learn some new areas of the application.