Underdog Devs Technical Interview Prep

The purpose of this repo is to provide a structured approach to preparing for entry-level software developer interviews.

Everyone learns at a different pace. Don’t compare how quickly you progress through this material to how quickly others do. It won’t help you.

The material generally tested in entry level technical interviews can be summed up by the term Data Structures and Algorithms.

Prerequisite: Big O

Computers have two resources, processing time and memory space. In order to understand why one data structure or algorithm is better than another, we need a way to measure how fast they run, how much memory they use, and ultimately how these both scale as the quantity of data increases. Big O is the most common way of measuring these. How much processing time an operation takes is referred to as time complexity. How much memory it uses is called space complexity. Before you dive into the study of data structures and algorithms you should have a basic understanding of Big O. Read through the article below or watch the video. Take a look at the items under Resources as well.

Big O Video
Big O Article


After looking through this material, if you still have questions (and you probably will), reach out to your mentor or ask in Slack. Once you think you have a basic understanding of run-time complexity and space complexity, move on to Data Structures. As you work through the rest of this curriculum, calculate the Big O runtime complexity for each function you implement.

Data Structures

Data structures are simply a way of storing data. Each of these ways of storing data was conceived to solve some problem. The basic data structures are listed below:


An algorithm is a set of instructions that solves a problem. Some common categories of algorithms are listed below:


View Github