Programming has its own set of technical terms, not to be difficult, but to ease communication about the concepts specific to programming.
To be clear, you do not need to know all of these before cracking up a textbook or your first coding lesson. In fact, trying to memorize them without seeing them in practice is one of the least efficient ways of learning programming words. Consider bookmarking this page to come back to later.
Before You Begin
Important terms you’re most likely to encounter early on are marked with a star (⭐). If you take a look at these and have the prerequisites down, you’ll be set.
Note that some of these definitions have slight differences in different languages, different contexts, or rarely, different versions of the language. Usually, a good programming book, tutor, or class will point that out.
These are elements of coding that you use within individual lines of code.
- Argument/option/parameter — data provided to a function, procuedure, subroutine, or method that controls how it works. For example, a function that calculates the area of a rectangle would have the length and width as parameters.
- Array/list/sequence/vector — is a collection of numbers or other data. There are often subtle distinctions between arrays, lists, sequences, and vectors that are outside the scope of this article.
- Call (⭐) — a command causing a function, procedure, subroutine or method to be run. These often have arguments.
- Comment — text in source code that’s marked so the compiler will ignore it.
- Constant — a named value that doesn’t change throughout the course of a program. For example, it’s good practice to define pi as a constant.
- Floating point — is the primary way computers store decimal numbers. A floating point number resembles a number in scientific notation. One part represents the base and the other represents the exponent. Because the exponent moves the decimal point around, it’s a “floating point.”
- Integer (⭐) — a whole number. Integers usually allow both positive and negative numbers, like in mathematics, but unsigned integers only allow positive numbers.
- Keyword — words that have a special meaning fundamental to the language. If is an example of a keyword in many programming languages.
- Literal (⭐) — a hardcoded number, text, or other value, as opposed to values that come from the user or another source.
- Operator — short symbols for mathematical, data, or logical operations. Usually, these are a single character. For example, the plus sign represents addition in virtually every programming language, just like it does in arithmetic.
- Regular expression — a way of describing patterns in text. For example, the regular expression “$. matches a dollar sign followed by one or more digits, a decimal point, and then two digits — a dollar amount. Technically a language in itself, it’s embedded in many programming languages because it’s handy for interpreting and modifying text, although there are slight variations in how it’s written.
- Return — statement that marks the end of a function, procedure, subroutine, or method, sometimes includes a value that the code that called the function can use. For example, a function that adds two numbers would return the sum.
- String (⭐) — a series of characters. This data type is used to represent text, including both short segments like user names and longer texts like documents.
- Type — refers to the kind of data a variable stores. For example, whole numbers have the type integer. See Integer and Floating Point
- Variable (⭐) — named data in the program. Despite their name, the word “variables” are sometimes used to refer to data that is set and doesn’t change, leading to the common oxymoron “constant variable.” See Constant.
While these terms for describing how languages are designed and used sometimes feel academic, they are useful in comparing different programming languages as you choose which language to learn.
- Declarative programming — a style or paradigm of programming that emphasizes describing the desired outcome rather than the steps to get it. Contrast Imperative Programming.
- Dynamic — A dynamic programming language determines the data types as the program runs, rather than during compilation. Often this means the programmer does not have to write out the types, but means both the programmer and the compiler have less information readily available. See Static.
- Functional programming — a style or paradigm that emphasizes organizing programs around functions. Often functional programming tries to separate functions that take in data and return transformed data from functions that have other effects.
- Imperative programming — a style or a paradigm of programming that emphasizes using step-by-step instructions. Contrast declarative programming
- Object-oriented programing — is a style of programming that emphasizes organizing programs around classes and objects. This term is sometimes used broadly to refer to virtually any program that uses objects and classes or any languages that supports them.
- Static — a static programming language determines the data types during compilation rather than as the program runs. See Dynamic.
- Strongly typed — For example, in these languages trying to combine a string and a number would give you an error unless you explicitly converted one of them first. Compare weakly typed.
- System programming language — language used for building software the works closely with the underlying hardware, usually providing a platform or service for other software to build upon. For example, Windows needs to interpret the signals from the keyboard to produce letters, numbers, and other input, and is thus written in C and C++
- Weakly typed — refers to languages that tend to allow data of different types to be used together without converting them first. For example, some languages allow you to write “hello” + 1, resulting in “hello1”. This term is imprecise. It’s also sometimes derogatory because, while these automatic conversions can be handy, they can cause subtle bugs
These are elements of programs for organization, or changing their flow or order.
- Algorithm — a set of instructions to solve a general problem or calculate something, often one that’s formalized in mathematics or computer science. For example, long division is an algorithm.
- Class — a template for an object in most programming languages with objects. The template will specify.
- Control flow — Commands in a programming language that determine which code runs. For example, a control flow directive might cause a group of instructions to be repeated five times.
- Function/procedure/subroutine/method — smaller units of a program that can be re-run repeatedly. For example, an application might have a function that pops up a completed message and the function could be used (called) throught the program. There are often subtle distinctions between functions, procedures, subroutines, and methods that are beyond the scope of this article. Despite their prominence in functional program, they are used in a variety of programming languages.
- If statement — a statement that runs code depending on whether something is true. For example, you could display a “Happy Birthday” message only if today is the user’s birthday. A small number of languages do not have an if statement, but they usually have an equivalent.
- Loop — a control structure in a program that repeats certain code.
- Library — code you can reference and reuse in other programs. For example, code to get the current date is usually stored in a library rather than being written from scratch every time. A standard library comes with the language.
- Object — a group of data and functions. While they’re prominent in object-oriented programming, depending on the definition, they aren’t exclusive to it. See class.
- Structure/record — a group of related data. For example, information about a person could be organized together into a structure containing their name and age. In some languages, structures are a special type of Object.
- Syntax — the rules for arranging keywords, values, and other parts of the code. Human languages also have syntax—an English syntax rule is that questions begin with a verb.
Processes, Products, and Tools
The terms below relate to the process of development, the programs produced, and the tools used to do it.
- Binary/executable (⭐) — A program in the machine code that the processor can directly understand and run. The vast majority of programs that you’ve downloaded or are included with your computer are binaries.
- Compiler (⭐) — What translates the human-readable source code to machine-readable instructions.
- Debugger — a program for inspecting your program as it runs in order to determine the cause of a bug.
- Execute (⭐) — to start a program or other code.
- Interpreter (⭐) — a program that directly runs source code without first translating it to machine code. Some interpreters do some processing beforehand, just not a full compilation.
- Refactor — to rewrite or rearrange code. Usually, this refers to changes that make the code better organized or more intelligible but don’t change how it works.
- Script — a short, relatively simple program, often one written in an interpreted language to automate a specific set of steps. There’s not a clear line between scripts and applications.
- Source code (⭐) — the text instructions that make up a computer program.
- Terminal/console/commandline — a program for running programs with a text-based interface. While text interfaces were universally used because they were the only option, text-based interfaces are sometimes still used for their power or efficiency once learned. (This blog post was written in a terminal.)
When Things Go Wrong
Here’s how to describe issues in programming, and how they’re dealt with.
- Bug — a mistake in the program causing a crash, incorrect behavior, or other issues. Famously, colleagues of Grace Hopper found a literal bug in their computer, and although the term wasn’t new, she and her team popularized the term with the story. Two particular kinds are syntax errors or logic errors.
- Exception — an error that interrupts the normal flow of code. Normally, exceptions should have some code that resolves or cleans up the error— exceptions often crash a program and are the source of the “unhandled exception” error message you may see sometimes. Contrast Error Code
- Error code — a number or alphanumeric identifier that indicates the kind of error that occurred. Usually these are done alongside the normal flow. Contrast Exception.
- Logic errors — an issue that causes the program to return incorrect results or other wrong behavior, often without crashing or displaying an outright error. For example, an incorrect formula would probably follow the rules of the language, meaning there would be no syntax error and it would run correctly, but the result would be wrong.
- Syntax error (⭐) — a mistake in source code that breaks the basic rules of the language. These almost always prevent a program from running or even compiling. For example, forgetting a semicolon is a syntax error in languages that use them to indicate the end of each line.
Learn Programming Basics
Read all the other articles about coding on The Wyzant Blog, and connect with an experienced programming pro to jumpstart your progress.
Programming has its own set of technical terms, not to be difficult, but to ease communication about the concepts specific to programming. To be clear, you do not need to know all of these before cracking up a textbook or…
Independent coding projects are a great way to both gain realistic programming experience and cement the concepts you’ve learned. This makes them a good fit if you’re looking for a next step after finishing your initial course, or programming how-to…