Dev Dictionary
Home / Blog / Programming
ProgrammingUpdated 2026

Setting the Foundation

Setting the Foundation
📚
Free resource
The Dev Dictionary Starter Kit

Get our best free resources and updates.

In this article

    Every developer, no matter what language or framework they eventually specialize in, needs a base layer of vocabulary before anything else makes sense. Tutorials, documentation, and even casual conversation with other developers all assume you already know this layer, which means skipping it doesn't make it disappear — it just means you'll keep hitting confusion at the same spots until you go back and fill it in. This article lays out that base vocabulary deliberately, grouped by the order in which it typically becomes necessary, so that someone starting from zero has a clear place to begin.

    Want expert help putting this into practice? Dev Dictionary can guide you through it.

    The absolute basics: what code actually is

    Before anything else, it helps to have solid footing on the words used to describe code itself. A variable is a named container that holds a value, which can usually change over time. A function is a reusable block of code that performs a specific task, often taking input and producing output. A loop repeats a block of code multiple times, and a conditional (an if/else statement) lets code make decisions based on whether something is true or false. These four ideas — variables, functions, loops, and conditionals — are the actual building blocks of almost all code, regardless of language, and everything more advanced is some combination or extension of them.

    Alongside these, it's worth understanding syntax (the specific rules a language requires for code to be valid) versus logic (the actual reasoning behind what the code should do). Beginners often conflate the two, but a program can have perfect logic and still fail from a small syntax mistake, or have flawless syntax and still be logically wrong.

    How code gets organized

    Related: Devdictionary Tips and Strategies for Effective Technical Communication.

    Once you're comfortable with the basic building blocks, the next layer of vocabulary describes how those blocks get organized into something larger. A class is a template for creating objects that bundle related data and behavior together, and an object is a specific instance created from that template. A module (or package, or library) is a self-contained unit of code that can be reused across a project or shared publicly. Namespace and scope describe boundaries — namespace keeps names from colliding across a codebase, and scope determines where a given variable or function is actually accessible.

    Understanding organization matters early because most real code isn't a single file — it's dozens or hundreds of files working together, and these terms describe the seams between them.

    How code is stored and shared

    Software development is inherently collaborative, and a set of terms exists specifically to describe how code moves between people and machines over time.

    • Repository — a storage location, usually managed with a tool like Git, that holds a project's code and its full history of changes.
    • Commit — a saved snapshot of changes to a repository, along with a message describing what changed.
    • Branch — a parallel, independent line of development within a repository, used to work on changes without affecting the main codebase.
    • Merge — the act of combining changes from one branch into another.
    • Clone — creating a local copy of a remote repository.

    These terms feel abstract until the first time you actually use them, at which point they become some of the most frequently used words in a developer's daily vocabulary.

    How programs run and communicate

    See also: Devdictionary: Essential Steps for Developers.

    Code doesn't do anything until it's executed, and this next cluster of terms describes what happens once it is. A compiler translates human-written code into a form a machine can execute directly, while an interpreter executes code more directly, translating it on the fly as it runs. A runtime is the environment in which a program actually executes, providing the underlying support the code depends on. An API defines how one piece of software can request functionality from another, and a request and response describe the basic back-and-forth of that communication, especially over the web.

    Error and exception describe things going wrong — an error is a general problem, while an exception typically refers to a specific, catchable disruption in a program's normal flow that code can be written to handle gracefully rather than crashing outright.

    Terms that describe quality and trade-offs

    Beyond the mechanics of writing and running code, there's a set of terms developers use to evaluate whether code is actually good — and importantly, "good" in software is almost always a trade-off rather than an absolute.

    • Readability — how easily another developer (including a future version of yourself) can understand what code does.
    • Performance — how efficiently code uses time and system resources.
    • Scalability — how well a system continues to work as demand on it grows.
    • Maintainability — how easily code can be modified or extended later without breaking things.
    • Technical debt — the accumulated cost of shortcuts taken for speed now, at the expense of these other qualities later.

    Recognizing these as distinct, sometimes competing goals — rather than a single vague notion of "good code" — is itself a foundational skill, because most real engineering decisions involve balancing exactly these trade-offs against each other.

    Terms about the people and process side

    Finally, a layer of vocabulary describes not the code but the human process around it, and this is often the least intuitive category for newcomers because it isn't taught in most introductory courses. Agile and sprint describe an iterative approach to planning and delivering work in short cycles. Code review is the practice of having another developer examine proposed changes before they're merged. Standup refers to a short, regular team meeting focused on quick status updates. Deployment is the act of releasing code to a live environment where real users can access it, and a rollback is reversing a deployment that caused problems.

    None of these terms describe writing code directly, but they describe the environment code gets written in on any real team, and misunderstanding them can be just as disorienting to a newcomer as misunderstanding a programming concept.

    It's tempting to pick up this vocabulary passively, absorbing terms here and there as they come up in context. That works eventually, but it's slow and leaves gaps that tend to surface at inconvenient moments — in an interview, in a stand-up, in a pull request comment you can't quite parse. Working through the foundation deliberately, term by term, closes those gaps on your own schedule rather than someone else's. Dev Dictionary is built to support exactly this kind of deliberate pass: short, plain-English entries for each of these terms and the ones that build on them, so the foundation can be set once and built on with confidence.

    Keep reading — free

    Want the full guide?

    Enter your email for free access to the rest of this article and our resource library.

    Frequently asked questions

    What is building?

    Building is covered in depth in this guide, with practical steps you can apply straight away.

    How do I get started with building?

    Start with the essentials in this article, then use the free resources from Dev Dictionary to put them into practice.

    Can Dev Dictionary help with this?

    Yes - Dev Dictionary is built to make building faster and easier, so you get a better result in less time.

    DD
    The Dev Dictionary Team
    Dev Dictionary

    Dev Dictionary shares practical, well-researched guides for readers who want clear answers, not fluff.

    Want more from Dev Dictionary?

    Explore the site for tools, guides and more.

    Explore
    Keep reading