A type system in programming languages where the type of a variable is checked at runtime, rather than at compile time.
"Languages like Python and Ruby use dynamic typing, allowing variables to change type on the fly."
A method for solving complex problems by breaking them down into simpler subproblems, solving each subproblem just once, and storing their solutions.
"Dynamic programming is used in algorithms that solve optimization problems, such as finding the shortest path in a graph."
A placeholder or substitute for something else, often used in programming to represent a value or object that is not yet defined or to simulate behavior.
"Dummy variables are often used in unit testing to simulate real objects or data."
A style of dynamic typing in programming where an object's suitability is determined by the presence of certain methods and properties, rather than the actual type of the object.
"In duck typing, if it looks like a duck and quacks like a duck, it can be treated as a duck."
A playful term for dynamic reprogramming, allowing for the modification or extension of a programming language or environment at runtime.
"Duck punching in JavaScript can be used to add or modify methods of built-in objects or classes."
A twist on the phrase 'eat your own dog food', it means using the products that one develops to ensure they meet quality standards and user needs.
"By drinking our own champagne, we demonstrate confidence in our products and gain firsthand insight into the user experience."
The act of casting a reference of a base class to one of its derived classes.
"In object-oriented programming, downcasting is often used to access specific methods of a derived class that are not present in the base class."
A small hardware device that connects to another device to provide it with additional functionality or enable a specific software protection mechanism.
"Some software applications require a USB dongle to be connected to the computer as a form of copy protection."
A computer language specialized to a particular application domain, designed to express the concepts and operations that are specific to that domain.
"SQL is a domain-specific language used for managing and querying relational databases."
an approach to software development that centers the development on the core domain logic and domain experts' knowledge.
"DDD emphasizes collaboration between technical and domain experts to create software that reflects complex business realities."
The address for a website as entered into the browser.
"Google's domain name is google.com."
The practice of an organization using its own product to test and promote the product.
"By dogfooding, we can identify and fix issues before they affect our customers."
Written text or illustrations that accompany software and either explain how the software operates or how to use it.
"Good documentation is crucial for explaining complex software systems and aiding developers in using and contributing to the software."
An algorithm design paradigm based on multi-branched recursion, where a problem is divided into smaller sub-problems, solved independently, and combined to get the solution to the original problem.
"The quicksort algorithm uses the divide and conquer approach to sort elements by dividing the list into two smaller sub-lists, sorting them independently, and then merging them."
A derogatory term used to describe web pages with a poor semantic structure, often heavily relying on <div> elements for layout instead of more appropriate HTML5 semantic elements.
"Refactoring div soup into a well-structured HTML document using semantic tags improves accessibility and SEO."
A protocol that defines a client-server communication protocol for querying and updating a server-side database and for subscribing to changes in that database.
"DDP is commonly used in real-time web applications to synchronize data between clients and the server without requiring page refreshes."
The area of security planning that deals with protecting an organization from the effects of significant negative events.
"Disaster recovery plans ensure that an organization can quickly resume mission-critical functions following a disaster."
A statement in a computer program that gives direction to the compiler or interpreter about the processing of the program itself.
"In Angular, directives are used to attach behavior to elements in the DOM."
A graph in which the edges have a direction, indicating a one-way relationship between the nodes they connect.
"Directed graphs are used to represent relationships where direction matters, such as in a flowchart or a hierarchy."
Pertaining to data and technology that uses discrete (discontinuous) values, often represented by binary numbers 0 and 1, to encode information.
"Digital devices, like computers and smartphones, process digital signals to perform a wide range of tasks."
a process that compares two versions of something to identify the differences between them
"In React, the diffing algorithm is a key part of the reconciliation process that updates the DOM (Document Object Model) efficiently"
in the context of computing and logic, it can refer to Disjunctive Normal Form, a standardization of a logical formula consisting of a disjunction of conjunctions.
"Converting a logical statement into DNF can make it easier to evaluate or implement in computer algorithms."
A data structure that stores key-value pairs, allowing for fast retrieval of data based on its key.
"Dictionaries in Python are used to store data values like a map, which unlike other Data Types that hold only single value as an element."
In software development, a metaphorical term for a workaround or patch designed to catch and hide errors rather than solving the underlying problem.
"Using a diaper to handle exceptions may prevent the application from crashing, but it doesn't address the root cause of the error."
A problem that arises in object-oriented design when using multiple inheritance, where two classes inherit from the same base class and are themselves inherited by another class, potentially causing ambiguity.
"Languages like C++ address the diamond of death problem through virtual inheritance, which ensures the base class is only included once."
A term used to describe a project, particularly in software development, that remains in development for an especially long time, either moving between different tasks or constantly being reworked and refined.
"The software project was stuck in development hell for years, with new features and changes constantly delaying its release."
The overall experience developers have when working with a specific tool, technology, or platform, encompassing ease of use, documentation, and community support.
"Improving DX is crucial for open-source projects to attract and retain contributors by making the development process as smooth and enjoyable as possible."
a person or company who builds something such as an idea, a design, or a product
"Bob the Builder decided to stop pursuing a developer position because the job market was atrociously competitive."
A convenient way of extracting multiple values from data stored in objects and arrays.
"Destructuring allows developers to create new variables easily from an object's properties or an array's elements in JavaScript."
In software engineering, a software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design.
"The Singleton pattern ensures that a class has only one instance and provides a global point of access to it."
A general repeatable solution to a commonly occurring problem in software design.
"The Singleton pattern ensures a class has only one instance and provides a global point of access to it."
The practice of designing software in a way that facilitates easy maintenance and updates over time.
"Designing for maintainability involves writing clear, well-documented code and adhering to solid design principles."
Accessing the data location pointed to by a pointer that has not been initialized to a valid address, which often leads to a runtime error or undefined behavior.
"Dereferencing a null pointer is a common error in programming that can cause a segmentation fault or crash."
The operation of accessing the data referred to by a pointer or reference.
"Dereferencing a null pointer in C or C++ results in undefined behavior, often leading to a program crash."
Refers to software features that are superseded and should be avoided, typically because they will be removed in future versions.
"Using deprecated functions can lead to warnings or errors in future software versions, so it's best to use the recommended alternatives."
Deployment is a key step in the web development process where a website or an app is made live on the internet.
"After testing, the application is deployed to a production environment where it can be accessed by users."
The process of making a software application available for use, typically by transferring it to a production environment.
"After testing, the application is deployed to the server where it can be accessed by users."
The process of recognizing, tracking, and controlling dependencies in software development projects, including libraries and packages the project depends on.
"Tools like Maven and Gradle help automate dependency management, ensuring that all necessary components are included and up-to-date."
A technique whereby one object supplies the dependencies of another object, a form of inversion of control.
"Dependency injection makes classes less dependent on each other by decoupling them, making the system more modular and easier to test."
A situation that occurs when a software application requires specific versions of libraries or software components that are incompatible with other required versions, leading to complex dependencies that are difficult to resolve.
"Dependency hell can be mitigated by using virtual environments and careful management of package versions."
A relationship between two pieces of software, where one requires the other to function.
"Managing dependencies is an important part of software development, ensuring that all necessary libraries are available for a project."
The process of attempting to optimize the read performance of a database by adding redundant data or by grouping data.
"Denormalization may be used in a database to improve performance for certain queries at the expense of additional storage and potential consistency issues."
The difference or change between two values or states in computing, often used in the context of version control to describe changes between versions.
"The version control system displays a delta, highlighting the differences between the current and previous versions of the file."
The act of one object forwarding operations to another object to handle.
"Delegation is a key technique in object-oriented programming, allowing for more flexible and reusable code."
An object that represents a method, allowing methods to be passed as parameters.
"Delegates in C# are used to implement event handling and callback methods."
In programming, an operation whose execution is postponed until a later point in time, often until a particular condition is met.
"Deferred execution is common in asynchronous programming patterns, allowing tasks to be set up without blocking the main execution flow."
A strategy for achieving information assurance in which multiple layers of security controls (defenses) are placed throughout an information technology (IT) system.
"Defense in depth involves the use of physical, technical, and administrative controls to protect against threats from various angles."
A broader family of machine learning methods based on artificial neural networks with representation learning.
"Deep learning has been used to achieve state-of-the-art results in fields like computer vision and natural language processing."
The process of reducing dependencies between components of a system to increase modularity and flexibility.
"Decoupling allows for individual components to be developed, modified, and tested without affecting the rest of the system."
The process of breaking down a complex problem or system into smaller, more manageable parts.
"Decomposition is a key strategy in software development, allowing developers to tackle complex functionality by dividing it into simpler sub-problems."
The process of converting executable (binary) code into a higher-level programming language that is understandable by humans.
"Decompilation is often used in software reverse engineering to analyze proprietary code without access to the source."
A programming paradigm that expresses the logic of a computation without describing its control flow.
"Declarative programming focuses on what the program should accomplish rather than detailing the steps to achieve it, as seen in languages like SQL."
A statement in computer programming that specifies the name and type of a variable or other identifier.
"Declarations are used to inform the compiler about the properties of an identifier, such as its type, before its first use."
A base-10 numeral system used in mathematics and in most modern cultures for expressing integer and non-integer numbers.
"In programming, decimal types are used to store numbers with fractions accurately, such as financial calculations."
The process of finding and resolving bugs (defects or problems that prevent correct operation) within computer programs, software, or systems.
"Debugging tools and techniques are essential for identifying and fixing errors in code."
The process of finding and resolving defects or problems within a computer program that prevent correct operation.
"Debugging is a critical part of the software development process, involving the identification, isolation, and fixing of bugs."
A tool used to test and debug programs, allowing the programmer to execute and inspect the code in a controlled environment.
"Debuggers help identify and correct errors in the code by allowing step-by-step execution and examination of variable values."
A situation in computer science where two or more processes are unable to proceed because each is waiting for one of the others to do something.
"A deadlock can occur in a system if two processes hold resources the other needs, with neither able to proceed without access to the resource held by the other."
A data structure that improves the speed of data retrieval operations on a database table at the cost of additional writes and storage space to maintain the index data structure.
"Creating a database index on a column can significantly speed up searches on that column but may slow down insert and update operations."
A central location in which data is stored and managed.
"MySQL and MongoDB are examples of databases used to store, retrieve, and manage data in web applications."
An organized collection of data, generally stored and accessed electronically from a computer system.
"Relational databases, like MySQL, organize data into tables which can then be queried using SQL."
A programming paradigm in which the program statements describe the data to be matched and the processing required rather than defining a sequence of steps to be taken.
"Data-driven programming allows applications to be more dynamic, as the behavior can change based on the data."
A data warehouse is a large collection of business data used to help an organization make decisions.
"Data warehouses integrate data from multiple sources, making it easier for businesses to perform analysis and generate reports."
An object that carries data between processes in order to reduce the number of method calls.
"DTOs are often used in the context of remote interfaces, web services, and when needing to batch multiple data elements together."
A particular way of organizing data in a computer so that it can be used effectively.
"Common data structures include arrays, linked lists, stacks, queues, trees, and graphs, each with its own strengths and use cases."
A data organization, management, and storage format that enables efficient access and modification.
"Common data structures include arrays, linked lists, stacks, queues, trees, and graphs."
A repository for persistently storing and managing collections of data.
"Data stores can be databases, file systems, or any other form of storage mechanism that allows for the retrieval and manipulation of data."
A multidisciplinary field that uses scientific methods, processes, algorithms, and systems to extract knowledge and insights from structured and unstructured data.
"Data science combines aspects of statistics, computer science, and domain expertise to analyze and interpret complex data."
A condition in concurrent programming where two or more threads access shared data at the same time, and at least one thread modifies the data, leading to unpredictable results.
"Avoiding data races is crucial for the correctness of multithreaded applications, requiring careful synchronization of access to shared resources."
The collection and manipulation of items of data to produce meaningful information.
"Data processing is a crucial step in the analysis of data, involving validation, sorting, summarization, and aggregation."
A data lake is a system or storage repository that holds a vast amount of raw data in its native format until it is needed.
"Data lakes allow organizations to store all their data, structured and unstructured, in a centralized repository for big data analytics."
A centralized repository of information about data such as meaning, relationships to other data, origin, usage, and format.
"A data dictionary provides a detailed account and description of the datasets available in a database, making it easier for developers and analysts to understand the data they're working with."
A class primarily used to store and retrieve data, often with little or no business logic, typically containing multiple fields and corresponding getters and setters.
"In Kotlin, you can define a data class to automatically generate utility functions like equals and hashCode for storing data."
A metaphorical expression with no standard definition in programming, potentially referring to an unstable or precarious interaction between system components.
"The term 'dance of death' might be used to describe a scenario where two or more processes are locked in a cycle of dependency, preventing each other from proceeding."
A background process that handles requests for services such as print spooling and file transfers, and is often started at the time the system boots.
"A web server daemon runs continuously on a server, waiting to process incoming requests from web clients."
A way of manually implementing loop unrolling by interleaving two syntactic constructs of C: a do-while loop and a switch statement.
"Duff's device is a trick used to increase the efficiency of loops, particularly in the context of optimizing code for speed."
The system by which internet domain names and addresses are tracked and regulated.
"DNS translates human-friendly domain names like 'example.com' into IP addresses that computers use to identify each other on the network."
An open-source project for building, deploying, and maintaining open source project websites easily.
"Docusaurus helps streamline the documentation process for projects, allowing developers to focus on writing markdown files and customizing the site's layout."
An open-source project that automates the deployment of applications inside software containers, providing an additional layer of abstraction and automation of operating-system-level virtualization on Linux.
"Docker containers package an application and its dependencies into a virtual container that can run on any Linux server, ensuring consistency across environments."
A high-level Python Web framework that encourages rapid development and clean, pragmatic design.
"Django is known for its 'batteries included' philosophy, offering a wide range of features out of the box for building web applications."
It is a way to record and share digital data across multiple participants in a network.
"Blockchain is a well-known type of DLT that uses a digital chain of blocks to store and transmit data. Each block is cryptographically linked to the previous block, making it impossible to change the ledger"
a type of cyber attack where multiple compromised computer systems attack a target, such as a server, website, or other network resource, causing a denial of service for users of the targeted resource.
"A DDoS attack can overwhelm the targeted server with requests, making the website or service unavailable to legitimate users."
refers to several closely related operating systems that dominated the IBM PC compatible market between 1981 and 1995.
"MS-DOS was one of the most widely used operating systems in the personal computing era before the rise of graphical user interfaces."
a finite directed graph with no directed cycles, meaning that it consists of vertices and edges, with each edge directed from one vertex to another, such that there is no way to start at any vertex v and follow a consistently-directed sequence of edges that eventually loops back to v again.
"DAGs are used in computer science to model processes with dependencies, such as task scheduling or data processing pipelines."
An algorithm for finding the shortest paths between nodes in a graph, which may represent, for example, road networks.
"Dijkstra's algorithm can be used in mapping services to find the shortest driving route between two locations."
DietPi is an extremely lightweight Debian OS, highly optimised for minimal CPU and RAM resource usage.
"I use DietPi as the operating system for my new single board computer."
An open-source, crowdsourced dictionary website for developers to look up technical terms, programming jargon, and more.
"DevTerms is my go-to website for learning new developer terminology!"
A system of working that helps to keep development, IT operations, and quality assurance departments on the same page to make for better end-products and collaborations.
"DevOps practices include continuous integration and continuous deployment to automate the software release process."
A set of practices that combines software development (Dev) and IT operations (Ops) to shorten the systems development life cycle and provide continuous delivery with high software quality.
"DevOps practices include automated testing, continuous integration, and infrastructure as code to improve collaboration and efficiency."
An integrated development environment (IDE) for rapid application development of desktop, mobile, web, and console software, developed by Embarcadero Technologies.
"Delphi uses the Object Pascal language and provides a visual design environment for developing applications quickly."
Debian is a free and open-source operating system known for its stability and extensive package management system, widely used in server environments and as a base for other Linux distributions.
"Debian is made of free and open source software and will always be 100% free."
A client-optimized language for fast apps on any platform, developed by Google, used for building mobile, desktop, backend, and web applications.
"Dart is the programming language behind Flutter, Google's UI toolkit for building natively compiled applications for mobile, web, and desktop from a single codebase."
DaisyUI is a collection of components and utilities for the Tailwind CSS framework. It extends it by providing additional UI components and styles for faster and easier web development.
"I incorporated DaisyUI into my web project to speed up the development process and enhance the user interface."
A programming language for a defined scope, opposite to ''general purpose languages''.\n\nCrafted according to the needing of the final user of the language, often to reduce the syntax barrier raised by ''traditional'' general purpose languages.\n\nCan be used both by technical individuals (programmers, like HTML or make) or by non-technical individuals (e.g. secretary or accountant).
"I defined a grammar and implemented a parser for the DSL my secretary will use to register the bills:\n\nelectric energy:\n month january\n cost 100€\nwater:\n range january-march\n cost 77€"
Used to describe concise code that is not long and/or repetitive.
"The DRY principle encourages the reduction of duplication in code by abstracting common functionality into a single place."
Django REST framework is a powerful and flexible toolkit for building Web APIs.
"Implementing user authentication with Django REST Framework simplified our API development process significantly."
The Document Object Model (DOM) is a programming API for HTML and XML documents that defines the logical structure of documents and the way a document is accessed and manipulated.
"With the DOM, programmers can build documents, navigate their structure, and add, modify, or delete elements and content."
A protocol that provides new devices on a network the information they need to communicate with other devices.
"DHCP automatically assigns IP addresses to devices, making it easier for them to join the network without manual configuration."