5 Tips On Navigating A New Codebase
Tags: productivity, codebase, webdev, vscode
Published: 2020-12-15 19:43:35

# Overview
During an interview for a front-end developer role, I was asked how I would approach navigating a new codebase. It was a simple question, yet one that stayed with me after the interview was done. 

To be honest, I wasn't really sure of the proper way to explore a new code base effectively. My past experience to date was freelance or smaller Bootcamp team projects.

As per usual, YouTube offered some amazing resources, and below are 5 tips that I look forward to using in the future. (Credits and resources at the end.)

---

## 1 — Identify what tech is being used
By seeing how the project is built, you can get a quick understanding of it. It can also help identify languages, packages, or frameworks you might not be familiar with. 

####Here are some places to look at for this information…

1. Docker file
2. package.json file
3. Git Hub Repo's tech percentage view 
4. [Locally searching with your terminal/CLI](https://dev.to/gedalyakrycer/cli-command-that-finds-all-files-of-a-certain-type-and-ignores-nodemodules-2hch) for how many of a certain file type makes up the project.


## 2 — Figure out what the app does 
A good place to start is looking at the Routes available. This is a high-level look at how big the project is and the specific features/sections it has. 

This also gives you endpoint/slugs to use in the URL to explore the website in a more targeted way. (Like a sitemap)

For example, by seeing routes that lead to `/user` or `/login`, it would be logical to assume that this project has some sort of account and authorization functionality. 



##3 — Check the Tests
Looking at the available test files can help explain some of the core / mission-critical functionality. 



##4 — Create Tech Checklists
Create a checklist for any programs, services, packages that are needed to make the local environment work, making pull requests for review, and deploying. 

Having a clear direction to refer to when attempting these new processes, will make the whole experience less daunting. 



##5 — Find a Mentor 
This person will probably be a senior or at least seasoned developer on your team, that doesn't mind guiding you through the basics of the codebase. 

New codebases are complicated things. Even coming back to 6-month (heck even 1 week) old code can be difficult to figure out. So having someone to answer the million-&-1 simple yet necessary questions will be incredibly helpful. 

It is still important to try answering your own questions first, before getting help. Their time is valuable and trying to solve your own questions is a great learning experience. However, it is better to ask for help after 15min of troubleshooting, then wasting 4 hours going at it on your own.


---


##Credit & Resources

[What is a Code Base?](https://www.youtube.com/watch?v=7xaGRxiN75o)
*Codecademy*

[Working with Code Written by Someone Else](https://www.youtube.com/watch?v=OdQtww8ZfEw) 
*Codecademy*

[Best Tips and Tricks to Navigating a New Codebase](https://www.youtube.com/watch?v=4Z-9k9xcP2M&t=2129s)
*Woman Who Code*

[Learning a New and Unfamiliar Code Base](https://www.youtube.com/watch?v=MlGAU_Gv2cA&t=571s)
*Nick Janetakis*

[5 tips to quickly understand a new code base - FunFunFunction #7](https://www.youtube.com/watch?v=OnCeaJdd_sY)
*Fun Fun Function*


---

*Header image designed with [Adobe Photoshop](https://www.adobe.com/products/photoshop.html)*