When starting a new job as a software engineer, you need to quickly get up to speed in the new codebase. This will be different, depending on the type of company, but first of all, you need to understand exactly how things work there to be able to determine how to make an impact.
You would probably not be expected to contribute code from the very beginning, but still, you need to become familiar with the new codebase you will be working in. And besides, getting up to speed quickly is a great way to impress the other members of your team.
Different codebases can vastly differ from one another. Read on to find out tips on how to get the hang of an unfamiliar codebase in a quick and easy way.
Look from both perspectives
Take a wide view and a detailed view – this will give you new insights. When you take a detailed view, you will understand specific modules and their implementation. While looking at the bigger picture, you will find out more about the overall organization and how systems work together.
Try to answer these questions:
- What libraries, frameworks, and languages are used?
- Which are the most commonly used external dependencies?
- Are there any coding style patterns?
- What is the file structure?
- What is the overall code quality?
Examine the file structure
You need to understand the structure of the codebase in order to know where to write or debug code. This can be trickier, especially when starting a new job.
Once you have a grasp on the organization and the structure behind it, you will find it easier to find the files that need to be edited or where you should be adding new files.
Read the code
This probably seems obvious, but it is essential. Reading the existing code is essential to get up to speed in an unfamiliar codebase. Go through code reviews or on your own.
Ensure that you have a detailed view of specific files and what is happening in them, and gain new context on the area you will be working in.
Work on fixing the bugs
This will not only help you to find out more about the product you are working on, but you will also actively help users while you are fixing existing problems.
Fixing bugs will also help grasp more about how something works end-to-end, as well as how different systems work together.
Other engineers who have been working in the company longer are a great source of knowledge when it comes to specific areas of the codebase.
They can provide answers to your questions or give you more context about why specific systems were built that way and if there are any hacks, you need to know about.
Most likely, there will be areas in the codebase lacking essential test coverage. If you find any code that does not yet have tests written – write them.
This will help you understand more about the code since you will need to think about edge cases around it.