Learn Docker With My Newest Course

Dive into Docker takes you from "What is Docker?" to confidently applying Docker to your own projects. It's packed with best practices and examples. Start Learning Docker →

Learning a New and Unfamiliar Code Base


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.

Quick Jump: Gaining Insight on 3 Unfamiliar Code Bases (Video)

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)

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

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

Never Miss a Tip, Trick or Tutorial

Like you, I'm super protective of my inbox, so don't worry about getting spammed. You can expect a few emails per month (at most), and you can 1-click unsubscribe at any time. See what else you'll get too.