DEV Community

Cover image for Learning a New and Unfamiliar Code Base
Nick Janetakis
Nick Janetakis

Posted on • Originally published at nickjanetakis.com

17 8

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)

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

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

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay