Data Structure – LLDs – ( 1 Week )
- Lists
- Stacks
- Queue
- Hashtable
- BST
- Red Black Tree
- Heaps
- Fibonacci Heaps
- Disjoint Sets
- Tries (PrefixTree, suffixTree)
- Interval Trees/Segment Tree
- Other Tree Data Structures(Graphs)
Algorithms – Analysis Time and Space – ( 3 Weeks )
- Sorting – 2 Days
- Selection Sort – Merge Sorted Array
- Bubble Sort – Sort Colors
- Insertion Sort – Insertion Sort List
- Merge Sort – Sort an Array
- Counting Sort – Relative Sort Array
- Tree sort – Convert Sorted List to Binary Search Tree
- Bucket Sort – Top K Frequent Elements
- Radix Sort – Maximum Gap
- Topological sort – Covered in Graphs
- Divide-and-Conquer – 2 Days
- The maximum-subarray problem – Maximum Subarray
- Strassen’s algorithm for matrix multiplication – Divide and Conquer | Set 5 (Strassen’s Matrix Multiplication)
- The substitution method for solving recurrences
- The recursion-tree method for solving recurrences
- The master method for solving recurrences
- Dynamic Programming – 2 Days
- Rod cutting – Integer Break
- Dynamic Programming for the confused : Rod cutting problem
- Matrix-chain multiplication – Burst Balloons
- Elements of dynamic programming
- Longest common subsequence – Longest Common Subsequence
- Optimal binary search trees
- Greedy Algorithms – 2 Days
- An activity-selection problem – Minimum Number of Arrows to Burst Balloons
- Elements of the greedy strategy
- Huffman codes – Construct Huffman Tree, Google | Onsite | Software Engineer | Huffman Coding Algorithm, Minimum Cost Tree From Leaf Values
- Matroids and greedy methods – Matroid intersection in simple words
- A task-scheduling problem as a matroid – Task Scheduler
- Graph Algorithms – 6 Days
Leetcode Pattern 1 | DFS + BFS == 25% of the problems
- N-ary Tree Preorder Traversal
- N-ary Tree Postorder Traversal
- N-ary Tree Level Order Traversal
- BFS
- DFS
- Topological Sort – Topological Sort
- Strongly Connected Components – SCC – Course Schedule, Facebook | Minimum number of people to spread a message, Airbnb | Cover all vertices with the least number of vertices, Critical Connections in a Network
- Minimum spanning Tree – Prim’s Algorithm
- Shortest Path Algos –
- Bellman-Ford – Network Delay Time, https://leetcode.com/problems/get-watched-videos-by-your-friends/
- Dijkstra’s algorithm
- Floyd-Warshall
- Johnson’s algorithm
- The Ford-Fulkerson method
- Number-Theoretic Algorithms – 2 Days
- The Chinese remainder theorem – Check If It Is a Good Array
- Greatest common divisor
- Powers of an element
- The RSA public-key cryptosystem
- Integer factorization
- String Matching – 2 Day
- The Rabin-Karp algorithm
- String matching with finite automata
- The Knuth-Morris-Pratt algorithm
- Approximation Algorithms – 3 Days
- The vertex-cover problem
- The traveling-salesman problem Find the Shortest Superstring
- The set-covering problem
- Randomization and linear programming
- The subset-sum problem
- Randomized Algorithms – 1 Day
- Quick Sort
- Min Cut Palindrome Partitioning II
Concepts Problems and Math – ( 1 Week )
- Matrix Operations
- Linear Programming
- Polynomials – DFT, FFT
- Computational Geometry
- Line-segment properties
- Determining whether any pair of segments intersects
- Finding the convex hull – Erect the Fence, The Skyline Problem
- Finding the closest pair of points – K Closest Points to Origin
- GCD and LCM
- Prime Factorization and Divisors
- Fibonacci Numbers
- Catalan Numbers – Unique Binary Search Trees
- Modular Arithmetic
- Euler Totient Function
- nCr Computations
- Set Theory
- Factorial
- Prime numbers and Primality Tests
- Sieve Algorithms
- Divisibility and Large Numbers
- Series
- Number Digit
- Triangles
Networks – ( 1 Week )
- Network Topology, OSI Architecture
- TCP/IP models
- TCP and UDP
- Firewall, DNS, Domains, workgroups
- Protocols i.e ICMP
OS – ( 1 week )
Operating System Tutorial
Shared Memory Systems
- Cache
- Multithreading
- Producers-consumers problem
- Dining philosophers problem
- Cigarette smokers problem
- Readers–writers problem
- Web Crawler Multithreaded
- Scheduling algorithms
- Deadlock
- Virtual Memory
- Mutex and semaphore
- Kernels
- Paging
Software Design Principles – ( 2 weeks )
Start learning about Theory of Distributed Systems?
Challenges with distributed systems
Microservices Design Guide 👨🏫 – Platform Engineer
Cloud design patterns – Azure Architecture Center
Design patterns for microservices | Azure Blog and Updates
TO READ:
Domain Driven Design (DDD) | Bounded Context (BC) | Polyglot Persistence (PP)| Command and Query Responsibility Segregation (CQRS) | Command Query Separation (CQS) | Event-Sourcing (ES) | CAP Theorem | Eventual Consistency | Twelve-Factor App | SOLID Principles |
Just some things to focus on.
- Load balancer
- API gateway
- Microservices – Scale Cube Concept, MVC – READ
- Database Sharding
- SQL vs NoSQL – Cassandra, Postgres, Hadoop, Data lake, other algorithms related to data lake, CAP Theorem
Leadership Principles – LPs – ( 1 Week )
TO BE UPDATED
Resume and Miscellaneous
#ADD WHATEVER YOU HAVE PUT IN RESUME
- Algos you have mentioned
- Project work and related references to read
- Achievements and information about it
REFERENCES
Introduction to Algorithms – Cormen
Leetcode