Big-O Notation & Complexity

The most practical math for every programmer. O(1) constant, O(log n) binary search, O(n) linear scan, O(n log n) sorting, O(n²) nested loops, O(2ⁿ) exponential. Understand: why hash map lookup is O(1), why merge sort beats bubble sort, why recursive Fibonacci is exponentially slow without memoization. Practice: analyze the time and space complexity of every algorithm you write. This skill is tested in every technical interview.

Discrete Mathematics

Boolean algebra: AND, OR, NOT, XOR — the foundation of all programming logic. De Morgan's laws simplify complex conditions. Set theory: Union, intersection, difference — directly maps to SQL JOINs, array operations, and database queries. Combinatorics: Permutations (n!) and combinations (n choose k) — essential for algorithm analysis and probability. Modular arithmetic: Cryptography, hashing, and competitive programming all use mod operations extensively.

Probability & Statistics

Essential for: A/B testing, recommendation systems, ML, and performance analysis. Basics: Probability rules, Bayes' theorem, expected value. Distributions: Normal (bell curve), Poisson (events over time), Bernoulli (binary outcomes). Statistics: Mean, median, standard deviation, percentiles (p95 latency). Practical use: Understanding why your A/B test needs 10,000 users for statistical significance, or why p99 latency matters more than average.

Linear Algebra

Critical for: machine learning, computer graphics, game development. Vectors: Direction and magnitude, dot product, cross product. Matrices: Transformations, rotations, scaling. Neural networks are just matrix multiplications. Eigenvalues: PCA (dimensionality reduction), Google's PageRank. If you're building web APIs, you rarely need linear algebra. If you're doing ML, graphics, or scientific computing, it's essential.

Graph Theory

Graphs model networks, dependencies, and relationships. Concepts: Vertices, edges, directed vs undirected, weighted graphs. Algorithms: BFS, DFS, Dijkstra's shortest path, topological sort, minimum spanning tree. Applications: Social networks (friend recommendations), navigation (Google Maps), package managers (dependency resolution), compilers (instruction scheduling). Graph problems appear in 15-20% of coding interviews.

Number Theory Basics

Prime numbers: Sieve of Eratosthenes, primality testing — used in cryptography. GCD/LCM: Euclidean algorithm — appears in fraction simplification and scheduling problems. Modular exponentiation: Fast power computation — critical for cryptography (RSA). Binary representation: Bit manipulation, powers of 2, bit masking. Most web developers rarely use number theory, but it's essential for security, competitive programming, and systems work.

How to Learn Math as a Developer

Don't try to learn everything upfront. Instead: (1) Learn Big-O and discrete math fundamentals, (2) Pick up probability when you encounter A/B testing or data analysis, (3) Learn linear algebra when you start ML or graphics. Resources: Khan Academy (free, excellent), 3Blue1Brown (visual intuition), MIT OCW 6.042 (Math for CS). Practice math through coding — implement algorithms, visualize concepts, and solve problems on competitive programming platforms.