General
 NeetCode β’ Courses and guided practice to help build pattern recognition skills (see his YouTube channel as well) π§©
 How to effectively learn Algorithms β’ Practice prerequisite topics first β’ NeetCode πΊ
 Interview Cake β’ Programming interview questions + help getting job offers π§©
 AlgoExpert β’ The ultimate resource to prepare for coding interviews π§©
 algorithms β’ Code / tests for algorithm and data structure lessons using TypeScript / JavaScript β’ Basarat Ali π οΈ
 Build Algorithms using Typescript β’ Egghead course by Basarat Ali π§βπ
 The Unfair Way I Got Good At LeetCode β’ Arman Manazir πΊ
Patterns
 Leetcode 101: The 14 Patterns β’ Vinz Angelo Madrigal πΊ
 Leetcode 101 slides β’ Vinz Angelo Madrigal π
 Make a series that goes through these 14 patterns one at a time?
 what it is
 what problems it applies to
 an example of solving a question with it
 links to other questions that use the same solution
 Links to the extra help links at the end of the video
 Credit to the video creators (and link to the video itself)
 End series with a 15th post summarizing how to choose the right solution pattern based on the question (with links to each
 14 Patterns to Ace Any Coding Interview Question β’ Fahim ul Haq π
 The Ultimate Strategy to Preparing for the Coding Interview β’ Arslan Ahmad π
 Leetcode Patterns β’ Sean Prashad π
 LeetCode Isnβt Real β’ Memorizing solutions is very different from building problem solving skills; analogy of memorizing the grade school multiplication method vs understanding how it works; memorize a few core algorithms like DFS, BFS and then practice identifying which algorithm applies to each problem you see β’ NeetCode & The Primagen πΊ
Strings
 Coding Interview Practice: Bracket Matching β’ Basarat Ali πΊ
 Coding Interview Practice: Longest Consecutive Character β’ Basarat Ali πΊ
 πΊ One Minute Utilities for JavaScript Strings β’ 6 minute video by Basarat Ali showing quick functions for reversing a string, checking if a string is a palindrome, changing the case of a stringβs first character, splitting a string onto muktiple lines, replacing a character in a string, removing whitespace, escaping and unescaping HTML characters, and repeating a string n times
Numbers
 πΊ FizzBuzz programming interview: What makes it hard? Simple solution πΉ β’ 5 minute video by Basarat Ali showing how to implement FizzBuzz simply and then refactor it
 πΊ FizzBuzz: One Simple Interview Question β’ 7 minute video by Tom Scott showing how to solve Fizz buzz
Arrays
 πΊ One Minute Utilities for JavaScript Arrays β’ 5 minute video by Basarat Ali showing quick functions for checking in an input is an array, checking if two arrays are equal, return the min, max, sum or average value in an array of numbers, joining two arrays, returning the arrays unique items, return an array that inckudes all numbers in a range, and flatten an array of arrays into a single array
Sorting
 Algorithms: Bubble Sort β’ Kyle Shevlin π
 Sorting Algorithms Explained Visually β’ Beyond Fireship πΊ
Searching & Pathfinding
 πΊ Tree Algorithms β’ 8 video playlist by William Fiset
 πΊ Binary Search algorithm in JavaScript β’ 11 minute video by Leigh Halliday showing how to apply binary search to a sorted JS array of numbers
 πΊ Algorithms: Binary Search on Trees and Lists β’ 14 minute video by ThePrimeagen
 π The Algorithms Guide: Learn Binary Search in JavaScript β’ Free course by Jonathan Lee Martin and Scrimba that shows how to code six different binary search algorithms in 10 interactive screencasts
 πΊ A* Pathfinding (E01: algorithm explanation) β’ 12 minute video by Sebastian Lague explaining the A* pathfinding algorithm
Recursion
 πΊ Recursion: How to FINALLY understand recursion β’ 13 minute video by ThePrimeagen that uses a maze solver as an example
 πΊ Algorithms Explained β minimax and alphabeta pruning β’ 11 minute video by Sebastian Lague explaining the minimax algorithm and how to use alphabeta pruning to make it faster
 Recursion for Beginners β’ An introduction to recursion and the Pythonspecific functionality for recursion β’ Al Sweigart πΊ
Dynamic Programming
 Dynamic Programming β’ 10 video playlist by William Fiset πΊ
 Dynamic Programming is not Black Magic β Quentin Santos π
Optimizing
 going fast is about doing less β’ leedoo demonstrates how to gradually reduce the runtime of an advent of code solution from > 2 mins to < 1 sec πΊ
 Quadratic algorithms are slow (and hashmaps are fast) β’ Julia Evans π
FizzBuzz
Given a number, n, for each integer i in the range from 1 to n inclusive, print one value per line as follows:
 If i is a multiple of both 3 and 5, print FizzBuzz
 If i is a multiple of 3 (but not 5), print Fizz
 If i is a multiple of 5 (but not 3), print Buzz
 If i is not a multiple of 3 or 5, print the value of i
function fizzBuzz(n: number): void {
for (let i = 1; i <= n; i++) {
let result: number  'Fizz'  'Buzz'  'FizzBuzz' = i
if (i % 15 === 0) {
result = 'FizzBuzz'
} else if (i % 5 === 0) {
result = 'Buzz'
} else if (i % 3 === 0) {
result = 'Fizz'
}
console.log(result)
}
}
Inbox

aocrunner  npm  helpful boilerplate for solving advent of code puzzles without needing to set anything up

Visualizing Data Structures and Algorithms in VS Code  demo of using a diagramming extension + the debugger to visualize the values of your data structure as your algorithm runs (helpful for βgettingβ what the algo is doing + debugging why it isnβt working)

Projects Every Programmer Should Try β’ text editor, 2D game, compiler, operating system, spreadsheet, game console emulator β’ The Primeagen πΊ

Data Structures and Algorithms in JavaScript  egghead.io β’ Kyle Shevlin πΊ

Binary Search Animated  NeetCode

Mastering Dynamic Programming  How to solve any interview problem (Part 1)  Tech with Nikola

teivah/algodeck: An OpenSource Collection of 200+ Flash Cards to Help You Preparing Your Algorithms & Data Structures Interview π― β’ Teiva Harsanyi π§βπ»

Learn Data Structures and Algorithms  Programiz