To succeed in this program, it is important that you review the material in this page before the start date. If you don't do this early on you will struggle during the program. Instead of spending your time and energy on what's important (peer-to-peer mock interviews & Leetcode challenges), you'll be stuck trying to understand basic concepts if you don't follow this advice.

Whatever you do, **don't procrastinate**. Be *very* comfortable with all the topics below.

Implement an ArrayList from scratch

Reverse a linked list

Implement a Stack & a Queue using Array

Implement a HashTable with simple Hashing functions

Implement a Graph using Adjacency List, and then write functions for BFS & DFS

Write the binary search algorithm both recursively and iteratively

Write the merge sort algorithm

Write the quicksort algorithm

Print binary tree using DFS (in-order, preorder and post order - all three of them) and BFS.

Memorize time & space complexities for common algorithms. Here's an interesting website.

Implement a trie.

Learn these important bit manipulation tactics.

Read and do the exercises (pages 38 - 58) from the CTCI book.