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."
A hardware or software component that stores data so future requests for that data can be served faster.
"Web browsers use cache to store web pages, images, and other content to speed up the loading of websites."
The storage of certain elements to help with faster load times from repeat website visitors.
"Web browsers use cache to store web pages, images, and other content to speed up loading on future visits."
A programming language with a syntax similar to Ruby, but with a static type system and compiled output for efficiency.
"Crystal combines the ease of use of Ruby with the performance benefits of a compiled language, making it suitable for high-performance web applications."
A framework provided by Apple for managing the model layer objects in applications, typically used for data storage and persistence.
"Core Data simplifies the process of designing an app's data model and then interacting with it."
A formal proof management system, allowing the development of mathematical proofs, and especially the formal verification of proofs and programs.
"Coq is used in the verification of complex algorithms to ensure their correctness and reliability."
An adage stating that organizations design systems that mirror their own communication structure.
"Conway's Law suggests that the structure of a software system will reflect the social boundaries of the organization that produced it."
A system of distributed servers that deliver pages and other web content to a user, based on the geographic locations of the user, the origin of the webpage, and the content delivery server.
"Using a CDN can significantly speed up the loading time of your website for users around the world."
A software metric invented by Meilir Page-Jones to denote the degree to which different components of a system are dependent on each other.
"Reducing connascence in a system involves decreasing the dependencies between components to achieve higher modularity and easier maintenance."
A collaboration software program developed and published by Atlassian, designed to help teams collaborate and share knowledge efficiently.
"Our team uses Confluence to document project requirements, meeting notes, and collaborate on written content."
A term used in business to describe software systems that help sellers quote complex and configurable products.
"CPQ software automates the quotation process, reducing errors and ensuring that pricing is consistent and aligned with business rules."
A tool for dependency management in PHP, allowing users to declare the libraries their project depends on and it will manage (install/update) them for them.
"Composer simplifies the process of working with PHP packages, ensuring that the correct versions and dependencies are used in the project."
A type of microprocessor design that utilizes a wide set of instructions that can execute complex tasks in a single instruction cycle.
"CISC architectures are designed to minimize the number of instructions per program, sacrificing the simplicity of each instruction."
A type of challenge-response test used in computing to determine whether or not the user is human.
"CAPTCHAs are commonly used on websites to prevent bots from submitting forms automatically."
a list of publicly disclosed cybersecurity vulnerabilities and exposures.
"Regularly checking CVE databases helps developers stay informed about known security vulnerabilities in their software dependencies."
A high-level programming language designed in 1959 for business, finance, and administrative systems for companies and governments.
"COBOL is still in use today, particularly in legacy applications in financial and business sectors."
A command line interpreter application available in most Windows operating systems.
"Command Prompt is used to execute entered commands and perform advanced administrative functions."
A browser extension for Mozilla Firefox and Google Chrome that assists web developers and graphic designers with color related tasks.
"ColorZilla can be used to pick colors from web pages, generate color palettes, and copy CSS-ready color codes."
A programming language that transcompiles to JavaScript, offering more concise syntax and additional features not present in JavaScript.
"CoffeeScript aims to improve JavaScript's readability and brevity, making it easier to write and maintain."
An open-source software rapid development web framework, for use in building dynamic web sites with PHP.
"CodeIgniter is known for its small footprint, simplicity, and excellent documentation, making it ideal for developers who need a simple and elegant toolkit to create full-featured web applications."
A suite of software libraries used by developers to build software programs to run on macOS, iOS, watchOS, and tvOS.
"Cocoa provides a comprehensive set of Objective-C object classes and interfaces for application development on Apple platforms."
A modern, dynamic, and functional dialect of the Lisp programming language on the Java platform.
"Clojure is designed for concurrency and immutability, making it easy to write robust, multithreaded programs."
A compiler for the C, C++, and Objective-C programming languages, part of the LLVM project.
"Clang is known for its excellent diagnostics (error and warning messages) and is often used as a replacement for the GCC compiler."
A continuous integration and continuous delivery platform that automates the software development process from code to deployment.
"CircleCI enables developers to rapidly build, test, and deploy their applications with confidence."
A high-performance, low-latency queue library for Java, designed for scenarios where you need to record, analyze, and process transactions at high speed.
"Financial trading platforms often use Chronicle Queue to handle millions of transactions with minimal delay."
An asynchronous task queue/job queue based on distributed message passing, primarily used for real-time operation but supports scheduling as well.
"Celery is used for executing background tasks such as sending emails or processing large data files."
A distributed NoSQL database management system designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure.
"Cassandra is used by companies that need scalability and high availability without compromising performance."
a stylesheet language used for describing the presentation of a document written in HTML or XML.
"CSS is used to control the layout of web pages, allowing for design elements such as colors, fonts, and spacing."
A decentralized dependency manager for Objective-C and Swift Cocoa projects.
"Carthage is used to manage libraries for iOS and macOS projects, allowing developers to build their dependencies and include them in their Xcode projects."
The ritual inclusion of code or program structures that serve no real purpose, often because of a misunderstanding of how they work.
"Cargo cult programming can lead to unnecessary complexity and maintenance issues in software projects."
a type of information security competition where participants solve security-related challenges to find a specific piece of information called a 'flag'.
"CTF competitions are a fun and educational way for security enthusiasts and professionals to test their skills and learn new techniques."
Plain-text files used to better organize large amounts of data via comma-separated values.
"CSV files are often used for importing and exporting data between different applications, such as between a database and a spreadsheet program."
A pre-prepared library that is meant to be used as a foundation for web design or web development, providing common functionality and design patterns.
"Bootstrap is a popular CSS framework that includes responsive grid systems, components, and JavaScript plugins for rapid web development."
CSS is the code that tells the browser how to display the content of a web page for the end user by formatting fonts, colors, backgrounds, and other visual elements.
"Using CSS, developers can ensure that their website has a consistent look and feel across different web browsers."
In website development, this refers to the software and applications used to gather, analyze, and maintain information on customers, donors, and prospects.
"Salesforce is a popular CRM system that helps businesses manage their customer information efficiently."
CMake is a tool for automating the build process of software projects. It generates platform-specific build files from a single, unified configuration. CMake supports multiple compilers and environments, making it widely used in cross-platform development.
"I used CMake to configure and generate the build files for my C++ project, enabling seamless compilation across different platforms and compilers."
The program that you use to create and maintain your website’s content.
"WordPress is a popular CMS that enables users to easily publish and manage content online."
The terminal version of an application.
"Git commands are executed through the CLI, allowing developers to manage version control in their projects."
CI and CD stand for continuous integration and continuous delivery/continuous deployment. CI/CD bridges the gaps between development and operation activities and teams by enforcing automation in building, testing and deployment of applications.
"CI/CD pipelines automate the process of software delivery, making it easier to integrate changes into the production environment."
A geographically distributed network of servers whose goal is to provide high availability and performance of the service served, to users.
"Using a CDN can significantly speed up the loading times of your website for users around the world."
An extension of the C programming language with classes, virtual functions, and templates, supporting both procedural and object-oriented programming.
"C++ is used in high-performance applications, game development, and systems programming."
A multi-paradigm programming language encompassing strong typing, imperative, declarative, functional, generic, object-oriented (class-based), and component-oriented programming disciplines.
"C# is commonly used for developing desktop applications, web applications, and games using the .NET framework."