Concepts transfer between languages
Variables, functions, data structures, testing and complexity matter in Python, Java, C, C++ and JavaScript even when syntax differs.
Explore 100+ programming terms covering algorithms, Python, Java, C, C++, JavaScript, testing, APIs, software design and developer workflows.
Programming vocabulary describes more than syntax. It includes the structures used to represent information, the control flow that changes it, the interfaces that connect components and the practices that keep software testable. Use this glossary to understand how individual language features fit into dependable software.
Variables, functions, data structures, testing and complexity matter in Python, Java, C, C++ and JavaScript even when syntax differs.
Readable boundaries, validation, tests and version control make behaviour safer to change.
Arrays, maps, trees, queues and classes each make some operations easier and others more expensive.
See exactly where the concept appears in a structured specialisation.
Read the roadmap, comparison or project guide that gives it context.
Connect relevant terminology with the certification domain that assesses it.
A class intended for extension that may define shared behaviour and incomplete methods.
The practice of exposing essential behaviour while hiding unnecessary implementation details.
A keyword that controls where a class member or type can be used.
A finite sequence of steps for solving a problem or producing a result from an input.
The growth of time or memory requirements as problem size changes.
A defined way for software components to request data or behaviour from one another.
A fixed or indexed collection of elements accessed by position.
A concise JavaScript function expression with lexical this binding.
A model that lets work progress without blocking while another operation completes.
An ordered-search algorithm that repeatedly eliminates half of the remaining range.
A hierarchical data structure where each node has at most two children.
A data type representing the logical values true and false.
A debugger marker that pauses execution at a selected line or condition.
Tools and rules that compile, test, package and prepare software artefacts.
An intermediate instruction format executed or translated by a virtual machine.
A faster temporary store for data or results likely to be reused.
A function passed to other code for later execution.
A definition describing the state and behaviour of related objects.
A function bundled with access to variables from its surrounding lexical scope.
A structured examination of code changes for correctness, clarity and maintainability.
The degree to which responsibilities within a module belong together.
A text-based interface for issuing commands and receiving program output.
Software that translates source code into another form, commonly machine code or an intermediate representation.
The organisation of multiple tasks so their progress can overlap.
A control structure that chooses which code executes based on a condition.
A named binding intended not to be reassigned after definition.
A special operation used to initialise a newly created object.
A computation that can suspend and resume while preserving its state.
The degree of dependency between software modules or components.
An organisation of data chosen to support particular operations efficiently.
A state where tasks wait indefinitely for resources held by one another.
A tool for pausing, inspecting and stepping through program execution.
External code or a component that another part of a program requires.
Supplying a component's dependencies from outside instead of constructing them internally.
An automated sequence for building, testing and releasing software changes.
A reusable approach to a recurring software design problem.
Determining and checking value types primarily while a program runs.
Keeping state and implementation behind a controlled public interface.
A type containing a fixed set of named values.
A runtime mechanism that schedules callbacks and asynchronous work from queues.
A structured signal that normal execution encountered an error or unusual condition.
A combination of values and operations that produces a result.
A reusable application structure that calls developer code within defined conventions.
A named, reusable unit of code that accepts inputs, performs a responsibility and may return a result.
A style emphasising functions, composition and controlled state changes.
Automatic detection and recovery of memory no longer reachable by a program.
Writing algorithms and structures that operate safely across multiple types.
A distributed version-control system for recording and coordinating changes.
A key-value data structure that uses hashing for efficient lookup.
A region used for dynamically allocated values whose lifetime is managed explicitly or automatically.
A value whose state cannot be changed after creation.
An object-oriented mechanism for deriving a type from an existing type.
Checking external data against required type, format, range and business rules.
A coding application combining editing, execution, navigation and debugging tools.
An automated check that multiple components work together correctly.
A defined contract describing operations a type or component must provide.
Software that executes source or intermediate instructions without a separate native compilation step.
Repeated execution over a sequence, collection or condition.
The runtime environment that executes Java bytecode across supported operating systems.
Converting JSON text into values a program can validate and use.
A compact unnamed function used where behaviour is needed as a value.
Reusable code that an application calls to perform related tasks.
A sequence of nodes connected through references rather than contiguous positions.
A control structure that repeats a block while a condition or sequence requires it.
The reservation of memory for values or data structures during execution.
Memory that remains allocated after a program no longer needs it.
A function associated with a class or object.
A controlled test substitute that records or simulates component interactions.
A named unit that groups related code and exposes selected responsibilities.
Executing multiple threads within a process to overlap or parallelise work.
A named scope that prevents identifier collisions and organises code.
A pointer or reference that does not currently identify a valid object.
A runtime value combining state with behaviour defined by its type or prototype.
A programming approach that organises data and behaviour into objects with defined responsibilities.
A symbol or keyword that performs an operation on one or more values.
A distributable or organisational collection of related modules and metadata.
The mechanism used to supply values or references to a function.
A value that stores the memory address of another value or object.
The ability to use a common interface with values that provide different implementations.
A collection that normally removes items in the order they were added.
Behaviour that depends incorrectly on the timing of concurrent operations.
A technique where a function solves a problem by calling itself on smaller cases.
Improving code structure without intentionally changing observable behaviour.
A compact pattern language for matching and transforming text.
A version-controlled location containing code, history and related project files.
An HTTP interface organised around resources, representations and standard methods.
The result a function provides to its caller.
The environment and supporting services in which a program executes.
How an algorithm's execution cost grows as its input size increases.
The region where a name is visible and can be referenced.
A version-number convention communicating breaking, feature and fix changes.
Converting a value into a format suitable for storage or transmission.
The high-level structure, boundaries and significant decisions of a software system.
Tools, libraries and documentation for building against a platform or service.
Human-readable instructions written in a programming language.
A last-in, first-out structure also used to manage function calls and local values.
The organisation and controlled updating of data that influences application behaviour.
Checking variable and expression types before or during compilation.
A sequence of characters representing text.
The grammatical rules determining how valid code is written.
A defined input, condition and expected result used to check behaviour.
Automatic deduction of expression or variable types from context.
Rules governing which values and operations are valid in a language.
A standard-form identifier used to name or locate a resource.
An automated check of a small, isolated behaviour or responsibility.
A named reference to a value that a program can read or update.
A system for recording, comparing and coordinating changes to code and related files.
A framework providing conventions and components for building web applications.
A persistent two-way communication channel established over a web connection.
Begin with variable, data type, expression, conditional, loop, function, array, object, error, test and version control.
Yes. Problem decomposition, data structures, control flow, functions, testing and debugging transfer strongly even when each language expresses them differently.
Python is approachable for general problem-solving, Java for structured object-oriented development, C for memory fundamentals and JavaScript for interactive web applications.
Use the glossary to clarify the language, then inspect the complete 30-hour syllabus and projects for your chosen technology.

Write clear Python programs, automations and API-powered tools.

Build maintainable Java applications with modern language practices.

Understand memory and build efficient, reliable C programs.

Build interactive, API-powered web applications with JavaScript.