Software Engineering Prep
Interview preparation materials for software engineering, algorithms, and system design
Welcome to the Software Engineering Prep section. This section contains comprehensive interview preparation materials covering key computer science concepts, algorithms, data structures, and software design principles, with Python code examples.
Topics
- Divide and Conquer - Master Theorem, Akra-Bazzi, Strassen's Algorithm, and Merge Sort
- Dynamic Programming - Knapsack, LCS, Edit Distance, and Coin Change
- Graph Algorithms - BFS, DFS, Dijkstra, Kruskal, Tarjan, and Network Flow
- FFT and Numerical Algorithms - DFT, FFT, and Polynomial Multiplication
- Data Structures - Essential data structures for interviews
- Sorting Algorithms - Comparison and non-comparison based sorting
- Pattern Matching - KMP, Rabin-Karp, and String Algorithms
- Programming Techniques - Sliding Window, Two Pointers, and common interview patterns
- Networking Basics - Fundamental networking concepts for engineers
- Software Design - OOP Principles, Design Patterns, and SOLID