Career Bootcamp Check

Resources

Recordings – (You can request an access if missing)

Graphs

Here are some video for you to check out:

  1. Algorithms Course – Graph Theory Tutorial from a Google Engineer (for the next week you only need first 1,5h of the video)
  2. Graph Algorithms for Technical Interviews (full course)

Week 1: (good visualization and explanation from BlueBrown and MIT):

  1. 3Blue1Brown – Introduction to Graph Theory: A Computer Science Perspective (good video to watch instead of MIT 6.046J)
  2. 3Blue1Brown – Breadth First Search (BFS): Visualized and Explained
  3. 3Blue1Brown – Depth First Search (DFS) Explained: Algorithm, Examples, and Code
  4. MIT 6.042J – Mathematics for Computer Science (this is a loooooong and lemma/proof videos)
  5. MIT 6.006 – Introduction to Algorithms(another long session for those who’s interested in details and underlying proofs)

Week 2:

  1. FreeCodeCamp – Quick refresh on Graphs and pseudo code (the material starts on Dijkstra Algorithm)
  2. Algorithms by Robert Sedgewick (this is overall the best course on algorithms, for our next lesson you will need first 6 videos only for Union-Find)

Binary Trees

To read:

  1. Introduction to Data Structure – Binary Tree (Leetcode)
  2. Binary Search Tree (better to read/watch all 4 (starting from Introduction To Tree Data Structure) to understand the difference between Trees)
  3. Traverse a Tree – Introduction (Leetcode)
  4. All articles on Tree based DSA (I)
  5. How to implement a ​breadth-first search in Python (Educative.io)
Cracking the Coding Interview by Gayle Laakmann McDowell

Additional:

  1. Week 2. Introduction to Tree Structures (Coursera)
  2. Binary Trees in Python (Educative.io)
  3. Python Data Structure and Algorithms Tutorial (Tutorialspoint)

To watch:

  1. Binary Search Trees, BST Sort (MIT OpenCourseWare)
  2. Level Order Binary Tree Traversal (Geeksforgeeks)

Linked Lists

To read:

  1. Using the Linked List Data Structure in Python
  2. Examples: Single Linked Lists
  3. 4 Incredibly Useful Linked List Logic for Interview (a summary of the different approaches to linked list leetcode problems)

To watch:

  1. Data Structures: Linked Lists (Gayle Laakmann McDowell)

Sliding Window

To read:

  1. Sliding Window Template
  2. Substring Search Problems
  3. Grokking the Coding Interview

To watch:

  1. Sliding Window Technique - Algorithmic Mental Models

Bit Manipulation

To read:

  1. Hacks and tricks
  2. Bit Manipulation
  3. Bitwise Operators in Python

To watch:

  1. Algorithms: Bit Manipulation (Gayle Laakmann McDowell)

Dynamic Programming

To read:

  1. Cracking the Coding Interview, p.130
  2. Dynamic Programming: From Novice to Advanced
  3. DP Patterns
  4. A graphical introduction to dynamic programming
  5. Tabulation vs Memoization
  6. How to approach most of DP problems.
  7. DP (Programiz.com)
  8. Demystifying Dynamic Programming

To watch:

  1. Algorithms: Solve 'Recursive Staircase' Using Recursion (Gayle Laakmann McDowell)
  2. Algorithms: Memoization and Dynamic Programming (Gayle Laakmann McDowell)
  3. Algorithms: Solve 'Coin Change' Using Memoization and DP (Gayle Laakmann McDowell)
  4. Video from MIT 6.006 Introduction to Algorithms
  5. DP (Russian language)

Courses:

  1. DP with examples
  2. Grokking DP (Educative.io)
  3. Module 3 (Stepic.org, Russian language)
  4. Dynamic Programming - Learn to Solve Algorithmic Problems & Coding Challenges (5 hour course)