CS fundamentals are the foundation every other technical topic builds on. When an interviewer asks about processes vs threads, hash table internals, or stack vs heap allocation, they’re testing whether you have genuine understanding or just memorized definitions.
These 16 questions cover the core CS concepts that senior engineers are expected to know cold: concurrency primitives, data structure internals, object-oriented design, memory models, and computational complexity. Getting these right signals that your technical knowledge has real depth.
A process is an independent unit of execution with its own memory space, including its own heap, stack, code segment, and data segment. The operating system allocates separate resources to each process and enforces memory isolation between them. This means one process cannot directly read or writ…
Read full answer →A race condition occurs when two or more threads or processes access shared data concurrently, and at least one of them modifies it, such that the final outcome depends on the non-deterministic order of execution. The result is unpredictable behavior — the program may produce correct results on s…
Read full answer →A deadlock is a situation where two or more threads are permanently blocked, each waiting for a resource held by another thread in the group. No thread can proceed because each is waiting for a resource that will never be released. For a deadlock to occur, all four of the Coffman conditions must …
Read full answer →Thread safety means that a data structure or piece of code produces correct results when accessed concurrently by multiple threads, without requiring the caller to perform external synchronization. A thread-safe operation is one where concurrent invocations cannot interleave in a way that corrupt…
Read full answer →A HashMap is a data structure that stores key-value pairs and provides O(1) average-case lookup, insertion, and deletion. It achieves this by using a hash function to convert keys into array indices.
Read full answer →A hash collision occurs when two distinct keys produce the same hash value modulo the table size, and therefore map to the same bucket. Because hash functions compress a large key space into a small fixed-size array, collisions are inevitable -- by the birthday paradox, they become likely well be…
Read full answer →The four pillars of object-oriented programming -- encapsulation, abstraction, inheritance, and polymorphism -- describe the core mechanisms by which OOP manages complexity in large codebases.
Read full answer →SOLID is an acronym for five object-oriented design principles introduced by Robert Martin. Each targets a different source of design fragility.
Read full answer →Breadth-First Search (BFS) and Depth-First Search (DFS) are the two fundamental graph traversal algorithms. Understanding when to use each requires knowing what each optimizes for.
Read full answer →The distinction between primitive and reference types is fundamental to understanding how languages manage memory and pass values between functions.
Read full answer →A mutex (mutual exclusion lock) and a semaphore are both synchronization primitives, but they model different problems and have different ownership semantics.
Read full answer →Virtual memory is an abstraction that gives each process its own private address space, isolated from other processes and from the physical memory layout. A process sees a contiguous address space starting at 0 (in most architectures), regardless of how physical memory is actually arranged or sha…
Read full answer →Concurrency and parallelism are related but distinct concepts that are frequently conflated, even by experienced engineers.
Read full answer →Method overriding and method overloading are both forms of polymorphism but operate at different points in the execution lifecycle and serve distinct purposes.
Read full answer →A context switch is the mechanism by which the operating system's scheduler pauses one executing process or thread and resumes another. It is fundamental to multitasking—the OS creates the illusion of simultaneous execution by rapidly switching between tasks.
Read full answer →A file descriptor (FD) is a small non-negative integer that the operating system kernel uses to represent an open I/O resource within a process. When a process opens a file, creates a socket, or establishes a pipe, the kernel returns an FD — typically the smallest available integer starting from …
Read full answer →These questions reward first-principles thinking. For every concept, prepare a 60-second verbal explanation from scratch — no memorized definitions. If you can’t derive why a hash map is O(1) average and O(n) worst-case in your own words, you don’t know it. Senior interviewers detect rehearsed textbook answers within one follow-up.
Study three canonical topics in depth — concurrency primitives, memory layout, and data structure trade-offs — rather than trying to cover all 16 surface-level. Depth in three beats breadth in ten when the interviewer starts probing what happens inside the abstraction you named.
Take a free AI-graded assessment across multiple domains. No signup required.
Start Free Assessment