Data structures
Build a practical understanding of data structures from the underlying principles.
GROUND · 6 ARTICLES
Study the principles that outlast frameworks and connect data structures, processes, memory, concurrency, and distributed systems to real program behavior.
Topic map
Build a practical understanding of data structures from the underlying principles.
Build a practical understanding of operating systems from the underlying principles.
Build a practical understanding of memory from the underlying principles.
Build a practical understanding of concurrency and distributed systems from the underlying principles.
Start here
A guided path from fundamentals to the next step.
The stack is cleaned up with function calls, while the heap supports dynamic lifetimes and sizes. This covers allocation costs, the actual placement of Swift value and reference types, and how these areas differ from the Stack and Heap data structures.
Read articleOpen Task Manager and you see processes; read developer docs and threads come up. Both seem like “something that runs,” but what exactly sets them apart?
Read articleThe data-structure heap shares only its name with the memory heap. This guide covers its rules for retrieving the minimum without sorting everything, index calculations for representing trees in arrays, and the role of priority queues in practice.
Read articleAll articles
Idempotency means producing the same result when the same request is sent multiple times. This covers why it matters with network failures and retries, the difference between GET, PUT, DELETE, and POST, and how to implement an Idempotency-Key.
Read articleConcurrency is about structuring work across multiple tasks, while parallelism is about hardware executing tasks at the same time. This article explains why concurrency works on a single core and what Swift Concurrency means.
Read articleA stack removes data in LIFO order; a queue uses FIFO. This article explains why Swift has no dedicated Stack, how to build one with Array, and the performance trap caused by removeFirst in queues.
Read article