Learning a New and Unfamiliar Code Base

Nick Janetakis - May 28 '19 - - Dev Community

*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.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .