A software metric used to indicate the complexity of a program, measuring the number of linearly independent paths through a program's source code.
"High cyclomatic complexity in a function suggests it might be too complex and could benefit from being broken down into simpler functions."
Cyber security is the practice of defending computers, servers, mobile devices, electronic systems, networks, and data from malicious attacks.
"Implementing strong passwords and encryption are basic cyber security measures to protect data from unauthorized access."
A database object used to retrieve data from a result set one row at a time.
"Cursors are useful in situations where the dataset returned from a query is too large to be processed all at once."
The technique of translating the evaluation of a function that takes multiple arguments into evaluating a sequence of functions, each with a single argument.
"Currying in functional programming allows for functions to be partially applied, creating new functions with fewer parameters."
Redundant, old, or improperly written code, especially in software or on a webpage, that is unnecessarily complicated or inefficient.
"Cleaning up the cruft in the codebase can help improve the application's performance and maintainability."
Software that is designed to work on multiple computing platforms or operating systems.
"Cross-platform development tools enable developers to create applications that run on Windows, macOS, and Linux with a single codebase."
A scheduled task in Unix-based systems that runs at specified times or intervals, set up using the cron software utility.
"A cron job can be configured to run a script every day at midnight to process log files."
A time-based job scheduler in Unix-like computer operating systems used to automatically execute scripts or commands at specified times, dates, or intervals.
"We use cron jobs to schedule nightly backups and regular maintenance tasks on our servers."
A command-line interface tool that generates a new React project with a pre-configured webpack build for development.
"create-react-app allows developers to quickly set up a new React project without configuring build tools."
The four basic functions of persistent storage in database applications.
"CRUD operations are fundamental to managing data in web applications, allowing users to create, retrieve, update, and delete records."
In programming, the ability to use a derived class where a base class is expected, typically relating to the return type of methods in class hierarchies.
"Covariance allows for more specific return types in method overrides in subclasses, enhancing flexibility and reusability of code."
The degree of interdependence between software modules.
"Low coupling is often a design goal since it reduces the risk that changes in one module will require changes in another."
The degree of direct knowledge that one element has of another, in software design referring to how closely connected different modules or components are.
"Low coupling is desirable in software design as it reduces dependencies between components, making the system easier to modify and maintain."
A generalization of subroutines for non-preemptive multitasking, by allowing execution to be suspended and resumed.
"Coroutines are used in programming to simplify asynchronous programming by making asynchronous operations look more like sequential ones."
An early form of computer memory that used magnetic rings to store data and was prevalent in the 1950s and 1960s.
"Core memory was one of the first reliable and efficient forms of random-access memory (RAM) for computers."
This is the data sent by an Internet server to a browser. Each time the browser accesses the same server, it sends the data back as a means of tracking how (and how often) it accesses the server.
"Websites use cookies to remember user preferences and login status across sessions."
Small pieces of data stored on the user's computer by the web browser while browsing a website.
"Cookies are used to remember information about the user, such as login or language preferences, to improve the browsing experience."
A software design paradigm that seeks to decrease the number of decisions that developers need to make, gaining simplicity but not necessarily losing flexibility.
"Convention over configuration means that the software's default behavior is what you want most of the time, so you only need to configure exceptions to the default."
The order in which individual statements, instructions, or function calls of an imperative program are executed.
"Control flow structures such as if statements, loops, and function calls control the execution order of statements in a program."
In category theory and functional programming, a functor that reverses the direction of morphisms between categories in a way that is contravariant.
"Contravariant functors are used in programming to model transformations that reverse the direction of effects, such as input operations."
In programming, a type relationship where a type can be used in place of another type if it is a supertype of that type, opposite of covariance.
"Contravariance is often used in the context of function argument types, where a function can accept arguments of a more generic type than specified."
A practice in software engineering where all developers merge their changes back to the main branch as often as possible, ideally several times a day.
"Continuous integration helps to catch and fix integration errors quickly, improving software quality and reducing time to market."
A software engineering approach in which software functionalities are delivered frequently through automated deployments.
"Continuous deployment automates the release of a product to ensure that any version of the product can potentially be deployed to production at any time."
A software development practice where code changes are automatically built, tested, and prepared for a release to production.
"Continuous delivery ensures that we can release new changes to our customers quickly and safely."
A software application or set of related programs that are used to create and manage digital content.
"WordPress is a popular CMS that enables users to create and manage websites without needing to code from scratch."
A standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another.
"Docker containers wrap a piece of software in a complete filesystem that contains everything needed to run: code, runtime, system tools, system libraries."
A special type of subroutine called to create an object. It prepares the new object for use, often accepting arguments that the constructor uses to set required member variables.
"In Java, a constructor has the same name as the class and is used to initialize objects of that class."
An operation whose duration is not dependent on the size of the dataset it operates on.
"Accessing any element of an array by index is a constant time operation, as it takes the same amount of time regardless of the array's size."
A value that cannot be altered by the program during normal execution, i.e., the value is constant.
"In many programming languages, you declare a constant using the 'const' keyword, indicating that its value will not change."
A constant is a value that will never change during the running time of the program.
"In Python, you can define a constant like `PI = 3.14` to represent the mathematical constant pi."
A text-based user interface used for entering commands directly to a computer's operating system or to a particular application.
"Developers use the console to execute commands, debug programs, and monitor system resources."
Statements in programming that perform different actions depending on whether a specified boolean condition evaluates to true or false.
"Using conditionals allows developers to control the flow of their programs with if, else if, and else statements."
A feature of programming languages, where a block of one or more statements will execute if a specified condition is true.
"Conditional execution is commonly used in programming to make decisions, using if-else statements to execute different code blocks based on certain conditions."
The ability of different parts or units of a program, algorithm, or problem to be executed out-of-order or in partial order, without affecting the final outcome.
"Concurrency in programming allows for the execution of multiple processes simultaneously, improving performance on multi-core processors."
A language designed to communicate instructions to a machine, particularly a computer.
"Computer languages include programming languages like Python and Java, as well as markup languages like HTML."
A computing device with software or firmware designed to provide a specific computing resource.
"A network firewall appliance is dedicated to protecting a computer network from unauthorized access."
The process of encoding information using fewer bits than the original representation to reduce the size of data for storage, handling, and transmitting content.
"Compression algorithms like ZIP are used to reduce the file size of documents, making them easier to share over the internet."
In software engineering, a modular and replaceable part of a system that encapsulates its contents and whose manifestation is replaceable within its environment.
"React components allow developers to split the UI into independent, reusable pieces to handle each piece separately."
Independent and reusable bits of code that work in isolation and return HTML via a render function.
"React components let you split the UI into independent, reusable pieces to handle each part of the interface separately."
A program that translates computer code written in one programming language into another language.
"A Java compiler converts source code written in Java into bytecode that can run on any machine with a Java Virtual Machine (JVM)."
A computer program that translates computer code written in one programming language (the source language) into another language (the target language).
"The compiler translates the high-level source code into machine code that the computer can execute."
A programming language whose implementations are typically compilers (translators that generate machine code from source code), and not interpreters (step-by-step executors of source code, where no pre-runtime translation takes place).
"C and C++ are examples of compiled languages, where the source code is compiled into executable binaries before running on a computer."
Operators that compare two values and return a boolean true or false depending on whether the comparison is true.
"In many programming languages, comparison operators include ==, !=, >, <, >=, and <=."
An operation which groups a set of changes behind a name and a number, making these changes part of the head revision of the repository.
"A commit in Git includes changes to files that have been staged and includes a message describing what has been modified."
An operation in git that captures a snapshot of the project's currently staged changes.
"After adding the new feature, I made a commit to the repository with a message describing the changes."
In computer programming, a comment is a programmer-readable explanation or annotation in the source code of a computer program.
"Comments are used to explain what a specific block of code does, making it easier for others to understand the program."
A principle that commands (methods that change state) should be separate from queries (methods that return data) in object-oriented programming.
"Adhering to CQS can make a system more understandable and maintainable by clearly distinguishing actions that alter state from those that retrieve information."
A pattern in software architecture where the model for reading data is separated from the model for writing data.
"CQRS can improve performance, scalability, and security by optimizing read and write operations separately."
A behavioral design pattern that turns a request into a stand-alone object that contains all information about the request.
"The command pattern allows you to parameterize objects with operations, delay or queue a request's execution, and support undoable operations."
A text-based interface used to interact with software and operating systems by typing commands into a terminal or console.
"CLI tools are favored by developers for their speed and efficiency compared to graphical interfaces."
An instruction given by a user telling a computer to do something, such as run a single program or a group of linked programs.
"Commands can be executed directly by typing them into the terminal or command line interface."
In computer science, particularly in hashing, a collision occurs when two different inputs produce the same output.
"A good hashing algorithm minimizes the chance of collisions to ensure that data is stored and retrieved efficiently."
A backup location for an organization that provides space and infrastructure but does not have servers, storage systems, or other technology until needed for recovery.
"In the event of a disaster, the company can move operations to the cold site, although it will take time to set up and become operational."
A measure of how well the lines of source code within a module work together.
"High cohesion within a module means that its functions are closely related in functionality, making it easier to maintain."
The degree to which the elements of a module belong together, aiming for high cohesion within modules in software design.
"High cohesion within a class means that its responsibilities are well-aligned and it does not try to do too much."
The process of writing instructions for computers using programming languages.
"Coding is a fundamental skill in the digital age, enabling the creation of software, websites, and applications."
Any characteristic in the source code of a program that possibly indicates a deeper problem.
"Detecting code smells early can prevent larger issues down the line during the software development process."
The gradual deterioration of software over time due to neglect or lack of updates, making it less efficient or unusable.
"Without regular maintenance, code rot can make a software project difficult to update or fix."
The systematic examination of computer source code intended to find mistakes overlooked in the initial development phase, improving both the overall quality of software and the developers' skills.
"Regular code reviews help ensure that the team adheres to coding standards and best practices."
A derogatory term for a programmer who writes code not by design but by rote; often used to describe tedious or repetitive programming tasks.
"Being called a code monkey implies that the work involves little creative thought or decision-making."
Technical debt that arises when code that is easy to implement in the short run is used instead of applying the best overall solution.
"Accumulating too much code debt can make future changes and maintenance difficult and time-consuming."
The presence of unnecessary or redundant code in a software project, which can lead to inefficiency and increased complexity.
"Refactoring the software can help reduce code bloat and improve performance."
The instructions written by a programmer in a programming language to be executed by a computer.
"Good code not only functions correctly but is also easy to read, maintain, and extend."
The on-demand availability of computer system resources, especially data storage and computing power, without direct active management by the user.
"Cloud computing services like AWS and Azure allow businesses to scale infrastructure according to demand."
The use of various services, such as software development platforms, servers, storage, and software, over the Internet, often referred to as 'the cloud'.
"Cloud computing allows businesses to scale and adapt quickly without the need for physical hardware upgrades."
A feature of some programming languages where a function retains access to the scope in which it was created, even after that scope has exited.
"Closures in JavaScript are used to create private variables and methods."
A persistent scope which holds on to local variables even after the code execution has moved out of that block.
"Closures in JavaScript allow inner functions to access variables from an enclosing scope."
Software that is not freely available for modification or distribution, with its source code kept secret by the copyright holder.
"Most commercial software is closed-source, requiring users to purchase a license to use it."
An expression that can be evaluated in a finite number of operations, often used in mathematics and computing to solve problems directly.
"Finding a closed-form expression for a series allows for direct computation of its sum without iterative calculations."
A term that refers to the practice of copying a repository or codebase and immediately running it without the need for complex setup procedures.
"The project's documentation provides a 'clone and go' approach, allowing new developers to get started quickly."
To overwrite or corrupt data accidentally or maliciously, often resulting in a loss of data or functionality.
"A poorly written program might clobber memory by writing data outside its allocated space, leading to crashes."
A distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients.
"Most web applications follow the client-server model, where the web server serves web pages and the client's browser displays them."
A piece of computer hardware or software that accesses a service made available by a server.
"The web browser acts as a client when it connects to a web server and requests web pages."
A piece of computer hardware or software that accesses a service made available by a server.
"In a web application, the user's browser acts as the client that requests web pages from the server."
In object-oriented programming, a blueprint for creating objects, providing initial values for state (member variables) and implementations of behavior (member functions or methods).
"Each object is an instance of a class, which defines its properties and methods."
A defined structure to create an object in an object-oriented programming language.
"In Java, you can define a 'Car' class with properties like color and make, and methods like drive and brake."
The act of obtaining a version of source code from a repository in version control systems.
"To start working on the latest code, you need to checkout the master branch from the repository."
A record of all notable changes made to a project, often including bug fixes, new features, and improvements.
"Before updating the software, it's a good practice to review the changelog to understand the impact of the new version."
A systematic approach to managing all changes made to a product or system, ensuring that no unnecessary changes are made, all changes are documented, and that services are not unnecessarily disrupted.
"Effective change control management is essential for minimizing the impact of changes in IT projects and ensuring that only approved modifications are implemented."
A branch of mathematics that deals with the abstract properties of mathematical structures and the relationships between them.
"Category theory has found applications in computer science, especially in the field of functional programming and type systems."
In programming, particularly in the context of functional programming and category theory, a category represents a collection of objects and morphisms between them.
"Categories in functional programming can be used to abstract and generalize different programming patterns and data types."
The act of converting a value from one data type to another in programming.
"In many programming languages, you can cast an integer to a float to perform floating-point division instead of integer division."
An HTML element used to draw graphics on a web page via scripting, usually JavaScript.
"The HTML canvas element is used for rendering graphs, game graphics, or other visual images on the fly."
The practice of writing phrases without spaces or punctuation, indicating the separation of words with a single capitalized letter.
"In camelCase, each word after the first starts with a capital letter, as in 'camelCaseExample'."
The process of executing a function in a programming language by specifying its name and providing any required parameters.
"When you call a function, the program execution moves to the body of that function, performs the specified tasks, and then returns."
A situation where callbacks are nested within other callbacks several levels deep, making the code hard to understand and maintain.
"Callback hell can be avoided in JavaScript by using Promises or async/await for asynchronous flow control."
A function passed into another function as an argument, which is then invoked inside the outer function to complete some kind of routine or action.
"In JavaScript, callbacks are often used for asynchronous operations, such as loading data from a server."
A function that is passed as an argument to another and is expected to execute at a given time.
"In JavaScript, callbacks are often used for asynchronous operations like reading files or fetching data from an API."
A stack data structure that stores information about the active subroutines of a computer program.
"The call stack is used to trace the execution of a program, showing which functions are being called."