Loading DevKit Tools...
Loading DevKit Tools...
Algorithms, data structures, CS fundamentals, OSSU free curriculum, system administration tools, and Bangladeshi tech company interview questions.
Harvard CS50 - Asymptotic Notation (video)](https://www.youtube.com/watch?v=iOq5kSKqeR4)
Big O Notations (general quick tutorial) (video)](https://www.youtube.com/watch?v=V6mKVRU1evU)
Big O Notation (and Omega and Theta) - best mathematical explanation (video)](https://www.youtube.com/watch?v=ei-Awy5Yxw&index=2&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
Skiena (video)](https://www.youtube.com/watch?v=z1mkCe3kVUA)
UC Berkeley Big O (video)](https://archive.org/details/ucberkeleywebcastVIS4YDpuP98)
Amortized Analysis (video)](https://www.youtube.com/watch?v=B3SpQZaAZP4&index=10&list=PL1BaGV1cIH4UhkL8a9bJGG356covJ76qN)
Computational Complexity: Section 1](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20one)
Computational Complexity: Section 2](https://www.topcoder.com/thrive/articles/Computational%20Complexity%20part%20two)
Cheat sheet](http://bigocheatsheet.com/)
Arrays CS50 Harvard University](https://www.youtube.com/watch?v=tItIZFyKBw&t=3009s)
Arrays (video)](https://www.coursera.org/lecture/data-structures/arrays-OsBSF)
UC Berkeley CS61B - Linear and Multi-Dim Arrays (video)](https://archive.org/details/ucberkeleywebcastWp8oiOCZZE) (Start watching from 15m 32s)
Dynamic Arrays (video)](https://www.coursera.org/lecture/data-structures/dynamic-arrays-EwbnV)
Jagged Arrays (video)](https://www.youtube.com/watch?v=1jtrQqYpt7g)
Linked Lists CS50 Harvard University](https://www.youtube.com/watch?v=2T-AGFuoTo&t=650s) - this builds the intuition.
Singly Linked Lists (video)](https://www.coursera.org/lecture/data-structures/singly-linked-lists-kHhgK)
CS 61B - Linked Lists 1 (video)](https://archive.org/details/ucberkeleywebcasthtzJdKoEmO0)
CS 61B - Linked Lists 2 (video)](https://archive.org/details/ucberkeleywebcast-c4I3gFYe3w)
C Code (video)](https://www.youtube.com/watch?v=QN6FPiD0Gzo)
Core Linked Lists Vs Arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-linked-lists-vs-arrays-rjBs9)
In The Real World Linked Lists Vs Arrays (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/in-the-real-world-lists-vs-arrays-QUaUd)
Why you should avoid linked lists (video)](https://www.youtube.com/watch?v=YQs6IC-vgmo)
Pointers to Pointers](https://www.eskimo.com/scs/cclass/int/sx8.html)
Description (video)](https://www.coursera.org/lecture/data-structures/doubly-linked-lists-jpGKD)
Hashing with Chaining (video)](https://www.youtube.com/watch?v=0MkIqhwbFo&list=PLUl4u3cNGP61Oq3tWYp6VF-5jb5L2iHb&index=8)
Table Doubling, Karp-Rabin (video)](https://www.youtube.com/watch?v=BRO7mVIFt08&index=9&list=PLUl4u3cNGP61Oq3tWYp6VF-5jb5L2iHb)
Open Addressing, Cryptographic Hashing (video)](https://www.youtube.com/watch?v=rvdJDijO2Ro&index=10&list=PLUl4u3cNGP61Oq3tWYp6VF-5jb5L2iHb)
PyCon 2010: The Mighty Dictionary (video)](https://www.youtube.com/watch?v=C4Kc8xzcA68)
PyCon 2017: The Dictionary Even Mightier (video)](https://www.youtube.com/watch?v=66P5FMkWoVU)
Advanced) Randomization: Universal & Perfect Hashing (video)](https://www.youtube.com/watch?v=z0lJ2k0sl1g&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=11)
Advanced) Perfect hashing (video)](https://www.youtube.com/watch?v=N0COwN14gt0&list=PL2B4EEwhKD-NbwZ4ezj7gyc3yNrojKM9&index=4)
Core Hash Tables (video)](https://www.coursera.org/lecture/data-structures-optimizing-performance/core-hash-tables-m7UuP)
Data Structures (video)](https://www.coursera.org/learn/data-structures/home/week/4)
Phone Book Problem (video)](https://www.coursera.org/lecture/data-structures/phone-book-problem-NYZZP)
Instant Uploads And Storage Optimization In Dropbox (video)](https://www.coursera.org/lecture/data-structures/instant-uploads-and-storage-optimization-in-dropbox-DvaIb)
Distributed Hash Tables (video)](https://www.coursera.org/lecture/data-structures/distributed-hash-tables-tvH8H)
Binary Search (video)](https://www.youtube.com/watch?v=D5SrAga1pno)
Binary Search (video)](https://www.khanacademy.org/computing/computer-science/algorithms/binary-search/a/binary-search)
detail](https://www.topcoder.com/thrive/articles/Binary%20Search)
blueprint](https://leetcode.com/discuss/general-discussion/786126/python-powerful-ultimate-binary-search-template-solved-many-problems)
Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/bits-cheat-sheet.pdf)
words](https://en.wikipedia.org/wiki/Word(computerarchitecture))
Bit Manipulation (video)](https://www.youtube.com/watch?v=7jkIUgLC29I)
C Programming Tutorial 2-10: Bitwise Operators (video)](https://www.youtube.com/watch?v=d0AwjSpNXR0)
Bit Manipulation](https://en.wikipedia.org/wiki/Bitmanipulation)
Bitwise Operation](https://en.wikipedia.org/wiki/Bitwiseoperation)
Bithacks](https://graphics.stanford.edu/seander/bithacks.html)
The Bit Twiddler](https://bits.stephan-brumme.com/)
The Bit Twiddler Interactive](https://bits.stephan-brumme.com/interactive.html)
Bit Hacks (video)](https://www.youtube.com/watch?v=ZusiKXczac)
Practice Operations](https://pconrad.github.io/oldpconradcs16/topics/bitOps/)
Binary: Plusses & Minuses (Why We Use Two's Complement) (video)](https://www.youtube.com/watch?v=lKTsv6iVxV4)
1s Complement](https://en.wikipedia.org/wiki/Ones%27complement)
2s Complement](https://en.wikipedia.org/wiki/Two%27scomplement)
4 ways to count bits in a byte (video)](https://youtu.be/Hzuzo9NJrlc)
Count Bits](https://graphics.stanford.edu/seander/bithacks.html#CountBitsSetKernighan)
How To Count The Number Of Set Bits In a 32 Bit Integer](http://stackoverflow.com/questions/109023/how-to-count-the-number-of-set-bits-in-a-32-bit-integer)
Swap](https://bits.stephan-brumme.com/swap.html)
Absolute Integer](https://bits.stephan-brumme.com/absInteger.html)
Intro to Trees (video)](https://www.coursera.org/lecture/data-structures/trees-95qda)
Tree Traversal (video)](https://www.coursera.org/lecture/data-structures/tree-traversal-fr51b)
BFS(breadth-first search) and DFS(depth-first search) (video)](https://www.youtube.com/watch?v=uWL6FJhq5fM)
Binary Search Tree Review (video)](https://www.youtube.com/watch?v=x6At0nzX92o&index=1&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
Introduction (video)](https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction)
MIT (video)](https://www.youtube.com/watch?v=76dhtgZt38A&abchannel=MITOpenCourseWare)
Binary search tree - Implementation in C/C++ (video)](https://www.youtube.com/watch?v=COZK7NATh4k&list=PL2aWCzGMAwI3WJlcBbtYTwiQSsOTa6P&index=28)
BST implementation - memory allocation in stack and heap (video)](https://www.youtube.com/watch?v=hWokyBoo0aI&list=PL2aWCzGMAwI3WJlcBbtYTwiQSsOTa6P&index=29)
Find min and max element in a binary search tree (video)](https://www.youtube.com/watch?v=Ut90klNN264&index=30&list=PL2aWCzGMAwI3WJlcBbtYTwiQSsOTa6P)
Find the height of a binary tree (video)](https://www.youtube.com/watch?v=pnqMz5nrRs&list=PL2aWCzGMAwI3WJlcBbtYTwiQSsOTa6P&index=31)
Binary tree traversal - breadth-first and depth-first strategies (video)](https://www.youtube.com/watch?v=9RHO6jU--GU&list=PL2aWCzGMAwI3WJlcBbtYTwiQSsOTa6P&index=32)
Binary tree: Level Order Traversal (video)](https://www.youtube.com/watch?v=86g8jAQug04&index=33&list=PL2aWCzGMAwI3WJlcBbtYTwiQSsOTa6P)
Binary tree traversal: Preorder, Inorder, Postorder (video)](https://www.youtube.com/watch?v=gm8DUJJhmY4&index=34&list=PL2aWCzGMAwI3WJlcBbtYTwiQSsOTa6P)
Check if a binary tree is a binary search tree or not (video)](https://www.youtube.com/watch?v=yEwSGhSsT0U&index=35&list=PL2aWCzGMAwI3WJlcBbtYTwiQSsOTa6P)
Delete a node from Binary Search Tree (video)](https://www.youtube.com/watch?v=gcULXE7ViZw&list=PL2aWCzGMAwI3WJlcBbtYTwiQSsOTa6P&index=36)
Inorder Successor in a binary search tree (video)](https://www.youtube.com/watch?v=5cPbNCrdotA&index=37&list=PL2aWCzGMAwI3WJlcBbtYTwiQSsOTa6P)
insert // insert value into tree](https://leetcode.com/problems/insert-into-a-binary-search-tree/submissions/987660183/)
getheight // returns the height in nodes (single node's height is 1)](https://www.geeksforgeeks.org/find-the-maximum-depth-or-height-of-a-tree/)
isbinarysearchtree](https://leetcode.com/problems/validate-binary-search-tree/)
Heap](https://en.wikipedia.org/wiki/Heap(datastructure))
Introduction (video)](https://www.coursera.org/lecture/data-structures/introduction-2OpTs)
Binary Trees (video)](https://www.coursera.org/learn/data-structures/lecture/GRV2q/binary-trees)
Tree Height Remark (video)](https://www.coursera.org/learn/data-structures/supplement/S5xxz/tree-height-remark)
Basic Operations (video)](https://www.coursera.org/learn/data-structures/lecture/0g1dl/basic-operations)
Complete Binary Trees (video)](https://www.coursera.org/learn/data-structures/lecture/gl5Ni/complete-binary-trees)
Pseudocode (video)](https://www.coursera.org/learn/data-structures/lecture/HxQo9/pseudocode)
Heap Sort - jumps to start (video)](https://youtu.be/odNJmw5TOEE?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3291)
Heap Sort (video)](https://www.coursera.org/lecture/data-structures/heap-sort-hSzMO)
Building a heap (video)](https://www.coursera.org/lecture/data-structures/building-a-heap-dwrOS)
MIT 6.006 Introduction to Algorithms: Binary Heaps](https://www.youtube.com/watch?v=Xnpo1atN-Iw&list=PLUl4u3cNGP63EdVPNLG3ToM6LaEUuStEY&index=12)
CS 61B Lecture 24: Priority Queues (video)](https://archive.org/details/ucberkeleywebcastyIUFT6AKBGE)
Linear Time BuildHeap (max-heap)](https://www.youtube.com/watch?v=MiyLo8adrWw)
Sorting Algorithm Stability](https://en.wikipedia.org/wiki/Sortingalgorithm#Stability)
Stability In Sorting Algorithms](http://stackoverflow.com/questions/1517793/stability-in-sorting-algorithms)
Stability In Sorting Algorithms](http://www.geeksforgeeks.org/stability-in-sorting-algorithms/)
Sorting Algorithms - Stability](http://homepages.math.uic.edu/leon/cs-mcs401-s08/handouts/stability.pdf)
Merge Sort For Linked List](http://www.geeksforgeeks.org/merge-sort-for-linked-list/)
Sedgewick - Mergesort (5 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
1. Mergesort](https://www.coursera.org/lecture/algorithms-part1/mergesort-ARWDq)
2. Bottom-up Mergesort](https://www.coursera.org/learn/algorithms-part1/lecture/PWNEl/bottom-up-mergesort)
3. Sorting Complexity](https://www.coursera.org/lecture/algorithms-part1/sorting-complexity-xAltF)
4. Comparators](https://www.coursera.org/lecture/algorithms-part1/comparators-9FYhS)
5. Stability](https://www.coursera.org/learn/algorithms-part1/lecture/pvvLZ/stability)
Sedgewick - Quicksort (4 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/3)
1. Quicksort](https://www.coursera.org/lecture/algorithms-part1/quicksort-vjvnC)
2. Selection](https://www.coursera.org/lecture/algorithms-part1/selection-UQxFT)
3. Duplicate Keys](https://www.coursera.org/lecture/algorithms-part1/duplicate-keys-XvjPd)
4. System Sorts](https://www.coursera.org/lecture/algorithms-part1/system-sorts-QBNZ7)
CS 61B Lecture 29: Sorting I (video)](https://archive.org/details/ucberkeleywebcastEiUvYS2DT6I)
CS 61B Lecture 30: Sorting II (video)](https://archive.org/details/ucberkeleywebcast2hTY3t80Qsk)
CS 61B Lecture 32: Sorting III (video)](https://archive.org/details/ucberkeleywebcastY6LOLpxg6Dc)
CS 61B Lecture 33: Sorting V (video)](https://archive.org/details/ucberkeleywebcastqNMQ4ly43p4)
CS 61B 2014-04-21: Radix Sort(video)](https://archive.org/details/ucberkeleywebcastpvbBMd-3NoI)
Bubble Sort (video)](https://www.youtube.com/watch?v=P00xJgWzz2c&index=1&list=PL89B61F78B552C1AB)
Analyzing Bubble Sort (video)](https://www.youtube.com/watch?v=nizk257Nqo&index=7&list=PL89B61F78B552C1AB)
Insertion Sort, Merge Sort (video)](https://www.youtube.com/watch?v=Kg4bqzAqRBM&index=3&list=PLUl4u3cNGP61Oq3tWYp6VF-5jb5L2iHb)
Insertion Sort (video)](https://www.youtube.com/watch?v=c4BRHC7kTaQ&index=2&list=PL89B61F78B552C1AB)
Merge Sort (video)](https://www.youtube.com/watch?v=GCae1WNvnZM&index=3&list=PL89B61F78B552C1AB)
Quicksort (video)](https://www.youtube.com/watch?v=yG9BkAm6B8&index=4&list=PL89B61F78B552C1AB)
Selection Sort (video)](https://www.youtube.com/watch?v=6nDMgr0-Yyo&index=8&list=PL89B61F78B552C1AB)
Using output array (C)](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/sorting/mergesort.c)
Using output array (Python)](https://github.com/jwasham/practice-python/blob/master/mergesort/mergesort.py)
In-place (C++)](https://github.com/jwasham/practice-cpp/blob/master/mergesort/mergesort.cc)
Implementation (C)](http://www.cs.yale.edu/homes/aspnes/classes/223/examples/randomization/quick.c)
Implementation (C)](https://github.com/jwasham/practice-c/blob/master/quicksort/quicksort.c)
Implementation (Python)](https://github.com/jwasham/practice-python/blob/master/quicksort/quicksort.py)
Quick sort in 4 minutes (video)](https://youtu.be/Hoixgm4-P4M)
Heap sort in 4 minutes (video)](https://youtu.be/2DmKH7IdTo)
Merge sort in 3 minutes (video)](https://youtu.be/4VqmGXwpLqc)
Bubble sort in 2 minutes (video)](https://youtu.be/xliFI7CuzA)
Selection sort in 3 minutes (video)](https://youtu.be/g-PGLbMthg)
Insertion sort in 2 minutes (video)](https://youtu.be/JU767SDMDvA)
Sedgewick - Radix Sorts (6 videos)](https://www.coursera.org/learn/algorithms-part2/home/week/3)
1. Strings in Java](https://www.coursera.org/learn/algorithms-part2/lecture/vGHvb/strings-in-java)
2. Key Indexed Counting](https://www.coursera.org/lecture/algorithms-part2/key-indexed-counting-2pi1Z)
3. Least Significant Digit First String Radix Sort](https://www.coursera.org/learn/algorithms-part2/lecture/c1U7L/lsd-radix-sort)
4. Most Significant Digit First String Radix Sort](https://www.coursera.org/learn/algorithms-part2/lecture/gFxwG/msd-radix-sort)
5. 3 Way Radix Quicksort](https://www.coursera.org/lecture/algorithms-part2/3-way-radix-quicksort-crkd5)
6. Suffix Arrays](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
Radix Sort](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#radixSort)
Radix Sort (video)](https://www.youtube.com/watch?v=xhr26ia4k38)
Radix Sort, Counting Sort (linear time given constraints) (video)](https://www.youtube.com/watch?v=Nz1KZXbghj8&index=7&list=PLUl4u3cNGP61Oq3tWYp6VF-5jb5L2iHb)
Randomization: Matrix Multiply, Quicksort, Freivalds' algorithm (video)](https://www.youtube.com/watch?v=cNB2lADK3s&index=8&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
Sorting in Linear Time (video)](https://www.youtube.com/watch?v=pOKy3RZbSws&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=14)
As a summary, here is a visual representation of .
Breadth-First Search](https://www.youtube.com/watch?v=oFVYVzlvk9c&t=14s&abchannel=MITOpenCourseWare)
Depth-First Search](https://www.youtube.com/watch?v=IBfWDYSffUU&t=32s&abchannel=MITOpenCourseWare)
CSE373 2020 - Lecture 10 - Graph Data Structures (video)](https://www.youtube.com/watch?v=Sjk0xqWWPCc&list=PLOtl7M3yp-DX6ic0HGT0PUXwiNmkWkXx&index=10)
CSE373 2020 - Lecture 11 - Graph Traversal (video)](https://www.youtube.com/watch?v=ZTwjXj81NVY&list=PLOtl7M3yp-DX6ic0HGT0PUXwiNmkWkXx&index=11)
CSE373 2020 - Lecture 12 - Depth First Search (video)](https://www.youtube.com/watch?v=KyordYB3BOs&list=PLOtl7M3yp-DX6ic0HGT0PUXwiNmkWkXx&index=12)
CSE373 2020 - Lecture 13 - Minimum Spanning Trees (video)](https://www.youtube.com/watch?v=oolm2VnJUKw&list=PLOtl7M3yp-DX6ic0HGT0PUXwiNmkWkXx&index=13)
CSE373 2020 - Lecture 14 - Minimum Spanning Trees (con't) (video)](https://www.youtube.com/watch?v=RktgPx0MarY&list=PLOtl7M3yp-DX6ic0HGT0PUXwiNmkWkXx&index=14)
CSE373 2020 - Lecture 15 - Graph Algorithms (con't 2) (video)](https://www.youtube.com/watch?v=MUe5DXRhyAo&list=PLOtl7M3yp-DX6ic0HGT0PUXwiNmkWkXx&index=15)
6.006 Single-Source Shortest Paths Problem (video)](https://www.youtube.com/watch?v=Aa2sqUhIn-E&index=15&list=PLUl4u3cNGP61Oq3tWYp6VF-5jb5L2iHb)
6.006 Dijkstra (video)](https://www.youtube.com/watch?v=NSHizBK9JD8&t=1731s&abchannel=MITOpenCourseWare)
6.006 Bellman-Ford (video)](https://www.youtube.com/watch?v=f9cVSURPc0&abchannel=MITOpenCourseWare)
6.006 Speeding Up Dijkstra (video)](https://www.youtube.com/watch?v=CHvQ3qgJ7E&list=PLUl4u3cNGP61Oq3tWYp6VF-5jb5L2iHb&index=18)
Aduni: Graph Algorithms III: Shortest Path - Lecture 8 (video)](https://www.youtube.com/watch?v=DiedsPsMKXc&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=8)
Aduni: Graph Alg. IV: Intro to geometric algorithms - Lecture 9 (video)](https://www.youtube.com/watch?v=XIAQRlNkJAw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=9)
CS 61B 2014: Weighted graphs (video)](https://archive.org/details/ucberkeleywebcastzFbq8vOZ0k)
Greedy Algorithms: Minimum Spanning Tree (video)](https://www.youtube.com/watch?v=tKwnms5iRBU&index=16&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
Strongly Connected Components Kosaraju's Algorithm Graph Algorithm (video)](https://www.youtube.com/watch?v=RpgcYiky7uw)
Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome)
Lecture 8 | Programming Abstractions (video)](https://www.youtube.com/watch?v=gl3emqCuueQ&list=PLFE6E58F856038C69&index=8)
Lecture 9 | Programming Abstractions (video)](https://www.youtube.com/watch?v=uFJhEPrbycQ&list=PLFE6E58F856038C69&index=9)
Lecture 10 | Programming Abstractions (video)](https://www.youtube.com/watch?v=NdF1QDTRkck&index=10&list=PLFE6E58F856038C69)
Lecture 11 | Programming Abstractions (video)](https://www.youtube.com/watch?v=p-gpaIGRCQI&list=PLFE6E58F856038C69&index=11)
What Is Tail Recursion Why Is It So Bad?](https://www.quora.com/What-is-tail-recursion-Why-is-it-so-bad)
Tail Recursion (video)](https://www.coursera.org/lecture/programming-languages/tail-recursion-YZic1)
5 Simple Steps for Solving Any Recursive Problem(video)](https://youtu.be/ngCos392W4w)
Backtracking Blueprint: )
Python](https://leetcode.com/problems/combination-sum/discuss/429538/General-Backtracking-questions-solutions-in-Python-for-reference-%3A)
Skiena: CSE373 2020 - Lecture 19 - Introduction to Dynamic Programming (video)](https://www.youtube.com/watch?v=wAA0AMfcJHQ&list=PLOtl7M3yp-DX6ic0HGT0PUXwiNmkWkXx&index=18)
Skiena: CSE373 2020 - Lecture 20 - Edit Distance (video)](https://www.youtube.com/watch?v=T3A4jlHlhtA&list=PLOtl7M3yp-DX6ic0HGT0PUXwiNmkWkXx&index=19)
Skiena: CSE373 2020 - Lecture 20 - Edit Distance (continued) (video)](https://www.youtube.com/watch?v=iPnPVcZmRbE&list=PLOtl7M3yp-DX6ic0HGT0PUXwiNmkWkXx&index=20)
Skiena: CSE373 2020 - Lecture 21 - Dynamic Programming (video)](https://www.youtube.com/watch?v=2xPE4Wq8coQ&list=PLOtl7M3yp-DX6ic0HGT0PUXwiNmkWkXx&index=21)
Skiena: CSE373 2020 - Lecture 22 - Dynamic Programming and Review (video)](https://www.youtube.com/watch?v=Yh3RzqQGsyI&list=PLOtl7M3yp-DX6ic0HGT0PUXwiNmkWkXx&index=22)
Simonson: Dynamic Programming 0 (starts at 59:18) (video)](https://youtu.be/J5aJEcOr6Eo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3558)
Simonson: Dynamic Programming I - Lecture 11 (video)](https://www.youtube.com/watch?v=0EzHjQSOeU&index=11&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
Simonson: Dynamic programming II - Lecture 12 (video)](https://www.youtube.com/watch?v=v1qiRwuJU7g&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=12)
Dynamic Programming (video)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPPjHHDxos9ItYXr)
Dynamic Programming](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#dynamicProgramming)
The RNA secondary structure problem (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/80RrW/the-rna-secondary-structure-problem)
A dynamic programming algorithm (video)](https://www.coursera.org/lecture/algorithmic-thinking-2/a-dynamic-programming-algorithm-PSonq)
Illustrating the DP algorithm (video)](https://www.coursera.org/lecture/algorithmic-thinking-2/illustrating-the-dp-algorithm-oUEK2)
Running time of the DP algorithm (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/nfK2r/running-time-of-the-dp-algorithm)
DP vs. recursive implementation (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/M999a/dp-vs-recursive-implementation)
Global pairwise sequence alignment (video)](https://www.coursera.org/lecture/algorithmic-thinking-2/global-pairwise-sequence-alignment-UZ7o6)
Local pairwise sequence alignment (video)](https://www.coursera.org/learn/algorithmic-thinking-2/lecture/WnNau/local-pairwise-sequence-alignment)
Quick UML review (video)](https://www.youtube.com/watch?v=3cmzqZzwNDM&list=PLGLfVvzLVvQ5G-LdJ8RLqe-ndo7QITYc&index=3)
Series of videos (27 videos)](https://www.youtube.com/playlist?list=PLF206E906175C7E07)
Book: Head First Design Patterns](https://www.amazon.com/Head-First-Design-Patterns-Freeman/dp/0596007124)
Handy reference: 101 Design Patterns & Tips for Developers](https://sourcemaking.com/design-patterns-and-tips)
Math Skills: How to find Factorial, Permutation, and Combination (Choose) (video)](https://www.youtube.com/watch?v=8RRo6Ti9d0U)
Make School: Probability (video)](https://www.youtube.com/watch?v=sZkAAk9Wwa4)
Make School: More Probability and Markov Chains (video)](https://www.youtube.com/watch?v=dNaJg-mLobQ)
Basic Theoretical Probability](https://www.khanacademy.org/math/probability/probability-and-combinatorics-topic)
Probability Explained (video)](https://www.youtube.com/watch?v=uzkc-qNVoOk&list=PLC58778F28211FA19)
Computational Complexity (video)](https://www.youtube.com/watch?v=moPtwqcVH8&list=PLUl4u3cNGP61Oq3tWYp6VF-5jb5L2iHb&index=23)
Greedy Algs. II & Intro to NP-Completeness (video)](https://youtu.be/qcGnJ47Smlo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=2939)
NP Completeness II & Reductions (video)](https://www.youtube.com/watch?v=e0tGC6ZQdQE&index=16&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
NP Completeness III (Video)](https://www.youtube.com/watch?v=fCX1BGT3wjE&index=17&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
NP Completeness IV (video)](https://www.youtube.com/watch?v=NKLDp3Rch3M&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=18)
CSE373 2020 - Lecture 23 - NP-Completeness (video)](https://www.youtube.com/watch?v=ItHp5laE1VE&list=PLOtl7M3yp-DX6ic0HGT0PUXwiNmkWkXx&index=23)
CSE373 2020 - Lecture 24 - Satisfiability (video)](https://www.youtube.com/watch?v=inaFJeCzGxU&list=PLOtl7M3yp-DX6ic0HGT0PUXwiNmkWkXx&index=24)
CSE373 2020 - Lecture 25 - More NP-Completeness (video)](https://www.youtube.com/watch?v=B-bhKxjZLlc&list=PLOtl7M3yp-DX6ic0HGT0PUXwiNmkWkXx&index=25)
CSE373 2020 - Lecture 26 - NP-Completeness Challenge (video)](https://www.youtube.com/watch?v=EzetTkGCc&list=PLOtl7M3yp-DX6ic0HGT0PUXwiNmkWkXx&index=26)
Complexity: P, NP, NP-completeness, Reductions (video)](https://www.youtube.com/watch?v=eHZifpgyH4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=22)
Complexity: Approximation Algorithms (video)](https://www.youtube.com/watch?v=MEz1J9wY2iM&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=24)
Complexity: Fixed-Parameter Algorithms (video)](https://www.youtube.com/watch?v=4q-jmGrmxKs&index=25&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
Jupyter Notebook](http://nbviewer.jupyter.org/url/norvig.com/ipython/TSP.ipynb)
How CPU executes a program (video)](https://www.youtube.com/watch?v=XM4lGflQFvA)
How computers calculate - ALU (video)](https://youtu.be/1I5ZMmrOfnA)
Registers and RAM (video)](https://youtu.be/fpnE6UAfbtU)
The Central Processing Unit (CPU) (video)](https://youtu.be/FZGugFqdr60)
Instructions and Programs (video)](https://youtu.be/zltgXvg6r3k)
The Magic of LRU Cache (100 Days of Google Dev) (video)](https://www.youtube.com/watch?v=R5ON3iwx78M)
Implementing LRU (video)](https://www.youtube.com/watch?v=bq6N7Ym81iI)
LeetCode - 146 LRU Cache (C++) (video)](https://www.youtube.com/watch?v=8-FZRAjR7qU)
MIT 6.004 L15: The Memory Hierarchy (video)](https://www.youtube.com/watch?v=vjYFfAZI5E&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-&index=24)
MIT 6.004 L16: Cache Issues (video)](https://www.youtube.com/watch?v=ajgC3-pyGlk&index=25&list=PLrRW1w6CGAcXbMtDFj205vALOGmiRc82-)
Operating Systems and System Programming (video)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvAiBDyz-ba4yDskqMDY6A1wc)
What Is The Difference Between A Process And A Thread?](https://www.quora.com/What-is-the-difference-between-a-process-and-a-thread)
Paging, segmentation, and virtual memory (video)](https://youtu.be/O4nwUqQodAg)
Interrupts (video)](https://youtu.be/iKlAWIKEyuw)
How context switching is initiated by the operating system and underlying hardware?](https://www.javatpoint.com/what-is-the-context-switching-in-the-operating-system)
threads in C++ (series - 10 videos)](https://www.youtube.com/playlist?list=PL5jc9xFGsL8E12so1wlMS0r0hTQoJL74M)
CS 377 Spring '14: Operating Systems from University of Massachusetts](https://www.youtube.com/playlist?list=PLacuG5pysFbDQU8kKxbUh4K5c1iL5k7k)
Short series on threads](https://www.youtube.com/playlist?list=PL1H1sBF1VAKVMONJWJkmUh6p8g4F2oy1)
Python Threads](https://www.youtube.com/watch?v=Bs7vPNbB9JM)
Understanding the Python GIL (2010)](https://www.youtube.com/watch?v=Obt-vMVdM8s)
reference](http://www.dabeaz.com/GIL)
David Beazley - Python Concurrency From the Ground Up LIVE! - PyCon 2015](https://www.youtube.com/watch?v=MCs5OvhV9S4)
Keynote David Beazley - Topics of Interest (Python Asyncio)](https://www.youtube.com/watch?v=ZzfHjytDceU)
Mutex in Python](https://www.youtube.com/watch?v=0zaPs8OtyKY)
Agile Software Testing with James Bach (video)](https://www.youtube.com/watch?v=SAhJf36u5U)
Open Lecture by James Bach on Software Testing (video)](https://www.youtube.com/watch?v=ILkTHV9DVU)
Steve Freeman - Test-Driven Development (that’s not what we meant) (video)](https://vimeo.com/83960706)
slides](http://gotocon.com/dl/goto-berlin-2013/slides/SteveFreemanTestDrivenDevelopmentThatsNotWhatWeMeant.pdf)
video](https://www.youtube.com/watch?v=IKD2-MAkXyQ)
Tao Of Testing](http://jasonpolites.github.io/tao-of-testing/ch3-1.1.html)
How to write tests](http://jasonpolites.github.io/tao-of-testing/ch4-1.1.html)
Sedgewick - Suffix Arrays (video)](https://www.coursera.org/learn/algorithms-part2/lecture/TH18W/suffix-arrays)
Sedgewick - Substring Search (videos)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
1. Introduction to Substring Search](https://www.coursera.org/lecture/algorithms-part2/introduction-to-substring-search-n3ZpG)
2. Brute-Force Substring Search](https://www.coursera.org/learn/algorithms-part2/lecture/2Kn5i/brute-force-substring-search)
3. Knuth-Morris Pratt](https://www.coursera.org/learn/algorithms-part2/lecture/TAtDr/knuth-morris-pratt)
4. Boyer-Moore](https://www.coursera.org/learn/algorithms-part2/lecture/CYxOT/boyer-moore)
5. Rabin-Karp](https://www.coursera.org/lecture/algorithms-part2/rabin-karp-3KiqT)
Search pattern in a text (video)](https://www.coursera.org/learn/data-structures/lecture/tAfHI/search-pattern-in-text)
Sedgewick - Tries (3 videos)](https://www.coursera.org/learn/algorithms-part2/home/week/4)
1. R Way Tries](https://www.coursera.org/learn/algorithms-part2/lecture/CPVdr/r-way-tries)
2. Ternary Search Tries](https://www.coursera.org/learn/algorithms-part2/lecture/yQM8K/ternary-search-tries)
3. Character Based Operations](https://www.coursera.org/learn/algorithms-part2/lecture/jwNmV/character-based-operations)
Notes on Data Structures and Programming Techniques](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries)
Introduction To Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries)
Performance Of Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries)
Implementing A Trie (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie)
The Trie: A Neglected Data Structure](https://www.toptal.com/java/the-trie-a-neglected-data-structure)
TopCoder - Using Tries](https://www.topcoder.com/thrive/articles/Using%20Tries)
Stanford Lecture (real-world use case) (video)](https://www.youtube.com/watch?v=TJ8SkcUSdbU)
MIT, Advanced Data Structures, Strings (can get pretty obscure about halfway through) (video)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
Big And Little Endian](https://web.archive.org/web/20180107141940/http://www.cs.umd.edu:80/class/sum2003/cmsc311/Notes/Data/endian.html)
Big Endian Vs Little Endian (video)](https://www.youtube.com/watch?v=JrNF0KRAlyo)
Big And Little Endian Inside/Out (video)](https://www.youtube.com/watch?v=oBSuXP-1Tc0)
Khan Academy](https://www.khanacademy.org/computing/code-org/computers-and-the-internet)
UDP and TCP: Comparison of Transport Protocols (video)](https://www.youtube.com/watch?v=Vdc8TCESIg8)
TCP/IP and the OSI Model Explained! (video)](https://www.youtube.com/watch?v=e5DEVa9eSN0)
Packet Transmission across the Internet. Networking & TCP/IP tutorial. (video)](https://www.youtube.com/watch?v=nomyRJehhnM)
HTTP (video)](https://www.youtube.com/watch?v=WGJrLqtX7As)
SSL and HTTPS (video)](https://www.youtube.com/watch?v=S2iBR2ZlZf0)
SSL/TLS (video)](https://www.youtube.com/watch?v=Rp3iZUvXWlM)
HTTP 2.0 (video)](https://www.youtube.com/watch?v=E9FxNzv1Tr8)
Video Series (21 videos) (video)](https://www.youtube.com/playlist?list=PLEbnTDJUrIegfoqO4iPnPYQui46QqT0j)
Subnetting Demystified - Part 5 CIDR Notation (video)](https://www.youtube.com/watch?v=t5xYI0jzOf4)
Java - Sockets - Introduction (video)](https://www.youtube.com/watch?v=6GW54zuadg&t=6s)
Socket Programming (video)](https://www.youtube.com/watch?v=G75vN2mnJeQ)
Videos](https://www.youtube.com/watch?v=r4r1DZcx1cM&list=PLmVb1OknmNJuC5POdcDv5oCS7OUkDgpj&index=22)
Videos](https://www.youtube.com/@MichaelSambol)
Code Examples](https://github.com/msambol/dsa)
Sedgewick Videos - Algorithms I](https://www.coursera.org/learn/algorithms-part1)
Sedgewick Videos - Algorithms II](https://www.coursera.org/learn/algorithms-part2)
"This Is What A GOOD Resume Should Look Like" by Gayle McDowell (author of Cracking the Coding Interview)](https://www.careercup.com/resume),
"Step-by-step resume guide" by Tech Interview Handbook](https://www.techinterviewhandbook.org/resume/guide)
How to Pass the Engineering Interview in 2021](https://davidbyttow.medium.com/how-to-pass-the-engineering-interview-in-2021-45f1b389a1)
Demystifying Tech Recruiting](https://www.youtube.com/watch?v=N233T0epWTs)
How to Get a Job at the Big 4 - Amazon, Facebook, Google & Microsoft (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8)
How to Get a Job at the Big 4.1 (Follow-up video)](https://www.youtube.com/watch?v=6790FVXWBw8&feature=youtu.be)
Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ)
Cracking the Coding Interview with Author Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ)
The Approach](https://www.youtube.com/watch?v=wCl9kvQGHPI)
Problem Walkthrough](https://www.youtube.com/watch?v=4UWDyJq8jZg)
Python for Data Structures, Algorithms, and Interviews (paid course)](https://www.udemy.com/python-for-data-structures-algorithms-and-interviews/):
Intro to Data Structures and Algorithms using Python (Udacity free course)](https://www.udacity.com/course/data-structures-and-algorithms-in-python--ud513):
Data Structures and Algorithms Nanodegree! (Udacity paid Nanodegree)](https://www.udacity.com/course/data-structures-and-algorithms-nanodegree--nd256):
Grokking the Behavioral Interview (Educative free course)](https://www.educative.io/courses/grokking-the-behavioral-interview):
AlgoMonster (paid course with free content)](https://algo.monster/?utmcampaign=jwasham&utmmedium=referral&utmcontent=coding-interview-university&utmsource=github):
Gainlo.co: Mock interviewers from big companies](http://www.gainlo.co/#!/) - I used this and it helped me relax for the phone screen and on-site interview
Pramp: Mock interviews from/with peers](https://www.pramp.com/) - a peer-to-peer model to practice interviews
interviewing.io: Practice mock interview with senior engineers](https://interviewing.io) - anonymous algorithmic/systems design interviews with senior engineers from FAANG anonymously
Meetapro: Mock interviews with top FAANG interviewers](https://meetapro.com/?utmsource=ciu) - an Airbnb-style mock interview/coaching platform.
Hello Interview: Mock Interviews with Expert Coaches and AI](https://www.hellointerview.com/?utmsource=ciu) - interview directly with AI or with FAANG staff engineers and managers.
Codemia: Practice system design problems with AI or community solutions and feedback](https://codemia.io/?utmsource=ciu) - Practice system design problems via AI practice tool. Share your solution wit…
The Unix Programming Environment](https://www.amazon.com/dp/013937681X)
The Linux Command Line: A Complete Introduction](https://www.amazon.com/dp/1593273894/)
TCP/IP Illustrated Series](https://en.wikipedia.org/wiki/TCP/IPIllustrated)
Head First Design Patterns](https://www.amazon.com/gp/product/0596007124/)
Design Patterns: Elements of Reusable Object-Oriented Software](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
Algorithm Design Manual](http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202) (Skiena)
Solutions](https://web.archive.org/web/20150404194210/http://www.algorithm.cs.sunysb.edu/algowiki/index.php/TheAlgorithmsDesignManual(SecondEdition))
Errata](http://www3.cs.stonybrook.edu/skiena/algorist/book/errata)
Algorithm](http://jeffe.cs.illinois.edu/teaching/algorithms/) (Jeff Erickson)
Write Great Code: Volume 1: Understanding the Machine](https://www.amazon.com/Write-Great-Code-Understanding-Machine/dp/1593270038)
The author invented , so take mentions and examples in HLA with a grain of salt. Not widely used, but decent examples of what assembly looks like
Introduction to Algorithms](https://www.amazon.com/Introduction-Algorithms-fourth-Thomas-Cormen/dp/026204630X)
Computer Architecture, Sixth Edition: A Quantitative Approach](https://www.amazon.com/dp/0128119055)
START HERE:
System Design from HiredInTech](http://www.hiredintech.com/system-design/)
How Do I Prepare To Answer Design Questions In A Technical Interview?](https://www.quora.com/How-do-I-prepare-to-answer-design-questions-in-a-technical-interview?redirectedqid=1500023)
8 steps guide to ace your system design interview](https://javascript.plainenglish.io/8-steps-guide-to-ace-a-system-design-interview-7a5a797f4d7d)
Database Normalization - 1NF, 2NF, 3NF and 4NF (video)](https://www.youtube.com/watch?v=UrYLYV7WSHM)
System Design Interview](https://github.com/checkcheckzz/system-design-interview) - There are a lot of resources in this one. Look through the articles and examples. I put some of them below
How to ace a systems design interview](https://web.archive.org/web/20120716060051/http://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)
Numbers Everyone Should Know](http://everythingisdata.wordpress.com/2009/10/17/numbers-everyone-should-know/)
How long does it take to make a context switch?](http://blog.tsunanet.net/2010/11/how-long-does-it-take-to-make-context.html)
Transactions Across Datacenters (video)](https://www.youtube.com/watch?v=srOgpXECblk)
A plain English introduction to CAP Theorem](http://ksat.me/a-plain-english-introduction-to-cap-theorem)
MIT 6.824: Distributed Systems, Spring 2020 (20 videos)](https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39tb2fErI4-WkMbsvGQk9UB)
Paxos -
Raft -
Easy-to-read paper](https://raft.github.io/)
Infographic](http://thesecretlivesofdata.com/raft/)
Consistent Hashing](http://www.tom-e-white.com/2007/11/consistent-hashing.html)
NoSQL Patterns](http://horicky.blogspot.com/2009/11/nosql-patterns.html)
Great overview (video)](https://www.youtube.com/watch?v=-W9FD3oY4)
Clones](http://www.lecloud.net/post/7295452622/scalability-for-dummies-part-1-clones)
Database](http://www.lecloud.net/post/7994751381/scalability-for-dummies-part-2-database)
Cache](http://www.lecloud.net/post/9246290032/scalability-for-dummies-part-3-cache)
Asynchronism](http://www.lecloud.net/post/9699762917/scalability-for-dummies-part-4-asynchronism)
Scalable Web Architecture and Distributed Systems](http://www.aosabook.org/en/distsys.html)
Fallacies of Distributed Computing Explained](https://pages.cs.wisc.edu/zuyu/files/fallacies.pdf)
Jeff Dean - Building Software Systems At Google and Lessons Learned (video)](https://www.youtube.com/watch?v=modXC5IWTJI)
Introduction to Architecting Systems for Scale](http://lethain.com/introduction-to-architecting-systems-for-scale/)
Scaling mobile games to a global audience using App Engine and Cloud Datastore (video)](https://www.youtube.com/watch?v=9nWyWwY2Onc)
How Google Does Planet-Scale Engineering for Planet-Scale Infra (video)](https://www.youtube.com/watch?v=H4vMcD7zKM0)
The Importance of Algorithms](https://www.topcoder.com/thrive/articles/The%20Importance%20of%20Algorithms)
Sharding](http://highscalability.com/blog/2009/8/6/an-unorthodox-approach-to-database-design-the-coming-of-the.html)
Engineering for the Long Game - Astrid Atkinson Keynote(video)](https://www.youtube.com/watch?v=p0jGmgIrfM&list=PLRXxvaym8gqVlExPC5DG3TGWJTaBgqSA&index=4)
7 Years Of YouTube Scalability Lessons In 30 Minutes](http://highscalability.com/blog/2012/3/26/7-years-of-youtube-scalability-lessons-in-30-minutes.html)
video](https://www.youtube.com/watch?v=G-lGCC4KKok)
How PayPal Scaled To Billions Of Transactions Daily Using Just 8VMs](http://highscalability.com/blog/2016/8/15/how-paypal-scaled-to-billions-of-transactions-daily-using-ju.html)
How to Remove Duplicates in Large Datasets](https://blog.clevertap.com/how-to-remove-duplicates-in-large-datasets/)
A look inside Etsy's scale and engineering culture with Jon Cowie (video)](https://www.youtube.com/watch?v=3vV4YiqKm1o)
What Led Amazon to its Own Microservices Architecture](http://thenewstack.io/led-amazon-microservices-architecture/)
To Compress Or Not To Compress, That Was Uber's Question](https://eng.uber.com/trip-data-squeeze/)
When Should Approximate Query Processing Be Used?](http://highscalability.com/blog/2016/2/25/when-should-approximate-query-processing-be-used.html)
The Image Optimization Technology That Serves Millions Of Requests Per Day](http://highscalability.com/blog/2016/6/15/the-image-optimization-technology-that-serves-millions-of-re.html)
A Patreon Architecture Short](http://highscalability.com/blog/2016/2/1/a-patreon-architecture-short.html)
Tinder: How Does One Of The Largest Recommendation Engines Decide Who You'll See Next?](http://highscalability.com/blog/2016/1/27/tinder-how-does-one-of-the-largest-recommendation-engines-de.html)
Design Of A Modern Cache](http://highscalability.com/blog/2016/1/25/design-of-a-modern-cache.html)
Live Video Streaming At Facebook Scale](http://highscalability.com/blog/2016/1/13/live-video-streaming-at-facebook-scale.html)
A Beginner's Guide To Scaling To 11 Million+ Users On Amazon's AWS](http://highscalability.com/blog/2016/1/11/a-beginners-guide-to-scaling-to-11-million-users-on-amazons.html)
A 360 Degree View Of The Entire Netflix Stack](http://highscalability.com/blog/2015/11/9/a-360-degree-view-of-the-entire-netflix-stack.html)
Latency Is Everywhere And It Costs You Sales - How To Crush It](http://highscalability.com/latency-everywhere-and-it-costs-you-sales-how-crush-it)
What Powers Instagram: Hundreds of Instances, Dozens of Technologies](http://instagram-engineering.tumblr.com/post/13649370142/what-powers-instagram-hundreds-of-instances)
Salesforce Architecture - How They Handle 1.3 Billion Transactions A Day](http://highscalability.com/blog/2013/9/23/salesforce-architecture-how-they-handle-13-billion-transacti.html)
ESPN's Architecture At Scale - Operating At 100,000 Duh Nuh Nuhs Per Second](http://highscalability.com/blog/2013/11/4/espns-architecture-at-scale-operating-at-100000-duh-nuh-nuhs.html)
O'Reilly MySQL CE 2011: Jeremy Cole, "Big and Small Data at @Twitter" (video)](https://www.youtube.com/watch?v=5cKTP36HVgI)
Timelines at Scale](https://www.infoq.com/presentations/Twitter-Timeline-Scalability)
review:
System Design from HiredInTech](http://www.hiredintech.com/system-design/)
cheat sheet](https://github.com/jwasham/coding-interview-university/blob/main/extras/cheat%20sheets/system-design.pdf)
Design a random unique ID generation system](https://blog.twitter.com/2010/announcing-snowflake)
Design a key-value database](http://www.slideshare.net/dvirsky/introduction-to-redis)
Design a picture sharing system](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)
Design a recommendation system](http://ijcai13.org/files/tutorialslides/td3.pdf)
Design a URL-shortener system: copied from above](http://www.hiredintech.com/system-design/the-system-design-process/)
Design a cache system](https://web.archive.org/web/20220217064329/https://adayinthelifeof.nl/2011/02/06/memcache-internals/)
How a Compiler Works in 1 minute (video)](https://www.youtube.com/watch?v=IhC7sdYe-Jg)
Harvard CS50 - Compilers (video)](https://www.youtube.com/watch?v=CSZLNYF4Klo)
C++ (video)](https://www.youtube.com/watch?v=twodd1KFfGk)
Understanding Compiler Optimization (C++) (video)](https://www.youtube.com/watch?v=FnGCDLhaxKU)
Editing With Vim 01 - Installation, Setup, and The Modes (video)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr)
VIM Adventures](http://vim-adventures.com/)
The vi/vim editor - Lesson 1](https://www.youtube.com/watch?v=SI8TeVMX8pk)
The vi/vim editor - Lesson 2](https://www.youtube.com/watch?v=F3OO7ZIOaJE)
The vi/vim editor - Lesson 3](https://www.youtube.com/watch?v=ZYEccAnMaI)
The vi/vim editor - Lesson 4](https://www.youtube.com/watch?v=1lYD5gwgZIA)
Using Vi Instead of Emacs](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#UsingViinsteadofEmacs)
Basics Emacs Tutorial (video)](https://www.youtube.com/watch?v=hbmV1bnQ-i0)
Emacs Tutorial (Beginners) -Part 1- File commands, cut/copy/paste, cursor commands](https://www.youtube.com/watch?v=ujODL7MD04Q)
Emacs Tutorial (Beginners) -Part 2- Buffer management, search, M-x grep and rgrep modes](https://www.youtube.com/watch?v=XWpsRupJ4II)
Emacs Tutorial (Beginners) -Part 3- Expressions, Statements, /.emacs file, and packages](https://www.youtube.com/watch?v=paSgzPso-yc)
Evil Mode: Or, How I Learned to Stop Worrying and Love Emacs (video)](https://www.youtube.com/watch?v=JWD1Fpdd4Pc)
Writing C Programs With Emacs](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#WritingCprogramswithEmacs)
The Absolute Beginner's Guide to Emacs (video by David Wilson)](https://www.youtube.com/watch?v=48JlgiBpwI&t=0s)
The Absolute Beginner's Guide to Emacs (notes by David Wilson)](https://systemcrafters.net/emacs-essentials/absolute-beginners-guide-to-emacs/)
Khan Academy](https://www.khanacademy.org/computing/computer-science/informationtheory)
Core Markov Text Generation](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/waxgx/core-markov-text-generation)
Core Implementing Markov Text Generation](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/gZhiC/core-implementing-markov-text-generation)
Project = Markov Text Generation Walk Through](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/EUjrq/project-markov-text-generation-walk-through)
Intro](https://www.youtube.com/watch?v=q-3BctoUpHE)
Parity](https://www.youtube.com/watch?v=DdMcAUlxh1M)
Error detection](https://www.youtube.com/watch?v=1ANcXxdoCc)
Error correction](https://www.youtube.com/watch?v=JAMLuxdHH8o)
Error Checking](https://www.youtube.com/watch?v=wbH2VxzmoZk)
Khan Academy Series](https://www.khanacademy.org/computing/computer-science/cryptography)
Cryptography: Hash Functions](https://www.youtube.com/watch?v=KqqOXndnvic&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=30)
Cryptography: Encryption](https://www.youtube.com/watch?v=9TNI2wHmaeI&index=31&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
Compression](https://www.youtube.com/watch?v=Lto-ajuqW3w)
Entropy in Compression](https://www.youtube.com/watch?v=M5cRFKVkko)
Upside Down Trees (Huffman Trees)](https://www.youtube.com/watch?v=umTbivyJoiI)
EXTRA BITS/TRITS - Huffman Trees](https://www.youtube.com/watch?v=DV8efuB3h2g)
Elegant Compression in Text (The LZ 77 Method)](https://www.youtube.com/watch?v=goOa3DGezUA)
Text Compression Meets Probabilities](https://www.youtube.com/watch?v=cCDCfoHTsaU)
Compressor Head videos](https://www.youtube.com/playlist?list=PLOU2XLYxmsIJGErt5rrCqaSGTMyyqNt2H)
optional) Google Developers Live: GZIP is not enough!](https://www.youtube.com/watch?v=whGwm0Lky2s)
MIT (23 videos)](https://www.youtube.com/playlist?list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
Introduction, Threat Models](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
Control Hijacking Attacks](https://www.youtube.com/watch?v=6bwzNg5qQ0o&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=2)
Buffer Overflow Exploits and Defenses](https://www.youtube.com/watch?v=drQyrzRoRiA&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=3)
Privilege Separation](https://www.youtube.com/watch?v=6SIJmoE9L9g&index=4&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
Capabilities](https://www.youtube.com/watch?v=8VqTSY-11F4&index=5&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
Sandboxing Native Code](https://www.youtube.com/watch?v=VEV74hwASeU&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh&index=6)
Web Security Model](https://www.youtube.com/watch?v=chkFBigodIw&index=7&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
Securing Web Applications](https://www.youtube.com/watch?v=EBQIGy1ROLY&index=8&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
Symbolic Execution](https://www.youtube.com/watch?v=yRVZPvHYHzw&index=9&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
Network Security](https://www.youtube.com/watch?v=SIEVvk3NVuk&index=11&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
Network Protocols](https://www.youtube.com/watch?v=QOtA76gafY&index=12&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
Side-Channel Attacks](https://www.youtube.com/watch?v=PuVMkSEcPiI&index=15&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
GC in Python (video)](https://www.youtube.com/watch?v=iHVsHkjdmI)
Deep Dive Java: Garbage Collection is Good!](https://www.infoq.com/presentations/garbage-collection-benefits)
Deep Dive Python: Garbage Collection in CPython (video)](https://www.youtube.com/watch?v=P-8Z0-MhdQs&list=PLdzf4Clw0VbOEWOSsLhT9zaiQDrS5AR&index=3)
Thrift](https://thrift.apache.org/)
Tutorial](http://thrift-tutorial.readthedocs.io/en/latest/intro.html)
Protocol Buffers](https://developers.google.com/protocol-buffers/)
Tutorials](https://developers.google.com/protocol-buffers/docs/tutorials)
gRPC](http://www.grpc.io/)
gRPC 101 for Java Developers (video)](https://www.youtube.com/watch?v=5tmPvSe7xXQ&list=PLcTqM9ndieN0k1nSeN36ZppKnvMJoly&index=1)
Redis](http://redis.io/)
Tutorial](http://try.redis.io/)
Amazon SQS (queue)](https://aws.amazon.com/sqs/)
Amazon SNS (pub-sub)](https://aws.amazon.com/sns/)
RabbitMQ](https://www.rabbitmq.com/)
Get Started](https://www.rabbitmq.com/getstarted.html)
Celery](http://www.celeryproject.org/)
First Steps With Celery](http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html)
ZeroMQ](http://zeromq.org/)
Intro - Read The Manual](http://zeromq.org/intro:read-the-manual)
ActiveMQ](http://activemq.apache.org/)
Kafka](http://kafka.apache.org/documentation.html#introduction)
MessagePack](http://msgpack.org/index.html)
Avro](https://avro.apache.org/)
An Interactive Guide To The Fourier Transform](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/)
What is a Fourier transform? What is it used for?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/)
What is the Fourier Transform? (video)](https://www.youtube.com/watch?v=Xxut2PN-V8Q)
Divide & Conquer: FFT (video)](https://www.youtube.com/watch?v=iTMn0Kt18tg&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=4)
Understanding The FFT](http://jakevdp.github.io/blog/2013/08/28/understanding-the-fft/)
Bloom Filters (video)](https://www.youtube.com/watch?v=-SuTGoFYjZs)
Bloom Filters | Mining of Massive Datasets | Stanford University (video)](https://www.youtube.com/watch?v=qBTdukbzc78)
Tutorial](http://billmill.org/bloomfilter-tutorial/)
How To Write A Bloom Filter App](http://blog.michaelschmatz.com/2016/04/11/how-to-write-a-bloom-filter-cpp/)
Divide & Conquer: van Emde Boas Trees (video)](https://www.youtube.com/watch?v=hmReJCupbNU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=6)
MIT Lecture Notes](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-design-and-analysis-of-algorithms-spring-2012/lecture-notes/MIT6046JS12lec15.pdf)
Self-balancing binary search tree](https://en.wikipedia.org/wiki/Self-balancingbinarysearchtree)
MIT AVL Trees / AVL Sort (video)](https://www.youtube.com/watch?v=FNeL18KsWPc&list=PLUl4u3cNGP61Oq3tWYp6VF-5jb5L2iHb&index=6)
AVL Trees (video)](https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees)
AVL Tree Implementation (video)](https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation)
Split And Merge](https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge)
CS 61B: Splay Trees (video)](https://archive.org/details/ucberkeleywebcastG5QIXywcJlY)
Video](https://www.youtube.com/watch?v=QnPlY6EqMo)
Aduni - Algorithms - Lecture 4 (link jumps to the starting point) (video)](https://youtu.be/1W3x0fRmUo?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3871)
Aduni - Algorithms - Lecture 5 (video)](https://www.youtube.com/watch?v=hm2GHwyKF1o&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=5)
Red-Black Tree](https://en.wikipedia.org/wiki/Red%E2%80%93blacktree)
An Introduction To Binary Search And Red Black Tree](https://www.topcoder.com/thrive/articles/An%20Introduction%20to%20Binary%20Search%20and%20Red-Black%20Trees)
23-Tree Intuition and Definition (video)](https://www.youtube.com/watch?v=C3SsdUqasD4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=2)
Binary View of 23-Tree](https://www.youtube.com/watch?v=iYvBtGKsqSg&index=3&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
2-3 Trees (student recitation) (video)](https://www.youtube.com/watch?v=TOb1tuEZ2X4&index=5&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
CS 61B Lecture 26: Balanced Search Trees (video)](https://archive.org/details/ucberkeleywebcastzqrqYXkth6Q)
Bottom Up 234-Trees (video)](https://www.youtube.com/watch?v=DQdMYevEyE4&index=4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
Top Down 234-Trees (video)](https://www.youtube.com/watch?v=2679VQ26Fp4&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=5)
K-Ary Tree](https://en.wikipedia.org/wiki/K-arytree)
B-Tree](https://en.wikipedia.org/wiki/B-tree)
B-Tree Datastructure](http://btechsmartclass.com/datastructures/b-trees.html)
Introduction to B-Trees (video)](https://www.youtube.com/watch?v=I22wEC1tTGo&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6&index=6)
B-Tree Definition and Insertion (video)](https://www.youtube.com/watch?v=s3bCdZGrgpA&index=7&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
B-Tree Deletion (video)](https://www.youtube.com/watch?v=svfnVhJOfMc&index=8&list=PLA5Lqm4uh9Bbq-E0ZnqTIa8LRaL77ica6)
MIT 6.851 - Memory Hierarchy Models (video)](https://www.youtube.com/watch?v=V3omVLzI0WE&index=7&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf)
Ford-Fulkerson in 5 minutes — Step by step example (video)](https://www.youtube.com/watch?v=Tl90tNtKvxs)
Ford-Fulkerson Algorithm (video)](https://www.youtube.com/watch?v=v1VgJmkEJW0)
Network Flows (video)](https://www.youtube.com/watch?v=2vhN4Ice5jI)
UCB 61B - Disjoint Sets; Sorting & selection (video)](https://archive.org/details/ucberkeleywebcastMAEGXTwmUsI)
Sedgewick Algorithms - Union-Find (6 videos)](https://www.coursera.org/learn/algorithms-part1/home/week/1)
Integer Arithmetic, Karatsuba Multiplication (video)](https://www.youtube.com/watch?v=eCaXlAaN2uE&index=11&list=PLUl4u3cNGP61Oq3tWYp6VF-5jb5L2iHb)
The Chinese Remainder Theorem (used in cryptography) (video)](https://www.youtube.com/watch?v=ru7mWZJlRQg)
Linear Programming](https://www.youtube.com/watch?v=M4K6HYLHREQ)
Finding minimum cost](https://www.youtube.com/watch?v=2ACJ9ewUC6U)
Finding maximum value](https://www.youtube.com/watch?v=8AA81xI3ik)
Solve Linear Equations with Python - Simplex Algorithm](https://www.youtube.com/watch?v=44pAWI7v5Zk)
Graph Alg. IV: Intro to geometric algorithms - Lecture 9](https://youtu.be/XIAQRlNkJAw?list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&t=3164)
Geometric Algorithms: Graham & Jarvis - Lecture 10](https://www.youtube.com/watch?v=J5aJEcOr6Eo&index=10&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm)
Divide & Conquer: Convex Hull, Median Finding](https://www.youtube.com/watch?v=EzeYI7p9MjU&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=2)
Computer Science 70, 001 - Spring 2015 - Discrete Mathematics and Probability Theory](http://www.infocobuild.com/education/audio-video-courses/computer-science/cs70-spring2015-berkeley.html)
Discrete Mathematics by Shai Simonson (19 videos)](https://www.youtube.com/playlist?list=PLWX710qNZosNlSWRMVIh6kfTjolNaZ8t)
Discrete Mathematics By IIT Ropar NPTEL](https://nptel.ac.in/courses/106/106/106106183/)
Bob Martin SOLID Principles of Object Oriented and Agile Design (video)](https://www.youtube.com/watch?v=TMuno5RZNeE)
S - | Single responsibility to each Object
more flavor](https://docs.google.com/open?id=0ByOwmqahnuGNHEtcU5OekdDMkk)
O - | On production level Objects are ready for extension but not for modification
more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgN2M5MTkwM2EtNWFkZC00ZTI3LWFjZTUtNTFhZGZiYmUzODc1&hl=en)
L - | Base Class and Derived class follow ‘IS A’ Principle
more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgNzAzZjA5ZmItNjU3NS00MzQ5LTkwYjMtMDJhNDU5ZTM0MTlh&hl=en)
I - | Clients should not be forced to implement interfaces they don't use
Interface Segregation Principle in 5 minutes (video)](https://www.youtube.com/watch?v=3CtAfl7aXAQ)
more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgOTViYjJhYzMtMzYxMC00MzFjLWJjMzYtOGJiMDc5N2JkYmJi&hl=en)
D -| Reduce the dependency In composition of objects.
Why Is The Dependency Inversion Principle And Why Is It Important](http://stackoverflow.com/questions/62539/what-is-the-dependency-inversion-principle-and-why-is-it-important)
more flavor](http://docs.google.com/a/cleancoder.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwhCYaYDn8EgMjdlMWIzNGUtZTQ0NC00ZjQ5LTkwYzQtZjRhMDRlNTQ3ZGMz&hl=en)
Overview](https://www.coursera.org/learn/data-structures/lecture/JssSY/overview)
Naive Implementation](https://www.coursera.org/learn/data-structures/lecture/EM5D0/naive-implementations)
Trees](https://www.coursera.org/learn/data-structures/lecture/Mxu0w/trees)
Union By Rank](https://www.coursera.org/learn/data-structures/lecture/qb4c2/union-by-rank)
Path Compression](https://www.coursera.org/learn/data-structures/lecture/Q9CVI/path-compression)
Analysis Options](https://www.coursera.org/learn/data-structures/lecture/GQQLN/analysis-optional)
6.006: Dynamic Programming I: Fibonacci, Shortest Paths](https://www.youtube.com/watch?v=r4-cftqTcdI&abchannel=MITOpenCourseWare)
6.006: Dynamic Programming II: Text Justification, Blackjack](https://www.youtube.com/watch?v=KLBCUx1is2c&abchannel=MITOpenCourseWare)
6.006: DP III: Parenthesization, Edit Distance, Knapsack](https://www.youtube.com/watch?v=TDo3r5M1LNo&abchannel=MITOpenCourseWare)
6.006: DP IV: Guitar Fingering, Tetris, Super Mario Bros.](https://www.youtube.com/watch?v=i9OAOk0CUQE&abchannel=MITOpenCourseWare)
6.046: Dynamic Programming & Advanced DP](https://www.youtube.com/watch?v=Tw1k46ywN6E&index=14&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
6.046: Dynamic Programming: All-Pairs Shortest Paths](https://www.youtube.com/watch?v=NzgFUwOaoIw&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=15)
6.046: Dynamic Programming (student recitation)](https://www.youtube.com/watch?v=krZI60lKPek&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=12)
Synchronous Distributed Algorithms: Symmetry-Breaking. Shortest-Paths Spanning Trees](https://www.youtube.com/watch?v=mUBmcbbJNf4&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=27)
Asynchronous Distributed Algorithms: Shortest-Paths Spanning Trees](https://www.youtube.com/watch?v=kQ-UQAzcnzA&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp&index=28)
MIT 6.042J - Probability Introduction](https://www.youtube.com/watch?v=SmFwFdESMHI&index=18&list=PLB7540DEDD482705B)
MIT 6.042J - Conditional Probability](https://www.youtube.com/watch?v=E6FbvM-FGZ8&index=19&list=PLB7540DEDD482705B)
MIT 6.042J - Independence](https://www.youtube.com/watch?v=l1BCv3qqW4A&index=20&list=PLB7540DEDD482705B)
MIT 6.042J - Random Variables](https://www.youtube.com/watch?v=MOfhhFaQdjw&list=PLB7540DEDD482705B&index=21)
MIT 6.042J - Expectation I](https://www.youtube.com/watch?v=gGlMSe7uEkA&index=22&list=PLB7540DEDD482705B)
MIT 6.042J - Expectation II](https://www.youtube.com/watch?v=oI9fMUqgfxY&index=23&list=PLB7540DEDD482705B)
MIT 6.042J - Large Deviations](https://www.youtube.com/watch?v=q4mwO2qS2z4&index=24&list=PLB7540DEDD482705B)
MIT 6.042J - Random Walks](https://www.youtube.com/watch?v=56iFMY8QW2k&list=PLB7540DEDD482705B&index=25)
Simonson: Approximation Algorithms (video)](https://www.youtube.com/watch?v=oDniZCmNmNw&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=19)
Rabin Karps Algorithm](https://www.coursera.org/lecture/data-structures/rabin-karps-algorithm-c0Qkw)
Precomputing](https://www.coursera.org/learn/data-structures/lecture/nYrc8/optimization-precomputation)
Optimization: Implementation and Analysis](https://www.coursera.org/learn/data-structures/lecture/h4ZLc/optimization-implementation-and-analysis)
Table Doubling, Karp-Rabin](https://www.youtube.com/watch?v=BRO7mVIFt08&list=PLUl4u3cNGP61Oq3tWYp6VF-5jb5L2iHb&index=9)
Rolling Hashes, Amortized Analysis](https://www.youtube.com/watch?v=w6nuXg0BISo&list=PLUl4u3cNGP61Oq3tWYp6VF-5jb5L2iHb&index=32)
TThe Knuth-Morris-Pratt (KMP) String Matching Algorithm](https://www.youtube.com/watch?v=5i7oKodCRJo)
Boyer-Moore String Search Algorithm](https://en.wikipedia.org/wiki/Boyer%E2%80%93Moorestringsearchalgorithm)
Advanced String Searching Boyer-Moore-Horspool Algorithms (video)](https://www.youtube.com/watch?v=QDZpzctPf10)
Coursera: Algorithms on Strings](https://www.coursera.org/learn/algorithms-on-strings/home/week/1)
Lecture 15 | Programming Abstractions (video)](https://www.youtube.com/watch?v=ENp00xylP7c&index=15&list=PLFE6E58F856038C69)
Lecture 16 | Programming Abstractions (video)](https://www.youtube.com/watch?v=y4M9IVgrVKo&index=16&list=PLFE6E58F856038C69)
Algorithms - Sorting - Lecture 2 (video)](https://www.youtube.com/watch?v=odNJmw5TOEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=2)
Algorithms - Sorting II - Lecture 3 (video)](https://www.youtube.com/watch?v=hj8YKFTFKEE&list=PLFDnELG9dpVxQCxuD-9BSy2E7BWY3t5Sm&index=3)
CSE373 2020 - Mergesort/Quicksort (video)](https://www.youtube.com/watch?v=jUf-UQ3a0kg&list=PLOtl7M3yp-DX6ic0HGT0PUXwiNmkWkXx&index=8)
CSE373 2020 - Linear Sorting (video)](https://www.youtube.com/watch?v=0ksyQKmre84&list=PLOtl7M3yp-DX6ic0HGT0PUXwiNmkWkXx&index=9)
NAND To Tetris:
List of individual Dynamic Programming problems (each is short)](https://www.youtube.com/playlist?list=PLrmLmBdmIlpsHaNTPPjHHDxos9ItYXr)
x86 Architecture, Assembly, Applications (11 videos)](https://www.youtube.com/playlist?list=PL038BE01D3BAEFDB0)
MIT 18.06 Linear Algebra, Spring 2005 (35 videos)](https://www.youtube.com/playlist?list=PLE7DDD91010BC51F8)
Excellent - MIT Calculus Revisited: Single Variable Calculus](https://www.youtube.com/playlist?list=PL3B08AE665AB9002A)
Skiena lectures from Algorithm Design Manual - CSE373 2020 - Analysis of Algorithms (26 videos)](https://www.youtube.com/watch?v=22hwcnXIGgk&list=PLOtl7M3yp-DX6ic0HGT0PUXwiNmkWkXx&index=1)
UC Berkeley 61B (Spring 2014): Data Structures (25 videos)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvAiAlnI-BQr9hjqADPBtujFJd)
UC Berkeley 61B (Fall 2006): Data Structures (39 videos)](https://archive.org/details/ucberkeley-webcast-PL4BBB74C7D2A1049C)
UC Berkeley 61C: Machine Structures (26 videos)](https://archive.org/details/ucberkeley-webcast-PL-XXv-cvAiCl2-D-FS5mk0jFF6cYSJs)
OOSE: Software Dev Using UML and Java (21 videos)](https://www.youtube.com/playlist?list=PLJ9pmRc9HesnkwKlalbuSIHA-jTZMpO)
MIT 6.004: Computation Structures (49 videos)](https://www.youtube.com/playlist?list=PLDSlqjcPpoL64CJdF0Qee5oWqGS6weYu)
Carnegie Mellon - Computer Architecture Lectures (39 videos)](https://www.youtube.com/playlist?list=PL5PHm2jkkXmi5CxxI7b3JCL1TWybTDtKq)
MIT 6.006: Intro to Algorithms (47 videos)](https://www.youtube.com/watch?v=HtSuA80QTyo&list=PLUl4u3cNGP61Oq3tWYp6VF-5jb5L2iHb&nohtml5=False)
MIT 6.033: Computer System Engineering (22 videos)](https://www.youtube.com/watch?v=zm2VP0kHl1M&list=PL6535748F59DCA484)
MIT 6.034 Artificial Intelligence, Fall 2010 (30 videos)](https://www.youtube.com/playlist?list=PLUl4u3cNGP63gFHB6xb-kVBiQHYe4hSi)
MIT 6.042J: Mathematics for Computer Science, Fall 2010 (25 videos)](https://www.youtube.com/watch?v=L3LMbpZIKhQ&list=PLB7540DEDD482705B)
MIT 6.046: Design and Analysis of Algorithms (34 videos)](https://www.youtube.com/watch?v=2P-yW7LQr08&list=PLUl4u3cNGP6317WaSNfmCvGym2ucw3oGp)
MIT 6.824: Distributed Systems, Spring 2020 (20 videos)](https://www.youtube.com/watch?v=cQP8WApzIQQ&list=PLrw6a1wE39tb2fErI4-WkMbsvGQk9UB)
MIT 6.851: Advanced Data Structures (22 videos)](https://www.youtube.com/watch?v=T0yzrZL1py0&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf&index=1)
MIT 6.854: Advanced Algorithms, Spring 2016 (24 videos)](https://www.youtube.com/playlist?list=PL6ogFv-ieghdoGKGg2Bik3Gl1glBTEu8c)
Harvard COMPSCI 224: Advanced Algorithms (25 videos)](https://www.youtube.com/playlist?list=PL2SOU6wwxB0uP4rJgf5ayhHWgw7akUWSf)
MIT 6.858 Computer Systems Security, Fall 2014](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh)
Stanford: Programming Paradigms (27 videos)](https://www.youtube.com/playlist?list=PL9D558D49CA734A02)
Introduction to Cryptography by Christof Paar](https://www.youtube.com/playlist?list=PL6N5qY2nvvJE8X75VkXglSrVhLv1tVcfy)
Course Website along with Slides and Problem Sets](http://www.crypto-textbook.com/)
Mining Massive Datasets - Stanford University (94 videos)](https://www.youtube.com/playlist?list=PLLssT5zDsK9JDLcT8T62VtzwyW9LNepV)
Graph Theory by Sarada Herke (67 videos)](https://www.youtube.com/user/DrSaradaHerke/playlists?shelfid=5&view=50&sort=dd)
Love classic papers?](https://www.cs.cmu.edu/crary/819-f09/)
1978: Communicating Sequential Processes](http://spinroot.com/courses/summer/Papers/hoare1978.pdf)
implemented in Go](https://godoc.org/github.com/thomas11/csp)
2003: The Google File System](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf)
2006: Bigtable: A Distributed Storage System for Structured Data](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf)
2006: The Chubby Lock Service for Loosely-Coupled Distributed Systems](https://research.google.com/archive/chubby-osdi06.pdf)
2007: Dynamo: Amazon’s Highly Available Key-value Store](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf)
2007: What Every Programmer Should Know About Memory (very long, and the author encourages skipping of some sections)](https://www.akkadia.org/drepper/cpumemory.pdf)
paper](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/37752.pdf)
video](https://www.usenix.org/conference/atc12/technical-sessions/presentation/serebryany)
paper](http://static.googleusercontent.com/media/research.google.com/en//archive/spanner-osdi2012.pdf)
video](https://www.usenix.org/node/170855)
2015: Continuous Pipelines at Google](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43790.pdf)
2015: High-Availability at Massive Scale: Building Google’s Data Infrastructure for Ads](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/44686.pdf)
2015: How Developers Search for Code: A Case Study](http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43835.pdf)
More papers: