Learning a New and Unfamiliar Code Base
Tags: beginners, opensource, video, webdev
Published: 2019-05-28 11:45:22

---
title: "Learning a New and Unfamiliar Code Base"
published: true
description: "When starting a new job or contributing to open source, learning a new code base can be intimidating. Here's how you can jump in quickly."
tags: beginners, opensource, video, webdev
cover_image: https://nickjanetakis.com/assets/blog/cards/learning-a-new-and-unfamiliar-code-base-32660bb377cfb9ce5033a3bbda702786a6371ee12cca209bae7ce994748c3a3a.jpg
canonical_url: https://nickjanetakis.com/blog/learning-a-new-and-unfamiliar-code-base
---

**This article was originally posted on May 14th, 2019 at: https://nickjanetakis.com/blog/learning-a-new-and-unfamiliar-code-base*

---

Someone who took my Flask course recently e-mailed me asking if I could make a video on how to tackle learning a new code base and it just so happens I had to do that very recently so I made a video showing the process I use on 3 different apps.

## Gaining Insight on 3 Unfamiliar Code Bases (Video)

{% youtube MlGAU_Gv2cA %}

#### Timestamped Table of Contents

- 0:39 -- In the real world, documentation isn't always available
- 1:25 -- Exploring 3 different web apps to gain insight on what they do
- 2:15 -- Taking a look at a closed source Flask application
- 3:55 -- Figuring out the tech stack of the application from the bottom up
- 6:32 -- Getting an idea of what a web app does by looking at its URL routes
- 9:30 -- Scoping out a project's size on the command line in a few seconds
- 12:15 -- Determining how an app is designed based on lines of code for file types
- 13:11 -- Using prior experience and our new found knowledge to find out what to edit
- 14:05 -- Looking at an open source Phoenix app (<https://changelog.com>) on GitHub
- 14:50 -- One strategy for fixing a bug in an open source project
- 15:24 -- Learning from open source projects to build your own web applications
- 16:40 -- First steps to get familiar with an open source project's code base
- 16:45 -- Using GitHub's UI to gain insights on an application's code base
- 18:21 -- Repeating most of what we did on the command line but on GitHub instead
- 20:21 -- Copying features from an open source project into your project
- 21:05 -- Tracing code on a need to know basis
- 23:08 -- Making your first pull request on an open source project
- 25:07 -- Not every pull request needs to be Earth shattering, small is ok
- 25:33 -- You don't need to be an expert or professional to contribute to a project
- 25:52 -- Don't under estimate small pull requests, always test your code!
- 27:18 -- Looking at a Ruby on Rails open source project (<https://dev.to>) on GitHub
- 28:04 -- Seeing what the dev.to code base is composed of
- 29:14 -- Getting a list of routes, just like we did for the Flask app
- 29:51 -- Exploring the routes at the code level (some web frameworks have this)
- 31:05 -- Repeating what we did previously to find the dev.to tech stack
- 31:25 -- Finding hints of a linting tool being used is a very good sign for code quality
- 32:02 -- Tests are a great way to see how things work under the hood
- 33:09 -- Going back to dev.to's tech stack
- 34:33 -- Use everything together and your task at hand to determine what to do next
- 35:35 -- Oh yeah! Don't forget to check a project's list of package dependencies

#### Reference Links

- Build a SAAS app with Flask course: [https://buildasaasappwithflask.com](https://buildasaasappwithflask.com/?utm_source=nj&utm_medium=devto&utm_campaign=video-codebase)
- Dive into Docker course: [https://diveintodocker.com](https://diveintodocker.com/?utm_source=nj&utm_medium=devto&utm_campaign=video-codebase)
- Changelog Website: <https://changelog.com>
- Changelog on GitHub: <https://github.com/thechangelog/changelog.com>
- Dev.to Website: <https://dev.to>
- Dev.to on GitHub: <https://github.com/thepracticaldev/dev.to>

**How do you tackle learning a new code base? Let me know below.**