Technical Fundamentals & Core Skills Topics
Core technical concepts including algorithms, data structures, statistics, cryptography, and hardware-software integration. Covers foundational knowledge required for technical roles and advanced technical depth.
Number Theory and Mathematical Foundations of Cryptography
The mathematics underpinning cryptographic schemes: modular arithmetic, prime generation, discrete logarithms, group and field theory, and hardness assumptions. Covers deriving why schemes are secure and the parameter choices that keep them so. The theory layer distinguishing a cryptographer from a library user.
Post-Quantum and Lattice-Based Cryptography
Cryptography designed to resist quantum attacks: lattice-based schemes, the underlying hard problems (LWE, SIS), and the mathematics of post-quantum standards. Covers why current public-key schemes are vulnerable to quantum algorithms and how migration candidates work. A specialized, forward-looking cryptography area.
Sorting and Searching Algorithms
Comparison and non-comparison sorts (quicksort, mergesort, heapsort, counting/radix), their stability and complexity, and binary search with its many variants. Covers divide-and-conquer reasoning, searching in rotated or implicit spaces, and choosing an algorithm from input constraints. A staple of both fundamentals screens and optimization discussions.
Algorithmic Problem-Solving and Data Structure Selection
The higher-order meta-skill of attacking an unfamiliar problem: recognizing problem archetypes and mapping them to known techniques, decomposing under constraints, and choosing, composing, or designing the right data structures to meet specified operation costs (LRU cache, min-stack, ordered maps, disjoint-set/union-find). Covers reasoning about trade-offs between competing structures and approaches, working through medium-to-hard problems methodically, handling problem variations, and communicating an approach before coding. The connective-tissue topic that ties the individual structure and algorithm topics together, rather than any single structure or algorithm.
Symmetric Encryption and Block Ciphers
Symmetric-key cryptography: block-cipher design (AES, Feistel structures), modes of operation, stream ciphers, and authenticated encryption with associated data (AEAD). Covers padding, IV/nonce handling, and the failure modes of misusing modes. Foundational for anyone building or evaluating data-at-rest and data-in-transit protection.
Linked Lists, Stacks, and Queues
Pointer-based linear structures: singly and doubly linked lists, stacks, queues, and deques. Covers pointer manipulation, cycle detection, reversal, and using LIFO/FIFO ordering to model traversal, undo, and scheduling problems. Foundational for both interview problems and understanding how higher-level structures are built.
String Algorithms and Pattern Matching
Advanced string processing beyond basic manipulation: substring search (KMP, Rabin-Karp, Z-algorithm), tries and suffix structures, edit distance, and text-parsing problems. Covers the algorithmic machinery behind search, autocomplete, and tokenization. Distinct from introductory string manipulation in depth and complexity.
Time and Space Complexity Analysis
Reasoning about algorithmic efficiency: Big-O/Theta/Omega notation, amortized analysis, recurrence solving, and the time-versus-space trade-off. Covers deriving bounds from code, comparing candidate approaches, and communicating complexity clearly under interview pressure. The analytical layer applied across every algorithm topic.
Cryptography Fundamentals
Core concepts and vocabulary of cryptography: confidentiality, integrity, authentication, and non-repudiation; the difference between symmetric and asymmetric primitives; and how standard algorithms, libraries, and protocols fit together. Covers threat models, common standards, and applying primitives and cryptographic libraries correctly to real-world security problems. The entry point for the cryptography track.