Skip to content

Beginner glossary

Plain-language definitions for terms that show up in the From Scratch beginner paths and cross-topic pages. Each entry is two or three sentences, often with an analogy. If a term feels obvious to you already, skip it.

For the precise, terse, cross-path definitions used in the senior reference paths, see the main glossary.


Programming basics

Variable. A named container for a value. x = 5 means "from now on, when I say x, I mean 5." You can change what's inside it later: x = 10 replaces the value.

Constant. A named value that won't change after it's set. Constants exist mostly for readers - to signal "this number is meaningful, don't expect it to be different later."

Function. A reusable block of code with a name. You "call" it by name to run that block - like a recipe in a cookbook that you can follow whenever you need it. Functions often take inputs (parameters) and give back an answer (return value).

Parameter. An input slot in a function definition. If a function is add(a, b), then a and b are parameters - placeholders for the actual values you'll pass when you call it.

Argument. The actual value you pass to a function when you call it. add(3, 4) - 3 and 4 are arguments filling the a and b parameters.

Return value. The answer a function gives back to the code that called it. add(3, 4) returns 7. Some functions don't return anything; they just do something (like printing).

Scope. Where a variable is visible. A variable created inside a function usually can't be seen from outside it. Scope rules keep unrelated parts of a program from accidentally clobbering each other's values.

Class. A blueprint for creating objects. A Dog class describes what every dog has (a name, a breed) and what it can do (bark(), eat()). You then create specific dogs from that blueprint.

Object / instance. A specific thing created from a class. If Dog is the blueprint, then my_dog = Dog("Rex") creates a specific dog. my_dog is an instance of Dog.

Method. A function that belongs to a class. my_dog.bark() calls the bark method on the specific dog object.

Attribute / property. A piece of data attached to an object. my_dog.name is an attribute; reading it gives you "Rex".


Data types

Integer. A whole number. 5, -3, 1000. No decimal point.

Float. A number with a decimal point. 3.14, -0.5. Floats can represent fractions, integers can't.

String. A sequence of characters - usually written between quotes. "hello", 'world'. Used for any text data.

Boolean. A value that's either true or false. Used in conditions: "if the user is logged in (true), show the dashboard."

List / array. An ordered sequence of values. [1, 2, 3] or ["red", "green", "blue"]. You can access items by position (my_list[0] for the first).

Dictionary / map / hash. A collection of key→value pairs. {"name": "Alice", "age": 30}. You look up values by their key (person["name"] gives "Alice"). Different languages call this different things.

Tuple. A fixed, ordered group of values. Like a list, but you can't change it after creating it. (latitude, longitude).

Null / None / nil. A value that explicitly means "nothing here." Useful for "this field hasn't been set yet." Different languages use different names for the same idea.


Files, processes, and the terminal

File. A named blob of data stored on disk. Text files, image files, executable files - all the same idea, different contents.

Directory / folder. A container that holds files (and other directories). The filesystem is a tree of directories with files at the leaves.

Path. The address of a file or directory. /home/alice/projects/notes.txt says "starting from the root, go into home, then alice, then projects, then the file notes.txt."

Absolute path. A path that starts from the root (/ on Linux/Mac, C:\ on Windows). Always points to the same place regardless of where you are.

Relative path. A path that's interpreted starting from your current location. ./notes.txt means "the file notes.txt in this directory."

Terminal / shell. A text-based interface for talking to your computer. You type commands; the computer runs them and prints results. The terminal is the window; the shell (bash, zsh, fish) is the program running inside it.

Command. A line you type in the terminal to do something. ls lists files. cd projects moves you into the projects directory.

Flag / option. An extra modifier on a command, usually starting with - or --. ls -l runs ls with the "long format" flag.

Process. A running program. When you double-click an app or run python script.py, the OS starts a process. Every process has an ID (PID), some memory, and at least one thread.

Thread. A single line of execution within a process. A process can have one thread (single-threaded) or many (multi-threaded, doing several things at once).

Environment variable. A named value that lives in your shell's environment and is inherited by programs you run from it. PATH tells your shell where to look for commands; HOME is your home directory.


Networking

IP address. A computer's address on a network. IPv4 looks like 192.168.1.10; IPv6 looks like 2001:db8::1. Two devices on the same network can talk to each other by IP.

Port. A numbered "channel" on an IP address. A web server typically listens on port 80 (HTTP) or 443 (HTTPS). One IP can have many programs each on different ports.

DNS (Domain Name System). The system that converts human-friendly names (github.com) into IP addresses. Like a phone book for the internet.

HTTP / HTTPS. The protocol web browsers and servers speak. HTTPS is the encrypted version. When you visit a URL, your browser sends an HTTP request; the server sends back an HTTP response.

Request. A message a client sends to a server: "give me this page" or "save this form data." Has a method (GET, POST, etc.), a URL, headers, and sometimes a body.

Response. What the server sends back to a client. Has a status code (200 OK, 404 Not Found), headers, and a body.

Status code. A three-digit number in an HTTP response indicating what happened. 2xx = success, 3xx = redirect, 4xx = client error (you asked wrong), 5xx = server error (server broke).

API (Application Programming Interface). A defined way for one program to talk to another. A "REST API" usually means a set of HTTP URLs that return JSON.

JSON. A text format for structured data. Looks like {"name": "Alice", "age": 30}. The most common format APIs use to send data.

Server. A program (or computer) that waits for requests from clients and responds. Web servers, database servers, API servers.

Client. A program that sends requests to a server. Your browser is a client. So is curl, and most apps.


Source control

Git. A version control system. Records every change you make to a project, lets you roll back, branch off, and collaborate without overwriting each other.

