When I joined Jana a few months ago, I was faced with the same challenge any software engineer encounters when joining a new company – learning a new code base. No matter what your coding skills are, a simple task can always seem hard if you don’t know how the code is structured. That task becomes even more intimidating when the code base has been written over many years and by dozens of engineers.
While navigating that much code might seem daunting, there are available methods to make your life easier. Here are the tricks I use:
Read the documentation, other engineers have written it for a reason. If the code is well documented, this step alone can be enough to get you through your task. Even when the documentation is outdated or just simply terrible, you will learn something from it.
Ask questions, and don’t be afraid to sound stupid. All questions are valid and make sure to verify any assumptions you make about the code. Knowledgeable people can often save you hours of work. Write down the answers you receive so you don’t annoy people by asking something twice. Same thing goes for reading the documentation – make sure you do it first.
Understand the goal. Knowing the business implications will help you think the right way, and it might lead you to a different, better solution than the obvious one.
Use Grep. Grep can save you a lot of time when you don’t know which files to use. If you don’t know grep and regex, learn it.
Debug & Step Through. If your editor allows it, use line breaks and step through the code line by line. This might take longer than grep, however it will narrow down the code even more.
Give yourself time. Learning takes time. While all the above methods are designed to accelerate your learning of the code base, they won’t make you an expert in a day. In larger companies there is also too much happening for you to keep up with every iteration. No matter how long you’ve been there, you will eventually encounter code you haven’t seen before.
Are you interested in learning? If so, we’re hiring!