Programming: glossary terms

Core software development concepts: APIs, version control, testing, languages, patterns and everyday engineering vocabulary.

Glossary · ProgrammingAlgorithmAn algorithm is a finite, step-by-step procedure for solving a problem or performing a computation, such as sorting a list or finding a route.Glossary · ProgrammingAPI (Application Programming Interface)An API is a defined set of rules and endpoints that lets one piece of software request data or actions from another without knowing its internals.Glossary · ProgrammingAPI KeyAn API key is a secret string that identifies an application calling an API, used for access control, usage tracking and rate limiting.Glossary · ProgrammingArray (Data Structure)An array is a data structure that stores elements in contiguous memory and lets you access each one instantly by its numeric index.Glossary · ProgrammingAsynchronous ProgrammingAsynchronous programming lets a program start a slow task, such as a network request, and continue other work instead of blocking until it finishes.Glossary · ProgrammingBackward CompatibilityBackward compatibility means a newer version of software or an API continues to work with data, code and clients built for older versions.Glossary · ProgrammingBig O NotationBig O notation describes how an algorithm's running time or memory use grows as its input size grows, ignoring constants and lower-order terms.Glossary · ProgrammingBinary TreeA binary tree is a hierarchical data structure in which each node has at most two children, called left and right.Glossary · ProgrammingBugA bug is a flaw or mistake in software that causes it to produce incorrect results, crash or behave differently from what its designers intended.Glossary · ProgrammingC (Programming Language)C is a low-level, compiled programming language from the early 1970s that gives direct control over memory and underlies most operating systems.Glossary · ProgrammingC# (Programming Language)C# is a statically typed, object-oriented language from Microsoft that runs on the .NET platform and is used for web, desktop, mobile and game development.Glossary · ProgrammingC++C++ is a compiled, multi-paradigm language that extends C with classes, templates and a large standard library, used where performance matters.Glossary · ProgrammingCallbackA callback is a function passed as an argument to another function, which calls it later when an operation finishes or an event occurs.Glossary · ProgrammingCherry-PickCherry-picking in Git copies a single chosen commit from one branch onto another by creating a new commit with the same changes.Glossary · ProgrammingCI/CD (Continuous Integration and Delivery)CI/CD is the practice of automatically building and testing every code change (CI) and automatically releasing it to environments or production (CD).Glossary · ProgrammingClosureA closure is a function bundled with the variables from the scope where it was created, so it can keep using them after that scope has finished.Glossary · ProgrammingCode CoverageCode coverage is a metric showing what percentage of a program's lines, branches or functions are executed by its automated tests.Glossary · ProgrammingCode FormatterA code formatter automatically rewrites source code into a consistent style, handling indentation, spacing and line breaks so teams avoid style debates.Glossary · ProgrammingCode ReviewCode review is the practice of having teammates examine proposed code changes before they are merged to catch defects and improve quality.Glossary · ProgrammingCompilerA compiler is a program that translates source code written in a high-level language into machine code or bytecode before the program runs.Glossary · ProgrammingData StructureA data structure is a way of organizing and storing data in memory, such as an array, hash map, stack or tree, so it can be used efficiently.Glossary · ProgrammingDebuggingDebugging is the process of finding, understanding and fixing the cause of a bug using tools such as logs, breakpoints and reproducible test cases.Glossary · ProgrammingDependencyA dependency is an external library, package or service that your software needs in order to build or run correctly.Glossary · ProgrammingDependency InjectionDependency injection is a technique where an object receives the other objects it depends on from outside, rather than creating them itself.Glossary · ProgrammingDeprecatedDeprecated describes a feature, function or API that still works but is discouraged and planned for removal, so users should migrate to its replacement.Glossary · ProgrammingDesign PatternA design pattern is a reusable, named solution to a commonly occurring software design problem, described as a template rather than finished code.Glossary · ProgrammingDRY (Don't Repeat Yourself)DRY is a software principle stating that each piece of knowledge should have a single, authoritative representation in a codebase.Glossary · ProgrammingEnvironment VariableAn environment variable is a named value set outside a program's code, such as a port or API key, that the program reads from its operating environment.Glossary · ProgrammingEvent LoopThe event loop is the mechanism that lets a single-threaded runtime handle many asynchronous tasks by repeatedly running queued callbacks.Glossary · ProgrammingExceptionAn exception is an error event raised during program execution that interrupts normal flow and can be caught and handled by surrounding code.Glossary · ProgrammingFork (Git)A fork is a personal copy of another repository on a hosting platform, letting you change it freely and propose those changes back via a pull request.Glossary · ProgrammingFunctionA function is a named, reusable block of code that takes input values called parameters, performs a task and can return a result to the caller.Glossary · ProgrammingFunctional ProgrammingFunctional programming is a style that builds programs from pure functions and immutable data, avoiding shared state and side effects.Glossary · ProgrammingGarbage CollectionGarbage collection is automatic memory management in which a runtime finds objects a program can no longer reach and frees their memory.Glossary · ProgrammingGitGit is a free, distributed version control system that tracks changes to source code and lets many developers work on the same project in parallel.Glossary · ProgrammingGit BranchA Git branch is a lightweight, movable pointer to a line of commits that lets you develop a feature or fix in isolation from the main code.Glossary · ProgrammingGit CommitA Git commit is a saved snapshot of your project's tracked files, identified by a unique hash and stored with an author, timestamp and message.Glossary · ProgrammingGit RebaseGit rebase moves or replays a branch's commits on top of another base commit, producing a linear history instead of a merge commit.Glossary · ProgrammingGo (Programming Language)Go is a statically typed, compiled language from Google designed for simple syntax, fast builds and easy concurrency in networked services.Glossary · ProgrammingGraphQLGraphQL is a query language and runtime for APIs where the client specifies exactly which fields it wants and receives them in a single request.Glossary · ProgrammingHash TableA hash table is a data structure that maps keys to values by running each key through a hash function to find where its value is stored.Glossary · ProgrammingIDE (Integrated Development Environment)An IDE is a software application that combines a code editor, build tools, a debugger and other helpers in one interface for writing software.Glossary · ProgrammingIdempotentAn idempotent operation produces the same end result no matter how many times it is repeated, which makes retries safe in APIs and distributed systems.Glossary · ProgrammingImmutabilityImmutability means a value cannot be changed after it is created; instead of modifying it, code produces a new value with the change applied.Glossary · ProgrammingInteger OverflowInteger overflow happens when an arithmetic result exceeds the largest value a fixed-size integer type can hold, causing wraparound or an error.Glossary · ProgrammingIntegration TestAn integration test checks that multiple components, such as code, a database and an external service, work correctly together rather than in isolation.Glossary · ProgrammingInterpreterAn interpreter is a program that reads source code and executes it directly, line by line or statement by statement, without a separate compile step.Glossary · ProgrammingJavaJava is a statically typed, object-oriented programming language that compiles to bytecode and runs on the Java Virtual Machine across platforms.Glossary · ProgrammingJSON (JavaScript Object Notation)JSON is a lightweight text format for structured data built from objects, arrays, strings, numbers, booleans and null, used by most web APIs.Glossary · ProgrammingKotlinKotlin is a statically typed language from JetBrains that runs on the JVM, is Google's preferred language for Android, and interoperates with Java.Glossary · ProgrammingLibrary vs FrameworkA library is code you call when you need it, while a framework calls your code and dictates the structure of your application.Glossary · ProgrammingLinked ListA linked list is a data structure of nodes where each node holds a value and a reference to the next node, allowing quick insertion and removal.Glossary · ProgrammingLinterA linter is a tool that statically analyzes source code to flag bugs, risky constructs and style violations without running the program.Glossary · ProgrammingMemory LeakA memory leak is a bug where a program keeps memory it no longer needs, so its memory use grows over time until performance suffers or it crashes.Glossary · ProgrammingMerge ConflictA merge conflict happens when Git cannot automatically combine changes because two branches edited the same lines or one deleted a file the other changed.Glossary · ProgrammingMiddlewareMiddleware is code that sits between a request and the final handler in an application, processing or modifying it for tasks like logging or authentication.Glossary · ProgrammingMockingMocking replaces a real dependency in a test with a controlled fake object that returns preset responses and can record how it was called.Glossary · ProgrammingMonorepoA monorepo is a single version-control repository that holds the code for many projects, services or packages instead of one repository each.Glossary · ProgrammingMVC (Model-View-Controller)MVC is an architectural pattern that separates an application into a model for data, a view for display, and a controller that handles input.Glossary · ProgrammingNullNull is a special value meaning that a variable or field has no value or does not point to any object, and misusing it is a classic source of bugs.Glossary · ProgrammingOOP (Object-Oriented Programming)Object-oriented programming is a style that organizes code into objects combining data and behavior, built on classes, encapsulation and inheritance.Glossary · ProgrammingOpen SourceOpen source software has publicly available source code that anyone may inspect, modify and share under a license that meets the Open Source Definition.Glossary · ProgrammingPackage ManagerA package manager is a tool that downloads, installs, updates and removes software libraries and their dependencies, such as npm, pip or apt.Glossary · ProgrammingPaginationPagination splits a large set of results into smaller pages that are returned or displayed one at a time, using offsets, page numbers or cursors.Glossary · ProgrammingPHPPHP is a server-side scripting language widely used for web development and the language behind WordPress and a large share of dynamic websites.Glossary · ProgrammingPointerA pointer is a variable that stores the memory address of another value, letting a program access or modify data indirectly.Glossary · ProgrammingPromise (Programming)A promise is an object representing the eventual result of an asynchronous operation, which is pending, fulfilled with a value, or rejected with an error.Glossary · ProgrammingPull RequestA pull request is a proposal to merge one branch into another on a hosting platform, where teammates review, discuss and test the changes first.Glossary · ProgrammingPythonPython is a high-level, dynamically typed, general-purpose programming language known for readable syntax and a very large standard library.Glossary · ProgrammingQueue (Data Structure)A queue is a first-in, first-out data structure where items are added at the back and removed from the front, like a line of people.Glossary · ProgrammingRace ConditionA race condition is a bug where a program's result depends on the unpredictable timing or order of concurrent operations that share data.Glossary · ProgrammingRecursionRecursion is a technique where a function solves a problem by calling itself on smaller versions of that problem until it reaches a simple base case.Glossary · ProgrammingRefactoringRefactoring is restructuring existing code to make it cleaner and easier to maintain without changing what the program does from the outside.Glossary · ProgrammingRegex (Regular Expression)A regular expression is a compact pattern language for matching, searching and replacing text, used for validation, parsing and log filtering.Glossary · ProgrammingREST APIA REST API is a web API that exposes resources at URLs and uses standard HTTP methods such as GET, POST, PUT and DELETE to read and change them.Glossary · ProgrammingRubyRuby is a dynamic, object-oriented scripting language known for expressive syntax and for powering the Ruby on Rails web framework.Glossary · ProgrammingRuntimeA runtime is the environment and period in which a program executes, providing services such as memory management, libraries and system access.Glossary · ProgrammingRust (Programming Language)Rust is a compiled systems language that guarantees memory safety without a garbage collector by enforcing ownership and borrowing rules at compile time.Glossary · ProgrammingScope (Programming)Scope is the region of a program where a variable or function name is visible and can be used, such as local, function, block or global scope.Glossary · ProgrammingSDK (Software Development Kit)An SDK is a bundle of libraries, tools, documentation and samples that helps developers build software for a specific platform, service or API.Glossary · ProgrammingSemantic Versioning (SemVer)Semantic versioning is a numbering scheme, MAJOR.MINOR.PATCH, where each part signals whether a release has breaking changes, features or only fixes.Glossary · ProgrammingSerializationSerialization converts an in-memory object or data structure into a format such as JSON or binary that can be stored or transmitted and later rebuilt.Glossary · ProgrammingSingletonThe singleton is a design pattern that ensures a class has only one instance and provides a single global point of access to it.Glossary · ProgrammingSoftware License (MIT, GPL, Apache)A software license is the legal agreement that states how code may be used, modified and redistributed, such as the permissive MIT or copyleft GPL.Glossary · ProgrammingSOLID PrinciplesSOLID is a set of five object-oriented design principles aimed at making software easier to understand, extend and maintain.Glossary · ProgrammingStack TraceA stack trace is a printed list of the function calls active when an error occurred, showing the file and line numbers that led to the failure.Glossary · ProgrammingStack vs HeapThe stack holds short-lived function data in a fast, ordered structure, while the heap holds dynamically allocated data that can outlive a function call.Glossary · ProgrammingSwift (Programming Language)Swift is a compiled, statically typed language from Apple, used to build apps for iOS, macOS, watchOS and tvOS, with safety features built in.Glossary · ProgrammingTDD (Test-Driven Development)Test-driven development is a practice where you write a failing automated test first, then write the minimum code to pass it, then refactor.Glossary · ProgrammingTechnical DebtTechnical debt is the future cost of rework created by choosing a quick or messy solution now instead of a better design that would take longer.Glossary · ProgrammingThreadA thread is the smallest unit of execution within a process, letting a program run several tasks concurrently while sharing the same memory.Glossary · ProgrammingTypeScriptTypeScript is a typed superset of JavaScript from Microsoft that adds static types and compiles to plain JavaScript for browsers and Node.js.Glossary · ProgrammingUnit TestA unit test is a small automated test that checks one function or class in isolation to verify it returns the expected result for a given input.Glossary · ProgrammingVariableA variable is a named storage location in a program that holds a value, which can be read and, in most languages, changed while the program runs.Glossary · ProgrammingVersion ControlVersion control is a system that records changes to files over time so you can review history, revert mistakes and collaborate without overwriting work.Glossary · ProgrammingXML (Extensible Markup Language)XML is a text markup format that stores structured data in nested, self-describing tags and is used for feeds, sitemaps, configuration and legacy APIs.Glossary · ProgrammingYAMLYAML is a human-readable data format that uses indentation to express structure and is widely used for configuration files in CI/CD, Docker and Kubernetes.