hmu.ai
Back to Library

Developer Dictionary

Software engineering and programming terms.

API

Application Programming Interface; a set of rules allowing different software applications to communicate.

Agile

A project management methodology emphasizing iterative development and collaboration.

AJAX

Asynchronous JavaScript and XML; a technique for updating web pages without reloading.

Algorithm

A step-by-step procedure or formula for solving a problem.

Array

A data structure consisting of a collection of elements identified by index or key.

Backend

The server-side of an application, handling database interactions and business logic.

Bug

An error, flaw, or fault in a computer program that causes it to produce an incorrect result.

Cache

A hardware or software component that stores data so that future requests for that data can be served faster.

CI/CD

Continuous Integration and Continuous Deployment; a method to frequently deliver apps to customers.

Class

A blueprint for creating objects in object-oriented programming.

Cloud Computing

The delivery of computing services over the internet ("the cloud").

Code Review

A software quality assurance activity in which one or several people check a program mainly by viewing and reading parts of its source code.

Commit

To save changes to a version control system.

Compiler

A program that translates computer code written in one programming language into another language.

Component

A modular, reusable building block in software development.

Container

A standard unit of software that packages up code and all its dependencies.

CSS

Cascading Style Sheets; a language used for describing the presentation of a document written in a markup language.

Database

A structured set of data held in a computer, especially one that is accessible in various ways.

Debugging

The process of finding and resolving bugs within computer programs.

Deployment

The process of making a software system available for use.

Design Pattern

A general, reusable solution to a commonly occurring problem within a given context in software design.

DevOps

A set of practices that combines software development and IT operations.

DNS

Domain Name System; the phonebook of the Internet that translates domain names to IP addresses.

Docker

A platform for developing, shipping, and running applications in containers.

DOM

Document Object Model; a programming interface for HTML and XML documents.

DRY

Don't Repeat Yourself; a principle of software development aimed at reducing repetition of software patterns.

Encryption

The process of encoding information so only authorized parties can access it.

Endpoint

One end of a communication channel, typically an API URL.

Framework

A platform for developing software applications providing a foundation on which software developers can build programs.

Frontend

The client-side of an application, what the user interacts with directly.

Full Stack

A developer who can work on both the frontend and backend of an application.

Git

A distributed version control system for tracking changes in source code.

GitHub

A provider of Internet hosting for software development and version control using Git.

GraphQL

A query language for APIs and a runtime for fulfilling those queries with your existing data.

HTML

HyperText Markup Language; the standard markup language for documents designed to be displayed in a web browser.

HTTP

Hypertext Transfer Protocol; the foundation of data communication for the World Wide Web.

IDE

Integrated Development Environment; a software application that provides comprehensive facilities to computer programmers.

Index

A data structure that improves the speed of data retrieval operations on a database table.

Inheritance

A mechanism where a new class is derived from an existing class.

Interface

A shared boundary across which two or more separate components of a computer system exchange information.

IP Address

Internet Protocol address; a numerical label assigned to each device connected to a computer network.

JSON

JavaScript Object Notation; a lightweight data-interchange format.

JWT

JSON Web Token; an open standard for securely transmitting information between parties as a JSON object.

Kanban

A method for managing knowledge work with an emphasis on just-in-time delivery.

Kernel

The core component of an operating system.

Kubernetes

An open-source system for automating deployment, scaling, and management of containerized applications.

Latency

The delay before a transfer of data begins following an instruction for its transfer.

Library

A collection of non-volatile resources used by computer programs, often for software development.

Linux

An open-source Unix-like operating system kernel.

Load Balancer

A device that acts as a reverse proxy and distributes network or application traffic across a number of servers.

Localhost

A hostname that means "this computer".

Loop

A sequence of instruction s that is continually repeated until a certain condition is reached.

Machine Learning

A subset of AI that focuses on building systems that learn from data.

Markup Language

A system for annotating a document in a way that is syntactically distinguishable from the text.

Microservices

An architectural style that structures an application as a collection of services.

Middleware

Software that provides services to software applications beyond those available from the operating system.

MVC

Model-View-Controller; a software design pattern commonly used for developing user interfaces.

Node.js

A JavaScript runtime built on Chrome's V8 JavaScript engine.

NoSQL

A database that provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases.

Null

A value representing no value or no object.

OAuth

Open Authorization; an open standard for access delegation.

Object-Oriented Programming

A programming paradigm based on the concept of "objects", which can contain data and code.

Open Source

Source code that is made freely available for possible modification and redistribution.

Operating System

System software that manages computer hardware, software resources, and provides common services for computer programs.

Package Manager

A collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs.

Parameter

A special kind of variable used in a subroutine to refer to one of the pieces of data provided as input to the subroutine.

Patch

A set of changes to a computer program or its supporting data designed to update, fix, or improve it.

Performance

How well a software system accomplishes its tasks.

Polymorphism

The provision of a single interface to entities of different types.

Port

A virtual point where network connections start and end.

Protocol

A set of rules governing the exchange or transmission of data between devices.

Pull Request

A method of submitting contributions to an open development project.

Python

An interpreted, high-level, general-purpose programming language.

Query

A request for information from a database.

React

A JavaScript library for building user interfaces.

Recursion

A method of solving a problem where the solution depends on solutions to smaller instances of the same problem.

Refactoring

The process of restructuring existing computer code without changing its external behavior.

Repository

A storage location for software packages.

REST

Representational State Transfer; a software architectural style that defines a set of constraints to be used for creating Web services.

Route

A rule for mapping a URL to a specific function or resource.

Runtime

The period of time when a program is running.

Scalability

The capability of a system, network, or process to handle a growing amount of work.

Schema

The organization or structure for a database.

Script

A program or sequence of instructions that is interpreted or carried out by another program.

Scrum

An agile framework for managing knowledge work.

SDK

Software Development Kit; a collection of software development tools in one installable package.

Server

A computer or computer program that manages access to a centralized resource or service in a network.

Serverless

A cloud computing execution model in which the cloud provider runs the server, and dynamically manages the allocation of machine resources.

Shell

A computer program which exposes an operating system's services to a human user or other program.

SPA

Single Page Application; a web application or website that interacts with the web browser by dynamically rewriting the current web page with new data from the web server.

SQL

Structured Query Language; a domain-specific language used in programming and designed for managing data held in a relational database management system.

SSH

Secure Shell; a cryptographic network protocol for operating network services securely over an unsecured network.

Stack

A combination of software products and programming languages used to create a web or mobile application.

State

The condition of a system at a specific time.

String

A sequence of characters, either as a literal constant or as some kind of variable.

Syntax

The set of rules that defines the combinations of symbols that are considered to be a correctly structured document or fragment in that language.

TDD

Test-Driven Development; a software development process relying on software requirements being converted to test cases before software is fully developed.

Terminal

An electronic or electromechanical hardware device that represents the interface to a computer system.

TypeScript

A strict syntactical superset of JavaScript and adds optional static typing to the language.

UI

User Interface; the space where interactions between humans and machines occur.

Unit Testing

A software testing method by which individual units of source code are tested to determine whether they are fit for use.

UX

User Experience; a person's emotions and attitudes about using a particular product, system or service.

Variable

A storage location paired with an associated symbolic name, which contains some known or unknown quantity of information referred to as a value.

Version Control

The management of changes to documents, computer programs, large web sites, and other collections of information.

Virtual Machine

An emulation of a computer system.

Webhook

A method of augmenting or altering the behavior of a web page or web application with custom callbacks.

XML

Extensible Markup Language; a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable.

YAML

YAML Ain't Markup Language; a human-readable data serialization standard.