Repository / repo. A project tracked by git. Has all the files plus the entire history of changes.

Commit. A snapshot of the project at a moment in time, with a message describing what changed. Like saving the game.

Branch. A parallel line of work in the project. You can experiment on a branch without affecting the main line; when ready, you merge it back.

Merge. Combining changes from one branch into another. Sometimes git can do it automatically; sometimes there's a conflict you have to resolve by hand.

Pull request (PR). A proposal to merge your branch's changes into someone else's branch (usually the main branch of a shared repo). Triggers code review.

Clone. Making a local copy of a remote repository. git clone <url> downloads everything.

Push. Sending your local commits up to the remote repository.

Pull. Downloading new commits from the remote into your local copy.


Building, packaging, deploying

Source code. The human-written text of a program - what you edit in your text editor.

Compile. Translate source code into something the machine can run (or that another tool can execute). C and Rust compile to machine code; Java compiles to bytecode.

Interpret. Execute source code line by line without a separate compile step. Python and JavaScript are usually run by interpreters.

Build. The whole process of turning source code into a runnable thing: compile, link libraries, package files. "The build is broken" means this process failed.

Library. Reusable code someone else wrote that you pull into your project. numpy is a Python library for numerical work.

Package. A library plus metadata (name, version, dependencies) bundled for distribution. pip install numpy installs the numpy package.

Dependency. A library your project needs to work. Listed in a file like requirements.txt or package.json so others can install the same set.

Version. A label identifying a specific release of a package. Often three numbers: 1.2.3 (major.minor.patch). You usually want to pin to a specific version so your project doesn't break when the library updates.

Deploy. Move your code from "running on my laptop" to "running on a server users can reach." Modern deployment usually involves containers, CI pipelines, and cloud platforms.

CI (Continuous Integration). Automatic checks that run every time you push code: tests, linters, builds. Catches problems early.

CD (Continuous Deployment). Automatic deployment: when tests pass on the main branch, the new code goes live without anyone clicking a button.


Containers & cloud

Container. A lightweight, packaged-up version of an app plus everything it needs to run (libraries, config, files). Runs the same on any machine that has a container runtime. Docker is the most-known tool for working with containers.

Image. A snapshot of a container - the blueprint. You build an image once, then run many container instances from it.

Dockerfile. A text file listing the steps to build an image. FROM python:3.12, COPY . /app, RUN pip install -r requirements.txt, CMD ["python", "app.py"].

Kubernetes (K8s). A system for running and managing containers at scale across many machines. Handles starting, restarting, scaling, networking.

Pod. Kubernetes's smallest unit - one or more containers that run together on the same machine. Most pods have just one container.

Cluster. A group of machines (nodes) Kubernetes manages as a single system. You give it work; it figures out where to run it.

Cloud provider. A company that rents you compute, storage, and networking (AWS, Google Cloud, Azure, Hetzner, DigitalOcean). You pay by the hour for what you use.


Programming concepts

Bug. A defect in code - the program doesn't do what it should. Most of programming is finding and fixing bugs.

Debugger. A tool that pauses your running program so you can inspect what's happening line by line. pdb in Python, the browser DevTools for JavaScript.

Log. A message your program writes (usually to a file or the terminal) recording what it's doing. Critical for debugging things that already happened.

Exception / error. A signal that something went wrong. Languages with exceptions "throw" them when something unexpected happens; you can "catch" them to handle the situation gracefully.

Test. Code that runs your code with known inputs and checks the outputs are correct. Lets you change things later without breaking existing behavior.

Unit test. A test of one small piece (one function, one class) in isolation. Fast to run; catches local bugs.

Refactor. Changing the shape of code without changing what it does. Usually to make it clearer or easier to extend.

Algorithm. A specific recipe for solving a problem. "Binary search" is an algorithm for finding a value in a sorted list.

Data structure. A way of organizing data so that certain operations are fast. Lists, dictionaries, trees, graphs.


AI / ML

Model. A piece of trained software that takes inputs (text, images) and produces outputs (predictions, generated text). LLMs like GPT or Claude are models.

Training. The process of feeding a model lots of examples so it learns to do a task. Takes hours to weeks depending on size.

Inference. Running a trained model on new inputs to get an answer. What happens every time you ask ChatGPT a question.

Dataset. A collection of examples used for training or evaluation. Can be millions of images, billions of text snippets, etc.

Parameter (ML). One of the millions or billions of tunable numbers inside a neural network model. "7B model" means the model has 7 billion parameters.

Token. The unit a language model reads and writes. Roughly equivalent to a syllable or short word fragment. "Hello world" is 2-3 tokens depending on the tokenizer.

Prompt. The text you give to an LLM as input. Prompt engineering is the practice of writing prompts that produce good outputs.

Embedding. A list of numbers that represents the meaning of a piece of text (or image). Similar meanings produce similar embeddings, which lets computers compare meaning numerically.

Fine-tuning. Taking an already-trained model and training it a bit more on your own data to specialize it for your task.

RAG (Retrieval-Augmented Generation). A pattern where you search a database for relevant info, then include that info in the prompt to the LLM. Lets the LLM "know" things it wasn't trained on.

Hallucination. When an LLM confidently makes up something that isn't true. A failure mode you have to design around, not eliminate.

GPU (Graphics Processing Unit). A chip designed for doing many small math operations in parallel. Originally for games; now critical for training and running AI models.


What's not in here

This glossary covers terms a beginner is likely to meet in the first ~6 months. The main glossary goes much deeper: compiler internals, distributed-systems consensus, kernel mechanisms, async runtime details. Read this page first; reach for the senior glossary when a specific term you've already seen needs more precision.