Free CS interview prep
Learn CS at a glance.
Read faster. Revise smarter.
Short, structured CS study guides with jobs alongside them. Clear explanations, interview-friendly summaries, and a Glance Mode that turns long articles into fast revision.
83
Topics published
29
Active job posts
Newly published
Latest course content
DBMS
Write-Ahead Logging: How Databases Survive Crashes
Build a tiny key-value store with a write-ahead log in Python: checksummed records, fsync, recovery that stops at a torn write, and the cost of syncing every write, and how real databases use WAL.
Networks
What Happens When You Type a URL in the Browser
The full journey from pressing Enter to a rendered page: URL parsing, DNS, TCP, TLS, HTTP, and the browser's rendering work, with a runnable raw HTTP request to show what travels on the wire.
DSA
Two Pointers and Sliding Window
Two index variables walk an array so a nested loop becomes a single pass. Learn when each pattern applies, with three worked problems and the mistakes interviewers look for.
Hot this week
Trending topics
DSA
Dynamic Programming: From Recursion to a Table
- The same subproblem gets solved again and again.
- Add a cache to the recursion you already have.
- Fill answers from the smallest case upward, no recursion.
DSA
Heaps and Priority Queues
- Always give me the most urgent item next.
- Parent no bigger than its children; the tree lives in a flat list.
- Fix the one place the property might break, along one path.
DBMS
How B+ Tree Indexes Work
- The cost that matters is disk page reads, not comparisons.
- About 512 entries per 8 KB page means 3 levels hold 134 million keys.
- B+ trees keep every value in the leaves and link the leaves.
System Design
Distributed Cache Design: Sharding, Stampedes and Staleness
- Absorb repeated reads so the database sees only a fraction.
- Cache-aside is the usual default: read cache, fall back to the database, and delete the key on write.
- node = hash(key) mod N reshuffles almost everything when N changes.
60-second cards
Quick revise
Why does traversing a contiguous array of size N typically outperform traversing a singly linked list of the same size, even though both operations have an O(N) time complexity?
Array elements are stored in contiguous memory locations, which maximizes CPU cache locality and allows the system to prefetch data efficiently. In contrast, linked list nodes are scattered across memory, causing frequent cache misses as the CPU must repeatedly look up pointer addresses.
REVIEW 60s
In a hash table, why does the search performance of Open Addressing (like linear probing) degrade much faster than Separate Chaining as the load factor approaches 1?
As the load factor approaches 1, Open Addressing suffers from clustering, where long runs of occupied slots form and drastically increase the number of probes needed to find an empty slot. Separate Chaining handles collisions by appending to lists, meaning lookup time degrades gradually relative to the average list length rather than failing to locate a slot.
REVIEW 60s
For a deeply nested, narrow tree (e.g., a degenerate tree of depth N and width 1), would BFS or DFS require less auxiliary space, and why?
BFS would require less auxiliary space, specifically O(1) memory, because its queue will hold at most one node at any given level. In contrast, DFS would require O(N) auxiliary space because its recursion stack must store all N ancestor nodes from the root to the leaf.
REVIEW 60s
Fresh listings
Latest jobs
Freelance Copywriter
Coalition Technologies · Worldwide
accountingexcelresearchdata analysisbookkeepinggoogle sheetsquickbooksdata entryinsuranceG Suite
Senior React Full-stack Developer
Lemon.io · LATAM, Europe, USA, Canada, APAC
.NetandroidAWSbackendCC#C++data sciencefullstackgolangiosjavajavascriptnode.jsphppythonreactreact jsruby/railsscalashopifyswiftUI/UXwordpressblockchainAI/MLautomationproject managementreact nativerustunityelectronspringlaravelEthereumgraphic designTypescript angular firebasedata engineeringSite ReliabilitySymfonystartupmarketplacenext.jsflutter
Senior QA Engineer
Lemon.io · Europe
.NetandroidCC#C++data sciencegolangiosjavajavascriptnode.jsphppythonreactruby/railsscalashopifyswiftUI/UXwordpressblockchainAI/MLautomationproject managementreact nativerustunityelectronspringlaravelEthereumgraphic designTypescript cypressangular seleniumfirebasedata engineeringSite ReliabilitySymfonymanual testingmarketplacetestingnext.jsflutter