Glossary
What a word means, in two sentences. This page is a reference, not a lesson: no steps, no choices, just the definition and where the site uses it.
277 terms, in 12 groups.
Thinking and problem solving
The words for how a solution is planned before any code exists.
- Step count(operation count)
- Counting the work an algorithm does by counting the operations it runs. A loop over n items costs n steps, and a loop inside a loop costs n times n. The count is what predicts slowness before any timer runs.
-
- See also: Computational complexity
- See also: Loop
- Used in: Measuring Work
- Growth rate(how the cost grows)
- The shape a step count takes as the input gets bigger, ignoring the constant in front. One pass is linear, a pass inside a pass is quadratic, halving each step is logarithmic. The shape is what tells you which algorithm to pick.
-
- See also: Computational complexity
- See also: Step count
- Used in: Measuring Work
- Best case
- The cheapest an algorithm can be on the easiest input. A search that finds the item on the first try has a best case of one step. Best case alone says little, so it is always reported with the others.
-
- See also: Computational complexity
- See also: Worst case
- Used in: Measuring Work
- Worst case
- The most work an algorithm can take on the hardest input of a given size. This is the number to plan with, since a real user can hit the hard input. A guarantee on the worst case is stronger than an average.
-
- See also: Computational complexity
- See also: Best case
- See also: Average case
- Used in: Measuring Work
- Average case(expected cost)
- The work an algorithm takes over typical inputs rather than the hardest one. It needs an assumption about what typical means, so it is a weaker claim than a worst case bound. Quicksort is a common example.
-
- See also: Computational complexity
- See also: Worst case
- See also: Quicksort
- Used in: Measuring Work
- Space complexity(memory cost)
- How much memory an algorithm holds at its peak as the input grows. A running total is constant, a copy of the input is linear, a grid is quadratic. Peak matters, not the total ever allocated.
-
- See also: Computational complexity
- See also: Stack
- See also: Call stack
- Used in: Measuring Work
- Lower bound(floor)
- A proven minimum cost that no algorithm can beat for a problem. Finding the largest item needs a look at every item, so n is its floor. When your cost matches the floor, the algorithm is optimal and tuning further is wasted effort.
-
- See also: Computational complexity
- See also: Binary search
- Used in: Measuring Work
- Amortized cost(amortized analysis)
- The cost of an operation averaged over a long run, where an occasional expensive step is spread across many cheap ones. Growing a list is cheap most times and costly when it copies, and the average per add stays constant.
-
- See also: Computational complexity
- See also: Array
- Used in: Measuring Work
- Logarithm(log n)
- How many times a number can be halved before it reaches one. A million halves about twenty times, so a search that halves the range each step costs about twenty steps at any large size. Halving is where logarithmic cost comes from.
-
- See also: Computational complexity
- See also: Binary search
- Used in: Measuring Work
- Optimal algorithm(optimal)
- An algorithm whose cost matches a proven floor for the problem. A linear scan that must read every item cannot be improved in class. Recognising optimal stops you from wasting effort on tuning the wrong thing.
-
- See also: Computational complexity
- See also: Lower bound
- Used in: Measuring Work
- Algorithm
- A finished recipe of steps that solves a problem. Pseudocode, a flowchart, and a working program are all the same algorithm written in different notations.
-
- See also: Pseudocode
- See also: Flowchart
- See also: Decomposition
- Used in: Logic & Problem Solving
- Decomposition
- Splitting one big problem into smaller problems that can be solved and tested on their own. Each piece gets its own function, and the pieces are joined by a small amount of glue code.
-
- See also: Abstraction
- See also: Algorithm
- Used in: Logic & Problem Solving
- Abstraction
- Naming what a solution does and hiding how it does it, so a reader can reason about the parts instead of the details. A function name is an abstraction over its body.
-
- See also: Decomposition
- See also: Function
- Used in: Logic & Problem Solving
- Pseudocode
- Plan-shaped English that uses programming words like `if`, `while`, and `return` but no real syntax. It is written to be read once and then replaced by code.
-
- See also: Algorithm
- See also: Flowchart
- Used in: Logic & Problem Solving
- Flowchart
- A diagram of a plan: boxes for steps, diamonds for decisions, arrows for what comes next. It carries the same meaning as pseudocode, in a shape a reader can follow with a finger.
-
- See also: Pseudocode
- See also: Conditional
- Used in: Logic & Problem Solving
- Edge case
- An input at the boundary where a solution can behave differently: an empty list, a single item, a zero, a negative, the last index. Testing these finds bugs that middle-of-the-road inputs hide.
-
- See also: Invariant
- See also: Regression
- Used in: Logic & Problem Solving
- Invariant
- A statement about a program that stays true the whole way through, even inside a loop. Naming it makes a loop provably correct: "everything before `i` is sorted" tells you when the loop may stop.
-
- See also: Loop
- See also: Edge case
- Used in: Logic & Problem Solving
- Off-by-one error(fencepost error)
- A count that is one too many or one too few, usually at the first or last item. The classic cause is mixing a length with a last index: an array of 5 items has indexes 0 to 4.
-
- See also: Index
- See also: Edge case
- Used in: Logic & Problem Solving
- Used in: Data Structure Basics
- Debugging
- Finding why a program gives the wrong answer by testing small parts and reading what actually happened, rather than by rereading the whole file. Print the value you expected and the value you got, at the point where they disagree.
-
- See also: Regression
- See also: Edge case
- Used in: Logic & Problem Solving
- Regression(regression test)
- A change that broke something that used to work. A test that used to pass and now fails is a regression, and it is fixed before any new feature is added on top.
-
- See also: Debugging
- See also: Code review
- Used in: Logic & Problem Solving
- Computational complexity(Big-O)
- How the work a program does grows as the input grows. O(n) means one pass, O(n squared) means a pass inside a pass, O(log n) means halving the search each step. It predicts slowness before a timer is needed.
-
- See also: Hash map
- See also: Index
- Used in: Data Structure Basics
Data and structures
The shapes information is put into, and what each one is good at.
- Stream(streaming)
- Data that is processed a piece at a time as it arrives, so the whole thing never has to be held in memory at once.
-
- See also: Buffer
- See also: Byte
- Used in: Text & Files
- Buffer(chunk)
- A block of bytes read or written at one time, sized to what the device handles fastest rather than to the whole file.
-
- See also: Byte
- Used in: Text & Files
- Delimiter(separator)
- The character that marks where one field ends and the next begins in a line of text.
-
- See also: CSV
- Used in: Text & Files
- Newline(line ending)
- The one or two characters that end a line of text, stored in the file rather than added by the reader.
-
- See also: Delimiter
- Used in: Text & Files
- File extension(suffix)
- The characters after the last dot in a name, used by tools to guess what kind of file it is.
-
- See also: Path
- Used in: Text & Files
- Directory(folder)
- A file whose contents are a list of other names, which is how a tree of files is stored.
-
- See also: Path
- See also: File extension
- Used in: Text & Files
- UTF-8(utf8)
- The encoding that maps every symbol to one to four bytes, and the safe default to name on every file.
-
- See also: Encoding
- See also: Code point
- Used in: Text & Files
- Truncation(truncated)
- A file left shorter than it should be because a write stopped partway, which a reader sees as a partial record.
-
- See also: Stream
- Used in: Text & Files
- Atomic write(atomic replace)
- Saving a new version to a temporary name and renaming it into place, so a reader never sees half a file.
-
- See also: Truncation
- See also: Directory
- Used in: Text & Files
- Sort
- Put a row of items into order by a chosen rule, so that every item is no greater than the one after it. Ordering is what makes fast searching and grouping possible.
-
- See also: Merge sort
- See also: Quicksort
- See also: Stable sort
- Used in: Sorting & Searching
- Search
- Look for an item in a row. On an unsorted row you check one by one; on a sorted row you can cut the row in half each look.
-
- See also: Binary search
- Used in: Sorting & Searching
- Binary search
- Find a value in a sorted row by checking the middle and keeping only the half that can hold it. Each look halves the row, so a million items take about twenty looks.
-
- See also: Search
- See also: Sort
- Used in: Sorting & Searching
- Merge sort
- A fast sort that splits the row in half, sorts each half, then merges the two ordered halves. It keeps ties in order and costs about n log n.
-
- See also: Sort
- See also: Stable sort
- Used in: Sorting & Searching
- Quicksort
- A fast sort that picks a pivot, puts smaller items left and bigger right, then sorts each side. Usually quick, but a bad pivot makes it slow.
-
- See also: Sort
- See also: Merge sort
- Used in: Sorting & Searching
- Stable sort
- A sort that keeps equal items in the order they started. Stability is what lets you sort by several fields one at a time.
-
- See also: Sort
- See also: Merge sort
- Used in: Sorting & Searching
- Bit
- The smallest unit of information: one switch with two positions, read as 0 or 1. A machine is built from bits, and every value it stores is a row of them.
-
- See also: Byte
- Used in: Binary & Data Representation
- Byte
- A row of eight bits, the smallest piece of memory a machine can point at on its own. A byte holds 256 values, and file and memory sizes are counted in bytes.
-
- See also: Bit
- See also: Hexadecimal
- Used in: Binary & Data Representation
- Binary number
- A value written in base two, where each position is worth double the one to its right. A number is the sum of the powers of two that are switched on.
-
- See also: Bit
- See also: Integer
- Used in: Binary & Data Representation
- Hexadecimal
- A sixteen-digit shorthand for bits where each digit is exactly four bits, so a byte is always two hex digits. Colors, byte dumps, and hashes are written this way.
-
- See also: Bit
- See also: Byte
- Used in: Binary & Data Representation
- Twos complement
- The standard way to store negative numbers in a fixed row of bits, where the top bit marks the sign and flipping the bits then adding one gives the negative. It lets a number and its negative add to zero with no special case.
-
- See also: Integer
- See also: Binary number
- Used in: Binary & Data Representation
- Signed number
- A fixed-width integer read as able to go negative, using twos complement. The same bytes read unsigned give a different number, so the signed flag is a reading choice.
-
- See also: Twos complement
- See also: Overflow
- Used in: Binary & Data Representation
- Overflow
- What happens when a value is too big for its fixed width: the count wraps to the bottom with no error. A byte counter at 255 plus one reads as zero, which is a silent wrong number.
-
- See also: Integer
- See also: Signed number
- Used in: Binary & Data Representation
- Endianness
- The order a multi-byte number is written in, big end first or little end first. The same bytes read in the other order give a wrong number, which is why formats state their byte order.
-
- See also: Byte
- Used in: Binary & Data Representation
- Integer(whole number, int)
- A value with no fractional part. Whole numbers are stored exactly and their arithmetic is exact, which is why counts and money in cents are kept as integers rather than decimals.
-
- See also: Float
- See also: Type
- Used in: Values & Variables
- Used in: Python
- Float(decimal, floating point)
- A value that can hold a fractional part, stored as a binary fraction with a fixed number of bits. That fixed width means some decimals, like a tenth, are rounded to the nearest value the bits can hold.
-
- See also: Integer
- See also: Rounding error
- Used in: Values & Variables
- Rounding error
- The small gap between a decimal value and the nearest one the machine can actually store. It is why a sum of decimals can print 0.30000000000000004, and why decimals are compared by closeness rather than exact equality.
-
- See also: Float
- See also: Integer
- Used in: Values & Variables
- Code point
- The number a single character is given in a character set. Text is a list of code points, which is why a character can be measured, indexed, and compared at all.
-
- See also: Encoding
- See also: String
- Used in: Values & Variables
- Used in: Binary & Data Representation
- Encoding
- The rule that maps bytes to code points and back. Two tools that disagree about the rule turn the same bytes into different text, which is the cause of garbled characters.
-
- See also: Code point
- See also: String
- Used in: Values & Variables
- Used in: Binary & Data Representation
- Array(list)
- An ordered row of values with fixed positions, read by number. Reading any position is fast; inserting in the middle moves everything after it.
-
- See also: Linked list
- See also: Index
- See also: Stack
- Used in: Data Structure Basics
- Linked list
- A chain of nodes that each point at the next. Adding at the front is instant, but reaching the middle means walking from the front one node at a time.
-
- See also: Array
- See also: Pointer
- Used in: Data Structure Basics
- Stack
- A last-in, first-out pile: you push an item and pop the one on top. Function calls use one implicitly, which is why recursion has a depth limit.
-
- See also: Queue
- See also: Recursion
- Used in: Data Structure Basics
- Queue
- A first-in, first-out line: items join at the back and leave from the front. Breadth-first search and fair scheduling both need this order rather than a stack's.
-
- See also: Stack
- See also: Graph
- Used in: Data Structure Basics
- Hash map(dictionary, map)
- A set of key and value pairs where the key is turned into a number, so looking one up costs about the same work no matter how many pairs are stored. The go-to answer for "have I seen this before".
-
- See also: Set
- See also: Computational complexity
- Used in: Data Structure Basics
- Set
- A collection of distinct values with no order, used for membership tests: is this already in? Adding a duplicate changes nothing, which makes it a natural way to remove duplicates.
-
- See also: Hash map
- Used in: Data Structure Basics
- Tree
- A structure where each node has children and no cycles, so there is exactly one path from the root to any node. A folder layout, a DOM, and a decision tree are all trees.
-
- See also: Graph
- See also: Recursion
- Used in: Data Structure Basics
- Graph
- Nodes joined by edges, where a node may have many paths to another and cycles are allowed. Anything with "can you get from A to B" is a graph question.
-
- See also: Tree
- See also: Queue
- Used in: Data Structure Basics
- Index
- The position number of an item in an ordered collection. The first item is index 0, so the last is length minus one.
-
- See also: Off-by-one error
- See also: Array
- Used in: Data Structure Basics
- Used in: Python
- Mutation
- Changing a value that is already stored, rather than making a new one. A function that mutates its input surprises every other caller that holds the same value.
-
- See also: Reference
- Used in: Data Structure Basics
- Reference
- A name that points at a value stored elsewhere instead of holding a copy. Two references to the same list mean one list, so changing it through either name changes it through both.
-
- See also: Mutation
- Used in: JavaScript
- Used in: Python
- Pointer
- A raw memory address held in a variable, as Rust and C use it. Owning and borrowing rules exist to make sure a pointer never points at memory that has been freed.
-
- See also: Reference
- Used in: Rust
- Recursion
- A function that calls itself on a smaller piece of the problem, with a case that stops. A tree is walked recursively because each branch is a smaller tree.
-
- See also: Stack
- See also: Tree
- Used in: Logic & Problem Solving
- Used in: Data Structure Basics
Languages and syntax
Words that mean different things in different languages, and why they differ.
- Pattern(regular expression, regex)
- A short text that describes a set of strings instead of one string. The characters that mean themselves are mixed with characters that mean rules, which is why a pattern needs its own reading.
-
- See also: Metacharacter
- See also: Quantifier
- Used in: Text Patterns
- Metacharacter(special character)
- A character in a pattern that carries a rule instead of meaning itself. A dot matches any character and a bracket opens a set, so text from a stranger has to be escaped before it becomes a pattern.
-
- See also: Pattern
- See also: Escape
- Used in: Text Patterns
- Character class(character set, bracket expression)
- A bracketed list of the characters allowed at one position. A dash inside the brackets means a range, and a caret first means everything except the list.
-
- See also: Metacharacter
- Used in: Text Patterns
- Quantifier(repetition operator)
- A mark after a piece of a pattern saying how many times it may repeat. A star means none or more and a plus means one or more, so the piece can vanish or stretch.
-
- See also: Greedy match
- Used in: Text Patterns
- Anchor(zero width assertion)
- A mark that tests a position rather than consuming a character. A caret asks for the start of a line and a word edge asks for a boundary, so nothing is eaten and nothing moves.
-
- See also: Quantifier
- Used in: Text Patterns
- Alternation(pipe, either or)
- A vertical bar in a pattern offering more than one way to fit. The branches are tried in the order written, so the first one that fits wins even when a later one is longer.
-
- See also: Backtracking
- Used in: Text Patterns
- Capture group(parenthesised group)
- A pair of brackets in a pattern that remembers which text fit inside it, so a field can be read out of a match instead of slicing offsets by hand.
-
- See also: Pattern
- Used in: Text Patterns
- Greedy match(greedy quantifier)
- A quantifier that takes as many characters as it can before checking the rest of the pattern. It gives the longest fit, and it backtracks when the rest of the rule then fails.
-
- See also: Quantifier
- See also: Backtracking
- Used in: Text Patterns
- Lazy match(non-greedy quantifier, reluctant quantifier)
- A quantifier with a question mark after it that takes as few characters as it can. It stops at the first fit, which is what a pair of tags needs to avoid swallowing the text between them.
-
- See also: Greedy match
- Used in: Text Patterns
- Base case(stopping case)
- The branch of a recursive function that answers without calling itself. Without one, the calls never stop and the stack runs out of room.
-
- See also: Recursion
- See also: Tree
- See also: Loop
- Used in: Recursion
- Memoization(caching calls)
- Keep each answer a recursive function already computed in a cache, so a repeated call returns the stored value instead of recomputing the same tree.
-
- See also: Recursion
- See also: Sort
- Used in: Recursion
- Divide and conquer
- Split a problem into smaller independent parts, solve each the same way, then combine the answers. The split sets the depth, so halving gives a shallow tree.
-
- See also: Recursion
- See also: Sort
- See also: Search
- Used in: Recursion
- Used in: Sorting & Searching
- Backtracking
- Try one choice, recurse, and undo it when the choice leads to a dead end. The undo step is what lets the search explore every option.
-
- See also: Recursion
- See also: Loop
- Used in: Recursion
- Tail recursion
- A recursive call that is the last thing a function does, with nothing left to combine after it returns. A loop can replace it, so the stack stays constant.
-
- See also: Recursion
- See also: Loop
- Used in: Recursion
- Dynamic programming
- Solve a problem by writing it as a recurrence over smaller states and storing each state once, either top-down with a cache or bottom-up by filling a table.
-
- See also: Recursion
- See also: Memoization
- Used in: Recursion
- Stack overflow
- Running out of room on the call stack, usually from recursion that nests deeper than the limit. The fix is a base case, a loop, or your own stack in memory.
-
- See also: Stack
- See also: Recursion
- Used in: Recursion
- Signature
- The first line of a function: its name and the parameters it needs. Reading a signature tells a caller what to pass in and what comes back, without opening the body.
-
- See also: Function
- See also: Parameter
- Used in: Functions & Abstraction
- Used in: Python
- Docstring
- The sentence written at the top of a function that states what it returns and how it handles the edge cases. It is the contract a caller reads instead of guessing.
-
- See also: Function
- See also: Signature
- Used in: Functions & Abstraction
- Used in: Python
- Call stack
- The record of which function is running inside which. Each call adds a layer, and a function that calls itself without an end fills the stack with no room left.
-
- See also: Function
- See also: Recursion
- See also: Scope
- Used in: Functions & Abstraction
- Default(default argument)
- The value a parameter uses when the caller leaves it out. A default records the normal case, so a call only supplies what is different.
-
- See also: Parameter
- See also: Function
- Used in: Functions & Abstraction
- Used in: Python
- Unpacking
- Splitting a returned tuple or list into separate names in one line, so low, high = pair. The number of names has to match the number of parts.
-
- See also: Return value
- See also: Function
- Used in: Functions & Abstraction
- Used in: Python
- Expression
- A piece of code that works out to a single value. An expression can sit wherever a value is allowed, which is what lets a calculation go inside a print or an assignment.
-
- See also: Assignment
- See also: Type
- Used in: Values & Variables
- Used in: Python
- Precedence
- The order in which the parts of an expression are worked out, so that multiply happens before add. Parentheses override it, and using them is clearer than remembering the rules.
-
- See also: Expression
- See also: Type
- Used in: Values & Variables
- Literal
- A value written directly in the code, like 42 or "owl". A literal is a value with no name, the simplest thing a name can be assigned to.
-
- See also: Type
- See also: Expression
- Used in: Values & Variables
- Conversion(cast)
- Turning a value from one type into another on purpose, like turning text read from input into a number. Doing it explicitly is what keeps a program from guessing the wrong kind.
-
- See also: Type
- See also: Coercion
- Used in: Values & Variables
- Used in: Python
- String(text)
- A value that is a run of characters, written in quotes. Text is measured and indexed by position, not by meaning, which is why trimming and slicing work on any input.
-
- See also: Type
- See also: Concatenation
- See also: Code point
- Used in: Values & Variables
- Used in: Python
- Used in: JavaScript
- Concatenation
- Joining two strings end to end to make a new one. Joining is different from adding numbers, and mixing the two by accident is the classic type error.
-
- See also: String
- See also: Type
- Used in: Values & Variables
- Used in: Python
- None(null, nil)
- A single value that means nothing has been chosen yet. It is what a name holds before it gets a real value, and the honest way to record that a search found nothing.
-
- See also: Type
- See also: Variable
- Used in: Values & Variables
- Used in: Python
- Scope
- The part of a program where a name can be seen. A name made inside a function belongs only to that function, so two functions can each use the same short name without colliding.
-
- See also: Variable
- See also: Function
- Used in: Values & Variables
- Used in: Python
- Used in: JavaScript
- Variable
- A name that holds one value at a time. The name is for the reader; the value is what the program uses. A name like `d` says nothing, a name like `secondsLeft` says the truth.
-
- See also: Type
- See also: Assignment
- Used in: Python
- Used in: JavaScript
- Assignment
- Putting a value into a name, read right to left: the expression on the right is computed first, then stored under the name on the left. It is not a claim of equality.
-
- See also: Variable
- Used in: Python
- Type
- What kind of value a name holds: a number, a string, a boolean, a list of things. Strong typing means the computer refuses to mix kinds without an explicit conversion.
-
- See also: Static typing
- See also: Coercion
- Used in: Python
- Used in: TypeScript
- Static typing
- Checking the kinds of values before the program runs, so a mistake is a build error rather than a surprise at three in the morning. TypeScript and Rust do this; Python checks at runtime instead.
-
- See also: Type
- See also: Coercion
- Used in: TypeScript
- Used in: Rust
- Coercion
- A language quietly changing one type into another, like treating a number as a string. It is the cause of many baffling bugs, which is why explicit conversion is preferred.
-
- See also: Type
- See also: Static typing
- Used in: JavaScript
- Function
- A named block of steps that takes inputs and gives back one result. Calling it runs the block; writing its name without brackets hands the block itself to something else.
-
- See also: Parameter
- See also: Return value
- See also: Pure function
- Used in: Python
- Used in: JavaScript
- Parameter(argument)
- A parameter is the name a function declares it needs; an argument is the actual value a caller passes into that name. The two words name the same slot from two sides.
-
- See also: Function
- See also: Return value
- Used in: Python
- Return value
- The single result a function gives back. A function with no `return` still returns something in most languages, usually a null-like value, which is why a missing return is a silent bug.
-
- See also: Function
- See also: Side effect
- Used in: Python
- Used in: JavaScript
- Side effect
- A function that changes something outside itself: writes a file, updates a global, prints, mutates a shared list. A function with no side effects is called pure, and pure functions are the ones that are easy to test.
-
- See also: Pure function
- See also: Mutation
- Used in: Python
- Pure function
- A function whose result depends only on its inputs and that changes nothing else. Same input always gives the same output, so it can be tested, cached, and reordered safely.
-
- See also: Side effect
- See also: Function
- Used in: Python
- Conditional
- A branch: if this is true do this, otherwise do that. The condition is an expression that must evaluate to a boolean, not a value that is merely truthy or falsy.
-
- See also: Boolean
- See also: Flowchart
- Used in: Logic & Problem Solving
- Used in: Python
- Boolean
- A value that is one of two: true or false. Every condition must reduce to one of these, even when it is written as a longer expression.
-
- See also: Conditional
- See also: Coercion
- Used in: Logic & Problem Solving
- Loop
- Steps that repeat until a condition becomes false. A loop that never ends, or ends one step early, is the most common bug in a first program.
-
- See also: Invariant
- See also: Iteration
- See also: Off-by-one error
- Used in: Logic & Problem Solving
- Iteration
- Going over a collection one item at a time, without counting indexes yourself. `for item in items` is iteration; `for i in range(len(items))` is counting, and is usually the wrong shape.
-
- See also: Loop
- See also: Index
- Used in: Python
- Compiler
- A program that turns source code into a form a machine runs, before the program starts. Errors are caught before anything runs, which is why typed compiled languages fail at build time.
-
- See also: Interpreter
- See also: Static typing
- Used in: Rust
- Used in: Go
- Interpreter
- A program that reads and runs source one statement at a time. Mistypes and wrong types are found while running, which is why a Python error can appear only on the branch that was taken.
-
- See also: Compiler
- See also: Runtime
- Used in: Python
- Used in: JavaScript
- Runtime
- The engine that runs a program, and the time it takes while running. "Runtime error" means the program started and then failed, as opposed to a build error that stops it starting.
-
- See also: Interpreter
- See also: Compiler
- Used in: Python
- Used in: JavaScript
- Standard library
- The set of tools a language ships with, already installed and already tested. Reaching for it before writing your own version is the difference between a working program and a reinvented one.
-
- See also: Package manager
- See also: Module
- Used in: Python
- Used in: Go
- Module
- A file of code that other files can import by name. A module should do one thing, so its name describes the thing and its imports describe the need.
-
- See also: Package manager
- See also: Standard library
- Used in: Python
- Used in: JavaScript
- Package manager
- The tool that installs and versions third-party code: npm for JavaScript, pip for Python, cargo for Rust. It also records what versions a project depends on, which is how a build is reproducible.
-
- See also: Module
- See also: Semantic versioning
- Used in: JavaScript
- Used in: Rust
- Class
- A type with named fields and methods, used when several values always travel together. A game player, a request, and a parsed config are all worth a class; a pair of numbers is not.
-
- See also: Object
- See also: Module
- Used in: Java
- Used in: TypeScript
- Object
- A value with named fields rather than numbered positions. In JavaScript it is also the shape most JSON and API responses come in.
-
- See also: Class
- See also: JSON
- Used in: JavaScript
- Used in: TypeScript
Web and apps
The parts of a running web application, named so a reader can find the right file.
- DOM
- The document object model: the browser's live tree of elements built from the HTML. It is a tree, which is why walking it uses the same shape as walking any other tree.
-
- See also: Tree
- See also: Render
- Used in: JavaScript
- Route
- A URL path a server answers, and the handler that answers it. Express matches routes in the order they are mounted, which is why mount order changes behaviour.
-
- See also: Endpoint
- See also: Middleware
- Used in: Full-Stack Web App
- Used in: JavaScript
- Middleware
- A function that runs before every route handler: security headers, language, cache control. Order matters, and a middleware that forgets to call `next()` stops the request silently.
-
- See also: Route
- Used in: Full-Stack Web App
- Endpoint
- One URL and method an API offers, with a documented shape in and a documented shape out. A client and a server agree only when both describe the same endpoint.
-
- See also: Route
- See also: JSON
- Used in: Full-Stack Web App
- JSON
- JavaScript object notation: the text format data travels as over a wire. It has no comments and no trailing commas, which is why a config file written as JSON cannot be annotated.
-
- See also: Object
- See also: Endpoint
- Used in: Full-Stack Web App
- HTTP status code
- The number a response carries: 200 means it worked, 300s mean "go somewhere else", 400s mean the request was wrong, 500s mean the server broke. A browser console shows this number first for a reason.
-
- See also: Endpoint
- See also: Redirect
- Used in: Full-Stack Web App
- Redirect
- A response that sends the reader to another URL instead of a page. 301 says the old address is gone for good, 302 says it may move back, which is what a crawler uses to decide.
-
- See also: HTTP status code
- Used in: Full-Stack Web App
- Cache header
- Instructions a response carries about how long it may be reused: `max-age=300` means five minutes, `no-store` means never. A stale page after a change is almost always a cache header plus a version token.
-
- See also: Cache busting
- See also: HTTP status code
- Used in: Full-Stack Web App
- Cache busting
- Changing the URL of a file when its content changes, by adding a version token like `?v=20261010`. A new URL is a new file to a cache, so the new CSS is served the moment it is published.
-
- See also: Cache header
- Used in: Full-Stack Web App
- A small value the browser keeps so the server can recognise the same visitor again. It is the only state a browser has, which is why "stay signed in" is a cookie question.
-
- See also: Session
- See also: Authentication
- Used in: Full-Stack Web App
- Session
- One visit, seen as one identity by the server. Everything that belongs to "this person right now" (who they are, what they ticked, what they are reading) hangs off the session, and signing out or rotating a secret ends it.
-
- See also: Session cookie
- See also: Secret
- Used in: Full-Stack Web App
- Authentication
- Proving who a request is from. The password is never stored, only a hash, so a leaked database cannot hand over someone password.
-
- See also: Authorization
- See also: bcrypt
- See also: Session cookie
- Used in: Full-Stack Web App
- Deciding what a signed-in person may do. Authentication answers "who", authorization answers "is this allowed", and a page that confuses the two has a security hole.
-
- See also: Authentication
- Used in: Full-Stack Web App
- bcrypt
- A deliberately slow hash with a random salt, made for passwords. Slow is the point: an attacker with a stolen database cannot try billions of guesses cheaply.
-
- See also: Hash
- See also: Salt
- See also: Authentication
- Used in: Full-Stack Web App
- Salt
- Random bytes mixed into a value before hashing, so two users with the same password get different hashes. Without it, one lookup table cracks every password.
-
- See also: Hash
- See also: bcrypt
- Used in: Full-Stack Web App
- Hash
- A one-way fingerprint of a value: same input always gives the same output, and the input cannot be recovered from the output. Hashing is for comparing and detecting, never for reading back.
-
- See also: Salt
- See also: bcrypt
- See also: Hash map
- Used in: Full-Stack Web App
- Used in: Data Structure Basics
- SQLite
- One database file and one process, with no server to run. It is the whole reason a small app can have real storage without a server.
-
- See also: Write-ahead log
- See also: Database
- Used in: Full-Stack Web App
- Database
- A store of records you query instead of holding in memory. A table is a set of rows with named columns, and a query describes the rows you want.
-
- See also: SQLite
- See also: Query
- Used in: Full-Stack Web App
- Query
- A description of the rows you want, run by the database instead of a loop in your code. A prepared query is compiled once and reused with different values.
-
- See also: Database
- See also: SQLite
- Used in: Full-Stack Web App
- Write-ahead log
- A database journal where writes go first, so a crash cannot lose an acknowledged write. It explains sidecar files next to a database file, and why they must be deleted together.
-
- See also: SQLite
- See also: Transaction
- Used in: Full-Stack Web App
- Transaction
- A group of writes that either all happen or none do. Anything that must stay consistent across two tables belongs in one transaction, not in two separate writes.
-
- See also: Write-ahead log
- See also: Race condition
- Used in: Full-Stack Web App
- Race condition
- A result that depends on which of two things finished first. Two requests writing the same counter at once is a race, and it is why a shared counter needs a transaction.
-
- See also: Transaction
- Used in: Full-Stack Web App
- Environment variable
- A value the operating system hands a process at start, used for secrets and settings that must not live in the code. A secret committed to a repository is a secret in public.
-
- See also: Secret
- Used in: Full-Stack Web App
- Secret
- A value that must stay unknown to readers of the code, like a signing key. Rotating a secret invalidates the tokens made with the old one, which signs everyone out.
-
- See also: Environment variable
- See also: Session
- Used in: Full-Stack Web App
- Content Security Policy
- A response header that lists which sources a page may load scripts and styles from. A per-request nonce is how inline styles are allowed without opening every inline style.
-
- See also: Middleware
- See also: Static asset
- Used in: Full-Stack Web App
- Static asset
- A file served as it is: CSS, JS, images, fonts. It has no handler and no session, which is why it can be cached far longer than a page.
-
- See also: Cache header
- See also: Cache busting
- Used in: Full-Stack Web App
- Template
- A file of markup with blanks filled in at render time. A template holds the shape of one page; the data it is given is what makes it a different page.
-
- See also: Route
- See also: Partial
- Used in: Full-Stack Web App
- Partial
- A small template included by others, like the page head or footer. One partial means one place to change, and every page changes with it.
-
- See also: Template
- Used in: Full-Stack Web App
- Render
- Drawing a frame: clearing the canvas and painting every object in order. The order is the depth, so a later draw is a thing in front.
-
- See also: Game loop
- See also: Frame
- Used in: Endless Platformer
AI and models
The vocabulary of a model that answers text, and the things built on it.
- LLM
- A large language model: a model that predicts the next piece of text after a prompt. It is a text predictor, not a database, which is why it can invent a plausible wrong fact.
-
- See also: Token
- See also: Prompt
- See also: Hallucination
- Used in: LLMs
- Used in: Local LLMs
- Token
- A small piece of text, often part of a word, which is the unit a model reads and charges for. "4000 tokens" is not 4000 words, and the split is why long words cost more.
-
- See also: LLM
- See also: Context window
- Used in: LLMs
- Prompt
- The text a model is given before it answers. A prompt states the task, the shape of the answer, and what not to do; the model follows the shape more reliably than it follows the prose.
-
- See also: System prompt
- See also: Context window
- Used in: Prompting
- Used in: LLMs
- System prompt
- The standing instructions a model is given before any user text, holding role, tone, and format. It is the right place for rules that must hold for every answer.
-
- See also: Prompt
- See also: Temperature
- Used in: Prompting
- Context window
- The most text a model can consider at once, counted in tokens. Anything longer has to be cut, summarised, or retrieved, which is why a long document is not simply pasted in.
-
- See also: Token
- See also: Retrieval augmented generation
- Used in: LLMs
- Embedding
- A list of numbers that represents a piece of text, arranged so similar meanings sit close together. Similarity becomes arithmetic, which is how search over meaning works.
-
- See also: Vector
- See also: Retrieval augmented generation
- Used in: LLMs
- Vector
- An ordered list of numbers. An embedding is a vector, and comparing two vectors is how "closest match" is computed.
-
- See also: Embedding
- See also: Array
- Used in: LLMs
- Used in: Quant
- Retrieval augmented generation
- Fetching the passages that actually match a question and putting them in the prompt, so the model answers from real sources instead of memory. It is the fix for a model that invents.
-
- See also: Embedding
- See also: Hallucination
- Used in: AI Agents
- Used in: LLMs
- Hallucination
- A model producing confident text that is not true. It is the default behaviour of a text predictor, and the reason a model's answer must be checked against a source.
-
- See also: Retrieval augmented generation
- See also: Evaluation
- Used in: LLMs
- Temperature
- A setting that widens or narrows the model's choice of next token. Zero picks the most likely continuation every time, which is what a deterministic task needs.
-
- See also: Prompt
- See also: LLM
- Used in: Prompting
- Fine-tuning
- Continuing training on examples of one task, so the model learns that shape. It changes behaviour, not knowledge, which is why it is the wrong tool for "teach it this fact".
-
- See also: Prompt
- See also: Retrieval augmented generation
- Used in: LLMs
- Agent
- A model that runs a loop: decide, call a tool, read the result, decide again. The plan is the model's, the actions are real, and the loop needs a step limit.
-
- See also: Tool calling
- See also: Retrieval augmented generation
- Used in: AI Agents
- Tool calling
- A model choosing a named function and arguments from a list it was given, instead of writing the answer itself. The code runs the call, which is where the model stops being the thing that computes.
-
- See also: Agent
- See also: Function
- Used in: AI Agents
- Streaming
- Sending a model's answer as it is produced, token by token, instead of waiting for the whole reply. A reader starts reading sooner, and a bad answer can be stopped mid-way.
-
- See also: Token
- See also: LLM
- Used in: AI Chatbot
- Used in: LLMs
- Evaluation
- Running a model against a fixed set of questions with a fixed expected answer, and scoring the result. An eval is how a change to a prompt is proven to be an improvement.
-
- See also: Hallucination
- See also: Regression
- Used in: LLMs
- Quantization
- Storing a model's numbers in fewer bits, trading a little accuracy for a much smaller and faster file. It is why a model that needs 13GB can run on a laptop in 4GB.
-
- See also: LLM
- See also: Local model
- Used in: Local LLMs
- Local model
- A model that runs on the machine instead of behind an API. Nothing is sent away and there is no per-call cost, which is the trade: privacy and offline use for a smaller, weaker model.
-
- See also: Quantization
- See also: LLM
- Used in: LLMs
Version control and workflow
The words for changing code with others, and shipping it safely.
- Repository
- One folder plus its recorded history: the files, the changes, and who made each one. A repository is the record, not the folder, which is why deleting the folder deletes the record.
-
- See also: Commit
- See also: Branch
- Used in: Git & Version Control
- Used in: GitHub Essentials
- Commit
- One saved set of changes with a message and a fingerprint. A commit is the unit of "this state works", and it is the thing a bisect walks through.
-
- See also: Repository
- See also: Diff
- Used in: Git & Version Control
- Branch
- A separate line of commits you can work in without touching the main one. A branch is cheap and disposable, which is why a small fix belongs on one.
-
- See also: Repository
- See also: Merge conflict
- Used in: Git & Version Control
- Used in: GitHub Essentials
- Diff
- The difference between two versions, shown as added and removed lines. Reading a diff is how a change is reviewed, because it names exactly what changed.
-
- See also: Commit
- See also: Code review
- Used in: Git & Version Control
- Merge conflict
- Two branches that changed the same lines, where the tool cannot choose. The markers show both sides and your job is to pick one, not to delete the block.
-
- See also: Branch
- See also: Rebase
- Used in: Git & Version Control
- Rebase
- Moving your commits to sit after someone else's, so the history reads as one line. It rewrites your commits, which is why a branch already shared with others is not rebased.
-
- See also: Merge conflict
- See also: Branch
- Used in: Git & Version Control
- Pull request
- A proposed set of changes opened for review before it is merged. It is the review, the discussion, and the CI run in one place.
-
- See also: Code review
- See also: CI/CD
- Used in: GitHub Essentials
- Used in: Git & Version Control
- Code review
- Reading a proposed change before it is merged, looking for what breaks rather than what is styled wrong. A review that finds only style is reviewing the wrong thing.
-
- See also: Pull request
- See also: Regression
- Used in: GitHub Essentials
- CI/CD
- Automated checks on every change: build, test, then deploy. It is the machine that catches the regression you forgot, before a person does.
-
- See also: Pull request
- See also: Test runner
- Used in: CI/CD Pipelines
- Used in: GitHub Essentials
- Test runner
- The program that runs a suite and reports pass or fail per case. A suite that passes but tests nothing is the failure mode, which is why every assertion names what it checked.
-
- See also: CI/CD
- See also: Regression
- Used in: CI/CD Pipelines
- Semantic versioning
- A version number of major, minor, and patch, where the first digit means a breaking change. It is how a reader knows which release a note describes.
-
- See also: Package manager
- See also: Release
- Used in: Git & Version Control
- Release
- A tagged commit marked as shipped, with notes about what changed. A tag is a permanent name for one commit, which is how a regression is bisected against a known good state.
-
- See also: Semantic versioning
- See also: Commit
- Used in: Git & Version Control
- Container
- A packaged set of programs and files that runs the same way on any machine. It is how "works on my machine" becomes "works here", with the toolchain inside it.
-
- See also: Environment variable
- See also: Deploy
- Used in: Go
- Used in: Full-Stack Web App
- Deploy
- Putting a built version somewhere it is served from, and knowing which version is live. A deploy that cannot be rolled back is not a deploy, it is a bet.
-
- See also: Release
- See also: Cache busting
- Used in: CI/CD Pipelines
Game building
The words for the loop a game runs in, from the endless-platformer track.
- Game loop
- The repeating three steps of a running game: read input, update the world, draw the frame. Everything about a game is placed into those three steps.
-
- See also: Render
- See also: Delta time
- Used in: Endless Platformer
- Frame
- One drawn picture in the sequence. Sixty frames a second is the target; a frame that takes longer than 16 milliseconds is the reason a game stutters.
-
- See also: Game loop
- See also: Delta time
- Used in: Endless Platformer
- Delta time
- The real time since the last frame, used to scale movement. Speed is written as units per second, so the game runs the same on a slow machine and a fast one.
-
- See also: Frame
- See also: Game loop
- Used in: Endless Platformer
- Hitbox
- The simple shape used for touching, usually a rectangle smaller than the drawn art. Players feel fair when the hitbox is a little forgiving rather than exact.
-
- See also: Collision detection
- Used in: Endless Platformer
- Collision detection
- Deciding whether two shapes overlap. Rectangles are compared with four inequalities, which is why almost every 2D game starts with boxes rather than outlines.
-
- See also: Hitbox
- See also: State machine
- Used in: Endless Platformer
- State machine
- A set of named states and the allowed moves between them: running, jumping, falling, dead. Naming the states is what makes an impossible transition impossible.
-
- See also: Collision detection
- See also: Game loop
- Used in: Endless Platformer
- Procedural generation
- Building content from a rule and a seed instead of storing it. The same seed gives the same level, which is how a random level can still be tested.
-
- See also: Seed
- See also: Game loop
- Used in: Endless Platformer
- Seed
- The starting number a random generator is given. Fixing it makes a random run reproducible, which is the difference between a testable bug and an unrepeatable one.
-
- See also: Procedural generation
- See also: Random number generator
- Used in: Endless Platformer
- Random number generator
- A source of numbers that look unpatterned. A seeded generator is reproducible, which is what a game needs; a true random source is not, which is what a lottery needs.
-
- See also: Seed
- See also: Procedural generation
- Used in: Endless Platformer
- Used in: Quant
- Canvas
- The browser element you draw pixels into with code. It holds no elements and no styles, which is why a canvas game has no DOM to inspect.
-
- See also: Render
- See also: DOM
- Used in: Endless Platformer
- Used in: JavaScript
- Input handling
- Turning key and mouse events into game intent, and holding that intent in a set of currently-held keys rather than reacting to single presses.
-
- See also: Game loop
- See also: State machine
- Used in: Endless Platformer
Terminal, shell and data
The words for working through a terminal and reading data as text.
- Working Directory
- The place a shell answers from. Relative paths are read against it, so the same command means different things in different directories.
-
- See also: Path
- Used in: Terminal & Shell
- Path(file path)
- The name of a file or folder. An absolute path starts at the root of the drive; a relative path starts at the working directory.
-
- Used in: Terminal & Shell
- Pipe(|)
- Sending the output of one command into the input of the next. Each stage transforms text, and the chain is the program.
-
- See also: Working Directory
- Used in: Terminal & Shell
- Used in: Build a CLI Tool
- Redirection
- Sending a command to a file instead of the terminal, with > for output and < for input. The same two streams a pipe joins.
-
- See also: Pipe
- See also: Redirect
- Used in: Terminal & Shell
- Used in: Build a CLI Tool
- grep
- Finding the lines that match a written pattern. The pattern is a rule about text, not a name of a file.
-
- See also: Regular Expression
- Used in: Terminal & Shell
- Used in: Data Analysis
- Regular Expression(regex)
- A small pattern language for text: character classes, repetition, and alternation. It describes the set of strings a matcher accepts.
-
- See also: grep
- Used in: Terminal & Shell
- Used in: Testing & Debugging
- Glob
- A path pattern with * and ? that names many files at once. The shell expands it before a command sees any arguments.
-
- See also: Path
- Used in: Terminal & Shell
- Used in: Build a CLI Tool
- Standard Input(stdin)
- The one stream a command reads text from: typed, piped, or redirected. A tool that reads stdin works on any source.
-
- See also: Pipe
- Used in: Terminal & Shell
- Used in: Build a CLI Tool
- Standard Output(stdout)
- The one stream a command writes its answer on. Results go here so a pipe can read them; notes and errors go elsewhere.
-
- See also: Standard Input
- Used in: Terminal & Shell
- Used in: Build a CLI Tool
- Exit Code
- The number a command returns to say whether it succeeded: zero means yes, anything else means no. A script branches on it.
-
- See also: Standard Output
- Used in: Terminal & Shell
- Used in: Build a CLI Tool
- CSV
- Rows of values separated by one character, with the first row naming the columns. The simplest table that a text file can hold.
-
- See also: Table
- Used in: Data Analysis
- Pivot
- Re-arranging a table so a category runs across the columns instead of down the rows, which is the shape a chart or a summary wants.
-
- See also: CSV
- Used in: Data Analysis
- Percentile
- The value at a given position in a sorted list, so half the values sit below the median. It describes a distribution without averaging it.
-
- See also: CSV
- Used in: Data Analysis
- SQL
- The language a database reads: name the rows you want, the columns you want, and how they are joined. The database decides the steps.
-
- See also: Query
- See also: Table
- Used in: SQL & Databases
- Table
- Named columns holding one value per row: one thing per row, one property per column. Adding a column is a design decision, not a new file.
-
- See also: CSV
- Used in: SQL & Databases
- Assertion(assert)
- A written claim that a value must hold, checked by running the code. A failing assertion names the promise that broke.
-
- See also: Test runner
- Used in: Testing & Debugging
- Breakpoint
- A line marked so the program stops there on its own, leaving the values on the screen to be read instead of guessed.
-
- See also: Debugging
- Used in: Testing & Debugging
- Mock
- A stand-in object that answers a call with a written value, so a test measures one piece without the real thing behind it.
-
- See also: Assertion
- Used in: Testing & Debugging
Web surface and access
The words for what a browser asks for, sends back, and lets a reader reach.
- HTTP Header
- A name and value sent with a request or a response, carrying the meaning around the body: what type the body is, what may be cached, what may be embedded.
-
- See also: HTTP status code
- See also: Cache header
- Used in: HTTP & APIs
- Used in: Web Performance
- curl
- A command that makes one HTTP request and prints the response, so an API can be read from a terminal before any client code exists.
-
- See also: Standard Output
- Used in: HTTP & APIs
- Rate Limit
- A written ceiling on how often a caller may ask, answered with a status when the ceiling is passed. The limit is part of the contract.
-
- See also: HTTP Header
- Used in: HTTP & APIs
- Used in: Go Web Servers
- Used in: Python Flask Apps
- HSTS
- A header that tells a browser to use https for a site from now on, so an http address is corrected before a request is made.
-
- See also: Content Security Policy
- Used in: Security
- Dependency Audit
- Checking the packages a project pulls in against a list of known problems, so a fix is a version change in the lock file.
-
- See also: Lock File
- Used in: Security
- Alt Text
- The words a screen reader speaks in place of an image. Text that only repeats the file name describes the file, not the picture.
-
- See also: DOM
- Used in: Web Accessibility
- Used in: HTML & CSS
- Focus Ring
- The outline drawn on the control a keyboard is on right now. Removing it without a replacement hides where the reader is.
-
- See also: Input handling
- Used in: Web Accessibility
- Used in: HTML & CSS
- Landmark
- A named region of a page: navigation, main content, footer. A reader can jump to a region instead of walking through every element.
-
- See also: DOM
- Used in: Web Accessibility
- Used in: HTML & CSS
- Contrast Ratio
- The measured gap between text colour and its background. A number below the line is unreadable to part of the audience, not unfashionable.
-
- See also: Alt Text
- Used in: Web Accessibility
- DevTools
- The browser panel that measures a page: requests, timings, layout, and listeners. The measurement lives there, not in a guess.
-
- See also: HTTP Header
- Used in: Web Performance
- Used in: Frontend Testing
- Compression
- Sending a body in a smaller form and saying so in a header, so the transfer costs less and the reader unpacks it the same way.
-
- See also: Static asset
- Used in: Web Performance
- Performance Budget
- A written limit on what a page may spend: bytes, requests, milliseconds. A number nobody can name is not a budget.
-
- See also: DevTools
- Used in: Web Performance
- Flexbox
- A one-axis layout: items share a line and the rules say how they grow, shrink, and space out when the line changes width.
-
- See also: Landmark
- Used in: HTML & CSS
- Grid
- A two-axis layout: rows and columns are declared once and items are placed into them, so the shape is written rather than implied.
-
- See also: Flexbox
- Used in: HTML & CSS
- Design Token
- A named value for a colour, space, or font size, written once and used everywhere, so a change is one edit instead of a hunt.
-
- See also: Variable
- Used in: HTML & CSS
- Used in: Web Performance
- Headless Browser
- A real browser run from a script with no window open, so a page can be driven and measured in a test rather than by hand.
-
- See also: Test runner
- Used in: Frontend Testing
Systems, runtimes and numbers
The words for programs that run close to a machine, serve a socket, or hold money.
- Callback(continuation, handler function)
- A function handed to other code so that code can call it once the work it was asked for is done. The other code decides when and how often it runs, which is why a callback body has to be safe to run more than once.
-
- See also: Runtime
- Used in: Async & Concurrency
- Concurrency(concurrent work)
- Several streams of work open at the same time, so each one can be waiting while another runs. The streams do not have to run in the same order every time, which is what makes the order a thing to design instead of a thing to assume.
-
- See also: Race condition
- Used in: Async & Concurrency
- Thread(thread of execution)
- A separate stream of instructions inside one process, scheduled by the runtime so several of them make progress at once. A thread has no return channel, so a value it produces has to be left in a place someone else reads.
-
- See also: Concurrency
- See also: Runtime
- Used in: Async & Concurrency
- Task(async task, scheduled job)
- One piece of work the runtime can hold open, move around, and finish on its own schedule. A task is a value, so it can be started now and waited for later, which is what lets several waits overlap.
-
- See also: await
- See also: Concurrency
- Used in: Async & Concurrency
- Lock(mutex, mutual exclusion)
- A gate around a section of code that lets only one writer inside at a time. A lock does not stop a writer that takes a different lock, so every writer of one value has to name the same gate.
-
- See also: Race condition
- Used in: Async & Concurrency
- Deadlock(standstill)
- Two holders each waiting for what the other holds, so neither can move and nothing raises an error. The shape needs a cycle, so one stated order for taking every lock removes the cycle for all of them.
-
- See also: Lock
- Used in: Async & Concurrency
- Timeout(time limit, wait cap)
- A limit on how long a wait may stay open before it reports. The limit stops the waiting, not the work, so a task that timed out still has to be cancelled to free the resource it holds.
-
- See also: Task
- Used in: Async & Concurrency
- Sentinel(stop signal, end marker)
- A value put into a stream that means the stream is over rather than being work. A worker that reads one stops, which is the only way an empty queue is told apart from a finished one.
-
- See also: Queue
- Used in: Async & Concurrency
- Idempotent(safe to repeat)
- An action that leaves the same result when it runs twice as when it runs once. A callback that may be called more than once, or a request that may be retried, only behaves well when the action is idempotent.
-
- See also: Callback
- Used in: Async & Concurrency
- await
- A marker on a call that finishes later, telling the runtime to pause this function and come back with the value when it arrives.
-
- See also: Runtime
- Used in: Rust Async & WASM
- Executor
- The piece that decides which ready task runs next on a thread. An async function only works because something schedules it.
-
- See also: await
- Used in: Rust Async & WASM
- WebAssembly(WASM)
- A binary instruction format a browser can run, close to machine speed, with the host deciding what it may touch.
-
- See also: Runtime
- Used in: Rust Async & WASM
- Host Limits
- The ceiling a caller sets on what a guest program may use: memory, time, and which functions it may call.
-
- See also: WebAssembly
- Used in: Rust Async & WASM
- Route Table
- The written set of method plus path pairs a server answers, kept in one place so the contract can be read and diffed.
-
- See also: Route
- Used in: Go Web Servers
- Used in: Python Flask Apps
- Connection Pool
- Reusing the same few sockets instead of opening one per request, so the cost of setting up a connection is paid once.
-
- See also: Race condition
- Used in: Go Web Servers
- Graceful Shutdown
- Stopping a server by finishing the requests it already accepted before closing, so no reader gets a half answer.
-
- See also: Transaction
- Used in: Go Web Servers
- App Factory
- Building the application object inside a function instead of at import time, so configuration and state are set before anything runs.
-
- See also: Route Table
- Used in: Python Flask Apps
- Fixed Step
- Advancing a simulation in equal slices of time regardless of frame rate, so the same input gives the same result on any machine.
-
- See also: Delta time
- Used in: Game Dev beyond Canvas
- Swept Collision
- Testing the whole path a fast object travelled in one step instead of only where it landed, so it cannot pass through a wall.
-
- See also: Collision detection
- Used in: Game Dev beyond Canvas
- Difficulty Curve
- The written plan for how much pressure a game adds over time, so a change is a number in a table rather than a new level.
-
- See also: Fixed Step
- Used in: Game Dev beyond Canvas
- Greeks
- The names for how an option contract moves: delta for time, gamma for the curve, theta for the whole picture. They are vocabulary, not formulas.
-
- See also: Vector
- Used in: Quant Extensions
- Kelly Sizing
- Sizing a stake from the edge and the odds, so a run of good bets cannot be undone by one oversized loss.
-
- See also: Greeks
- Used in: Quant Extensions
- Walk Forward
- Testing a rule on data it has not seen yet, one window at a time, so a result cannot come from fitting the past.
-
- See also: Percentile
- Used in: Quant Extensions
- Portfolio Risk
- The total a whole set of positions can lose at once, which is what a size limit is written against, not each trade alone.
-
- See also: Kelly Sizing
- Used in: Quant Extensions
Building a tool from scratch
The words for a program that reads input, transforms it, and reports what it did.
- Lexer
- The first pass that turns characters into named pieces: number, name, symbol. Everything downstream reasons about pieces, not letters.
-
- See also: Token
- Used in: Build a Compiler
- Grammar
- The written rules for which arrangements of pieces are legal programs, usually one rule per kind of expression.
-
- See also: Lexer
- Used in: Build a Compiler
- Parse Tree
- The nested shape a grammar builds from a flat list of pieces, so order of operations comes from the shape and not from a rule.
-
- See also: Grammar
- See also: Tree
- Used in: Build a Compiler
- Pass
- One full walk over the tree that makes one kind of decision, repeated as a list of steps so each step can be read alone.
-
- See also: Parse Tree
- Used in: Build a Compiler
- Bytecode
- The flat stack instructions a program becomes after the tree, small enough to store and simple enough to run anywhere.
-
- See also: Pass
- See also: Runtime
- Used in: Build a Compiler
- Inverted Index
- A map from each word to the documents that contain it, built once so a lookup costs the same whatever the size of the text.
-
- See also: Hash map
- Used in: Build a Search Engine
- Postings List
- The sorted list of document numbers stored under one word, so two words can be intersected by walking two lists.
-
- See also: Inverted Index
- Used in: Build a Search Engine
- Ranking
- Scoring each hit by how well it matches and how often the words appear, then ordering by the score rather than by arrival.
-
- See also: Postings List
- Used in: Build a Search Engine
- Front Matter
- The block of name and value pairs at the top of a content file, read before the prose so metadata and body never mix.
-
- See also: JSON
- Used in: Build a Static Site Generator
- Template Hole
- A marked gap in a template that one named value fills, with the value escaped so content cannot become markup.
-
- See also: Template
- See also: Render
- Used in: Build a Static Site Generator
- Link Graph
- Every link a page makes, held as pairs of source and target, so a broken address is an edge with no destination.
-
- See also: Graph
- Used in: Build a Static Site Generator
- Manifest
- The written file that names what a tool may reach and how it is loaded, read as the contract before any code runs.
-
- See also: JSON
- Used in: Build a Chrome Extension
- User Style
- A rule a tool adds to a page after it is loaded, so a change is a written instruction rather than a rewrite of the page.
-
- See also: Template Hole
- Used in: Build a Chrome Extension
- Lock File
- The written file that records exactly which versions of which packages a project pulls in, so the same install gives the same tree on another machine.
-
- See also: Package manager
- See also: Dependency Audit
- Used in: Versioning & Releases
- Used in: Docker & Containers
- Keyed Storage
- A tool keeping its own values under names, so state survives a page reload without touching the page again.
-
- See also: Session
- Used in: Build a Chrome Extension
- Arguments(argv)
- The words a command receives after its name, read as a written shape: which are flags, which are values, which are names.
-
- See also: Exit Code
- Used in: Build a CLI Tool
- Dry Run
- Printing the changes a command would make without making them, so a plan can be read and checked before it is applied.
-
- See also: Arguments
- Used in: Build a CLI Tool
- Used in: Build a Static Site Generator
- Build Report
- The summary a tool writes about what it did: counts, warnings, and failures, used to decide whether a run counts as done.
-
- See also: Dry Run
- Used in: Build a Static Site Generator
- Used in: Build a Chrome Extension
- Used in: Build a CLI Tool
AI tools, in practice
The words for what an AI tool reads, changes, and reports back - and for checking it.
- AI Coder
- An editor that writes code beside you: it reads the file you are in and offers the next few lines. The file is its only context unless you give it more.
-
- See also: Agent
- See also: Inline Suggestion
- Used in: AI Coder
- Inline Suggestion
- The next few lines an editor offers at the cursor, which you take or reject. Accepting one without reading it is how a subtle change gets in.
-
- See also: AI Coder
- Used in: AI Coder
- Context Window Fill
- The files an assistant is actually shown when it answers. Naming them is the difference between a guess and an answer about your code.
-
- See also: Context window
- Used in: AI Coder
- Chunking
- Splitting documents into pieces small enough to be compared one at a time, with the overlap between pieces decided before the split.
-
- See also: Embedding
- See also: Token
- Used in: Retrieval & Embeddings
- Vector Search
- Finding the stored pieces nearest a question, measured in directions rather than words, so a different phrasing still reaches the same fact.
-
- See also: Embedding
- See also: Inverted Index
- Used in: Retrieval & Embeddings
- Citation
- The source a claim is traced back to. An answer without one is a sentence nobody can check.
-
- See also: Hallucination
- Used in: Retrieval & Embeddings
- Training Set
- The written examples a model is later tuned on: input paired with the answer it should give. A few dozen good pairs beat a few hundred vague ones.
-
- See also: Fine-tuning
- Used in: Fine-tuning
- LoRA
- Teaching a model a small addition instead of rewriting it, stored as its own file that can be loaded, swapped, or dropped.
-
- See also: Training Set
- Used in: Fine-tuning
- Loss Curve
- The score of how wrong a training run is, plotted over the steps. A curve that stops moving says the run taught nothing.
-
- See also: Training Set
- Used in: Fine-tuning
- Golden Set
- The questions with the answers they must give, written down once and kept, so a model is scored against the same list every time.
-
- See also: Evaluation
- See also: Assertion
- Used in: LLM Evals
- Rubric
- The written rules a judge model scores an answer against, so a score is a claim about named criteria rather than a feeling.
-
- See also: Golden Set
- Used in: LLM Evals
- Pass Rate
- The share of a golden set a model answers well enough. It is the number a release decision is written against.
-
- See also: Golden Set
- Used in: LLM Evals
- Eval Gate
- Refusing a change when the score falls below a written line, so a model update cannot ship on a worse number than the one before it.
-
- See also: Pass Rate
- See also: Build Report
- Used in: LLM Evals
- Fence
- The written marks that separate instructions from the text being worked on, so pasted content is read as data and not as a command.
-
- See also: System prompt
- Used in: Prompt Injection & AI Security
- Escape
- Text that closes a fence early and starts a new instruction, which is what a written rule about data has to survive.
-
- See also: Fence
- Used in: Prompt Injection & AI Security
- Canary String
- A value written into a prompt that no reader would ever type. If it appears in the answer, something outside the prompt was read.
-
- See also: Escape
- Used in: Prompt Injection & AI Security
- Tool Scope
- The named set of actions a model may ask for, with the rest refused. A model that can ask for anything cannot be limited by words alone.
-
- See also: Tool calling
- Used in: Prompt Injection & AI Security