A glossary of terms and definitions for easy reference.

A  B  C  D  E  F  H  I  J  K  L  M  N  O  P  Q  R  S  T  U  V  W  X 

3ld

Third-Level Domain is the part of a domain name that comes to the left of the ccSLD. It is the SLD in a non-ccTLD namespace. For example, in the domain name “www.example.co.uk”, “example” is the 3LD.

Access-Modifier

Access modifiers provide a way to control the scope of class-members, determining where a member can be accessed from. Common access modifiers are public (accessible from anywhere), private (accessible only within the class), protected (accessible within the class and its subclasses), and default (accessible within the package). Access modifiers help in achieving data-hiding.

Access-Token

Access-Token is an alphanumeric string that serves as a temporary substitute for a user’s credentials, granting permission to access resources or perform actions within an application/service. Primarily used in OAuth and Authentication.

Ajax

Asynchronous JavaScript and XML is a set of tools to make asynchronous ajax-requests behind the scenes without blocking other events/interactions on the page while waiting for a response. Note: AJAX is a misleading name, while it might use XML to transport data, it is equally/more common to transport data as plain text or JSON text.

Ajax-Request

An AJAX Request is a request made by a website after the initial page load using AJAX to fetch some data from a server without reloading the entire page or loading a new page.

Algorithm

An algorithm is set of well-defined instructions/steps that are executed in an order to perform a task or solve a problem. They are the building blocks of Computer-Science which are used to perform calculations, data processing, and automated reasoning tasks.

Analog

Analog is a continuous representation of data that can take on any value within a range and changes continuously over time. Examples include electrical signals, light pulses, radio waves, etc. It is the opposite of digital.

Api

Application Programming Interface is an interface i.e. a shared-boundary/layer between two software components that provides a means for them to communicate or interact with each other for accessing/exchanging information. It defines how this access or interaction should occur between the two.

Api-Endpoint

API Endpoint is a specific URI that is exposed by an API that represents a unique location for clients to access a resource and perform actions (CRUD) on it by making requests. E.g /graphql, /teams/{teamId}/members, etc. Note: Different actions on the same resource URI (e.g. HTTP methods) are considered as same endpoint.

Argument

Functions often take in data through parameters. Arguments are these data (values/variables) that is passed to a function when it is called. They are used to customize the behavior of a function.

Ascii

ASCII (American Standard Code for Information Interchange) is a character-encoding-standard whose Character Set consists of 128 characters that includes english letters, numbers, special characters, and control characters. Its character-encoding-scheme uses 7-bits to represent each character.

Asynchronous

Asynchronous is to do something without waiting for that thing to finish before moving on to the next thing. When that something eventually finishes, you can come back to it and optionally react based on the result. It is a programming pattern to execute tasks independently the main thread without incurring blocking. Note: Do not to confuse with concurrency/parallelism.

Authenticate

To authenticate is to provide valid credentials (e.g., password, biometrics, etc.) for an account/ID to gain access to a system or service. You prove that you are who you say you are i.e. the account/ID owner.

Authentication

Authentication is the process of verifying the identity of a user/system to ensure that they are who they claim to be. It is used to grant access to resources or services based on the user’s identity. E.g. comparing a user inputted username and password to the system’s database.

Authorization

Authorization is the process of determining what a user/system is allowed to do or access. It involves granting or denying access/permissions to resources or services based on the user’s identity, role, or other attributes. E.g. a student not having write access to a teacher’s grade book.

Backend

Backend is the behind-scenes or server-side of an application that is responsible for storing and handling data (interacting with databases), performing user operations, computations, etc. It works with the frontend**.

Behavior

Behavior are the actions or functionality of an object which represents what the object can do/perform. They are defined by methods. With a dog as an example object, its behavior would include bark(), eat(), sleep(), play(), etc.

Binary-Code

Unlike humans who use and understand variety of symbols/values (0-9, A-Z, special characters), a computer is a base-2 system that uses and understands only bits. Computers use binary code, a form of data representation composed of series of bits to represent all data, instructions, and information (whether it’s text, images, sound, etc. ). It is the fundamental language of computers.

Bit

A bit is the smallest unit of data in a computer. It represents a binary value, either 0 or 1. Basis for binary-code and all computer operations. A group of 8 bits is called a byte which is a common standard unit of data storage in computers.

Blocking

Blocking is a situation in a program when it (main thread) is waiting for a task to complete before moving on to the next task during which it cannot perform any other operations. It is a common issue in synchronous programming especially in apps with UI where the user interaction is frozen until the blocking task (e.g., heavy computation, network request, i/o operation, etc.) is completed.

Cache

A cache is a location for temporary data storage that stores copies of frequently accessed data to speed up data access and retrieval by directly serving the data from the cache instead of fetching it from the original source or repeating expensive computations. Caches are used in hardware (CPU cache, disk cache) and software (browser cache, database cache) to improve performance.

Call

Calling is the process of invoking/executing a function. When a function is called, the program jumps to the function’s code block, executes the code, and then returns to the point where the function was called along with the output (if any).

Cascading

Cascading is the process in which an operation or set of operations is repeated multiple times, with the output of each operation becoming the input for the next operation.


(CSS) Cascading refers to applying a priority order when multiple rules target the same element. The “cascade” ensures that the most specific rule (or the last one defined) wins, allowing different styles to be combined smoothly. In CSS, inline > internal > external and id > class > element.

Ccsld

Country Code Second-Level Domain is the part of a domain name that comes to the left of the ccTLD. It is a hierarchy to the TLD that indicates the type of entity intended to register the SLD under it (e.g. .co (commercial), .gov (government), etc). For example in the .uk namespace an academic institution would register under the .ac.uk ccSLD, while companies would register under .co.uk.

Cctld

Country Code Top-Level Domain is a two-letter TLD that is specific to a country or territory. It is considered a domain extension that is used to identify websites associated with a particular country or region. Examples include .us (United States), .uk (United Kingdom), .in (India), etc.

Character-Encoding-Scheme

A character encoding scheme defines how code-points of a character-encoding-standard are represented in binary-code or memory. Examples include UTF-8, UTF-16, ASCII, etc.

Character-Encoding-Standard

Computers can only understand binary-code, so how do they understand/represent characters/text? Through code-points implemented by a character-encoding-scheme in binary-code. Character encoding standards are a Character Set + corresponding Code Points. Examples include ASCII, Unicode, etc.

Cipher

A cipher is an algorithm used for encryption and decryption of data. It takes plain-text data and converts it into a secret scrambled code (ciphertext), or vice-versa. It may use an encryption-key/decryption-key to perform this operation. Examples include AES, DES, RSA, etc.

Ciphertext

CipherText is the secret scrambled code produced by a cipher when plain-text data is encrypted. It is unreadable unless decrypted with the correct decryption-key. Purpose is to store or transmit information with confidentiality and security.

Claim

A claim is a statement that one entity, such as a person or organization, makes about itself or another entity. They define what the entity is or is not

Class

A class is basically encapsulation of related data and behavior into a single unit. E.g., a class “Car” can have states like color, model, speed, etc., and behaviors like start(), stop(), accelerate(), etc. However, it is abstract, thus to have an actual car, you need to create an instance of the class, called an object. It acts as a blueprint/template for objects, also known as an object factory. It is a fundamental concept in OOP.

Class-Member

Class members are the variables, methods and inner-classes that are defined within a class.

Client

Clients are devices/software that accesses or makes use of the services/resources provided by a server. It does this by making requests to it for some data. Clients can be website/browsers, mobile applications, desktop applications, etc.

Client-Server

Client-Server is a application architecture that divides tasks between two types of entities: clients, responsible for the UI, requests services/resources from the server and servers, responsible for storing, handling and processing data, provides services/resources to the client.

Client-Side

Client-Side refers to things that happen on the client. It includes rendering of the UI, handling user interactions and events, sending requests for some data to the server, computing, etc.

Client-Side-Rendering

Client Side Rendering is the process of creating webpages by/on the client (browser) after receiving the response (usually shell HTML and lotta JS) from the web-server by fetching and loading content and data using JS and AJAX and manipulating the DOM. It enables Single-Page-Applications.

Code-Point

A code point is a numerical value that represents a single character in a character set (E.g. English, Numbers, Latin, special characters, etc.). For example, the code point for ‘A’ is 65, ‘a’ is 97, ‘0’ is 48, etc. in ASCII and code point for ‘😀’ is U+1F600 (128,512 in decimal), ‘Σ’ is U+03A3 (931 in decimal), etc in Unicode. It is the unique identifier for a character in a character-encoding-standard like ASCII, Unicode, etc.

Cohesion

The degree to which the elements (like variables, functions) inside an entity (like a class or module) are related to each other. High cohesion means that the elements are closely related and work together to perform the same/single tasks. Low cohesion means that the elements are not closely related and perform different/multiple tasks.

Compile

Computers cannot understand or execute source-code. Compilation is the process of translating the complete source code into machine-language before the program starts executing. A compiler is required only once, then the compiled code can be executed multiple times without recompilation. The output of the compilation process is an executable file that can be run directly by the computer.

Compile-Time

Compile-Time is the period during which a program is being compiled, before it starts executing. It precedes the run-time. Some programming languages only have a run time, as they are interpreted.

Compiler

A compiler is a program that compiles other programs. It also checks for errors in the code, and optimizes the code for better performance. The output of the compilation process is an executable file that can then be run directly by the computer.

Component

Component is a class whose instances are present in another class as a field, viz. composition.

Composite

Composite is a class that contains objects of other classes as a field, viz. composition.

Composition

Composition is an OOP concept of creating instances which have references to other instances i.e. a class (composite) containing an object of another class (component), as a field. It defines a “has-a” relationship, e.g., a room has a table, a car has an engine, etc. It is a way to form new classes by combining existing classes.

Concurrency

Concurrency is the execution of multiple tasks in the same time period in an interleaved and overlapping manner (however not simultaneously) on a single main thread. It implies one task can pause and resume later, continuing from where it left off.

Contiguous

Contiguous is to mean continuous or adjacent, without any gaps/breaks/spaces in between. In the context of memory, it refers to blocks of memory locations that are next to each other, forming a continuous range of addresses. Visualize.

Cookies are small pieces of data stored on your browser by websites you visit. They have a name and a value. They are used to store user-specific information like login status, preferences, shopping cart items, and more. Learn more

Coupling

Coupling denotes the degree of inter-dependency/connection between two entities (like class, module, function, etc.). High coupling indicates that the entities are tightly linked and rely heavily on each other, making them harder to change independently without affecting the other. Conversely, low coupling means that the entities are loosely linked and can be more easily changed independently without affecting each other.

Cross-Origin

Cross-Origin refers to requests made from one website to another website, specifically, when the origin of the client (document or script loaded by one origin) making the request and the origin of the server providing the requested resource are different. E.g. a script on ’example.com’ making a request to ‘freeimages.com/image.jpg’.

Crud

CRUD stands for Create, Read, Update, Delete. It represents the four basic operations that can be performed on data. Create is for adding new data, Read is for retrieving data, Update is for modifying data, and Delete is for removing data.

Csrf

Cross-Site Request Forgery is a type of web security vulnerability where an attacker’s malicious website tricks a user’s browser into making an unwanted request to a different website where the user is authenticated. The attacker can perform actions on behalf of the user without their knowledge.

Css

Cascading Style Sheets is used for describing and styling the presentation of a document written in HTML. It controls how elements should be rendered on screen, on paper, in speech, or on other media. E.g., targeting the color, font, size, spacing, positioning, and layout of elements on a webpage.

Data-Hiding

Data-Hiding is an OOP concept that puts encapsulation into good use by restricting the direct access of a class's state from anywhere outside the class. It enforces a forcefield around the state by allowing only the class’s methods to access and manipulate the state, and allowing outside access only through these methods. Achieved through access-modifiers. Note: ‘Hiding’ is a misnomer, it is not about hiding data or making it inaccessible, but about controlling access to data.

Data-Structure

A data-structure is a way of modelling/structuring and storing related data by defining the relationships between the data so that it can be accessed and modified efficiently. It groups/unites data into a ‘container’, for example arrays, LinkedLists, Trees, HashTables etc.

Data-Type

Data-Type indicates the type of data that a variable is allowed to store (statically-typed languages) or the type of data value that a variable currently holds (dynamically-typed languages). It defines the operations that can be performed on the value. Examples include integers, strings, booleans, functions, objects, etc.

Database

A database is a collection of related data that is stored and structured/organized in a way that allows for efficient retrieval, updating, and management. Databases are used to store information for applications, websites, and other systems.

Dbms

A Database Management System is a software that is used to create, manage, and maintain databases. It provides an interface for users to interact with the database and perform data CRUD operations. It ensures the integrity, security, backup/recoverability and efficiency of the database. Examples include MySQL, PostgreSQL, MongoDB, etc.

Dbms-Server

Most modern DBMS are client-server systems, where the DBMS software is a server-process that provides database services (managing databases, handling queries, etc.) to clients (users, applications, etc.) that connect to it over a network. DBMS-server is this server-process that binds to a port and listens for incoming connections, accepts and processes requests, and sends back responses.

Decode

Decoding is the process of converting encoded data back to its original form. It is the reverse of encoding and is used to retrieve the original data from its encoded form.

Decryption

Decryption is the process of converting the secret scrambled code (ciphertext) back into plain-text data using a cipher. The correct decryption-key is required to perform this operation.

Decryption-Key

Decryption key is a secret value (random string of characters) that is used to decrypt secret scrambled code (ciphertext) back into plain-text data. The key is used by the cipher to perform the operation.

Digital

Digital is a discrete representation of data where the data is represented by discrete values. Examples include binary code, numbers, text, etc.

Discord

Discord is a platform where you can chat, speak, stream with your friends or communities. A Discord server is like a big group space. Servers contain channels which are like chat/voice rooms for a specific topic. Roles are assignable to server members which are for allowing/denying members access to certain things or for identifications like age, region, etc. Discord bots are user interactable community-made programs that can help you manage your server, play music, play games, etc that you can add to your server.

Dns

The Domain Name System translates/resolves website domain names into IP Addresses of the web-servers that hosts the website. Browsers use it to find the location/device to request the website from. It acts as the internet’s phone book, eliminating the need for users to remember IP addresses and instead use human-readable domain names.

Dom

Document object Model is a tree-like data-structure representing a webpage where each node represents a part of the page (e.g., elements, attributes, text, etc.). It allows JS to manipulate the webpage on client-side after it is rendered. Thus, it is a programming interface for webpages that enables user interaction with the webpage, e.g. changing color theme, click/hover effects, animation effects, menu toggles, etc.

Domain

A domain is a unique name that identifies a website on the internet. Domain names are organized in a hierarchy, with the TLD at the end, the SLD before it, and the optional subdomain before that. It is also called a web-address as browsers use it to locate and access websites.

Dynamic-Allocation-Memory

Dynamic Memory Allocation is the process of allocating memory to a program at runtime.

Dynamically-Typed

In a dynamically-typed programming language, the data-type of variables are determined at runtime because the data-type is associated with data values instead of the variable and type of data value a variable holds can change during the execution of the program. Examples include JavaScript, Python, Ruby, etc.

Encapsulation

In low-cohesion systems, the data (variables) and functions are scattered and loosely/not related. Encapsulation is the bundling/grouping of data and functions that operate on that data (i.e. those data and functions that are related) into a single unit, called a class. Encapsulation enables data-hiding and increases cohesion. One of the four fundamental OOP concepts.

Encode

Encoding is the process of converting data from one form to another. It is usually performed to ensure that the data is compatible with a specific format/system, or to efficiently and properly transmit/store the data. Examples include URL encoding, base64 encoding, etc.

Encryption

Encryption is the process of converting plain-text data into a secret scrambled code (ciphertext) by a cipher using an encryption-key to prevent unwanted people from reading it. The scrambled message can only be understood by someone who has the correct decryption-key.

Encryption-Key

Encryption-key is a secret value (random string of characters) that is used to encrypt plain-text data. The key is used by a cipher to convert the plain-text data into a secret scrambled code (ciphertext).

First-Class-Citizen

In programming languages, first class citizens are entities/data-types that can be treated like any other value or variable. It can be passed as an argument to a function, returned from a function, assigned to a variable as a value. In some languages, functions are first-class citizens, this allows for more flexibility and power in the language.

Framework

A framework is a collection of tools and libraries that help developers build applications more efficiently by providing pre-written code for common/boiler-plate tasks. Frameworks provide a structure for developing applications and enforce certain patterns and practices to ensure consistency and maintainability.

Frontend

Frontend is the client-side/front-scenes of a application that is responsible for rendering of the UI, handling user interactions and events, communicating with the backend, computing.

Ftp

File Transfer Protocol is a standard network protocol used to transfer files between a client and a server on a computer network. It uses two separate connections: a control connection to send commands between the client and server, and a data connection to transfer the actual files. FTP is commonly used to upload files to a website, download software, and share files between devices.

Full-Duplex

Full-Duplex is a communication channel that allows data to flow in both directions simultaneously. It means that data can be sent and received at both ends at the same time. It is like a telephone conversation where both parties can talk and listen at the same time.

Function

A function is a block of code that performs a specific task or operation. It may take in arguments, performs its work, and may return a result. In some programming languages, functions are first-class-citizen i.e. they are like any other data value (which are references to the first instruction of the function).

Half-Duplex

Half-Duplex is a communication channel that allows data to flow in both directions, but not simultaneously. It means that data can be sent and received at both ends, but only one end can send data at any point of time. It is like a walkie-talkie where only one person can talk at a time.

Heap

The heap is a region of a computer’s memory that is dynamically-allocated. The programmer can allocate and deallocate memory any time during the program’s execution. Note: While it is an abstracted logical concept implemented by a programming language (all program memory is in RAM), it is larger and slower to stack.

High-Level

High-Level refers to programming languages that are closer to human language and further from machine-language, making it easier to read, write and understand for humans. It is abstracted from the details of the computer’s hardware and provides more simplicity and features to the programmer, making it easier to develop software. However, they are less efficient and slower to execute than low-level languages and more work is required to convert them to machine language. Examples include Python, Java, JavaScript, etc.

Html

HyperText markup language is the standard Markup-Language for creating webpages and web applications. It describes the structure and semantic meaning of web page content using a system of tags and attributes. HTML elements are the building blocks of a website, e.g. headings (<​h1-6/>), paragraphs (<​p/>), images (<​img>), links (<​a/>), etc which can be nested inside each other. The browser reads the HTML file and renders the content on the screen.

Http

HyperText Transfer Protocol is a communication protocol that uses client-server model with request-response protocol that is designed to transfer data between networked devices. It is stateless meaning each request is independent and does not remember/rely on previous requests. It is the foundation of data communication on the World Wide Web which allows browsers to retrieve webpages from web-servers. learn more

Http-Server

HTTP-Server is a server-process software that understands URLs (web addresses) and HTTP. It listens for incoming HTTP requests from client (browsers) and sends back HTTP responses containing the requested webpage or data.

Https

HyperText Transfer Protocol Secure is the secure version of HTTP. It encrypts the data exchanged between the client and server, ensuring that it cannot be intercepted, read and understood by unauthorized parties. Learn more

Hypertext

A text that contains links to other texts. When you click on a link, you are taken to another text. In the context of the web, it refers to web pages that contain links to other web pages.

Idempotent

An operation is idempotent if applying it multiple times has the same effect as applying it once or in other words, an operation that produces the same result no matter how many times it is executed. For example, deleting a file, adding 0 to a number, etc. Idempotent operations are safe to repeat and do not have unintended side effects.

In-Memory

In-memory refers to data that is stored in the computer’s RAM. It is faster to access (read) and modify (write) data in memory than on disk, but it is volatile and data is lost when the computer is turned off.

Inheritance

Inheritance is an OOP concept that allows a subclass to copy/clone/inherit class-members from its superclass. The subclass can override or extend (add new) superclass’s behavior without modifying the superclass itself. It defines “is-a” relationship, for example, a Car is a Vehicle and a Dog is an Animal where Car and Dog inherit properties and behaviors from Vehicle and Animal respectively.

Inner-Class

Inner classes are classes defined within another class i.e. nesting. Inner classes can access the class-members of the outer class and vice versa.

Instance

An instance is an occurrence/implementation/realization (i.e. a concrete entity) of an abstract entity. In the context of OOP, an instance is a specific object (concrete entity) created from a class (abstract entity). Each instance has its own unique data and can perform actions defined by the class.

Instantiate

Instantiation is the process of creating an instance of a class in OOP. When a class is instantiated, a new object is created based on the class’s blueprint.

Interface

An interface is a shared boundary/layer between two entities (e.g., software components, devices, systems, etc.) that provides a means for them to communicate or interact with each other for accessing/exchanging information. It defines how this access or interaction should occur between the entities.


(OOP) An interface is like a blueprint/template for a class that defines a set of methods that a class must implement. It defines a contract that the implementing class must adhere to thereby telling what a class must do but not how it should do it.

Internet

The internet is a global network of interconnected computers and devices that connects any device in the world to any other device in the world. It allows users to access and share information, resources, and services across the globe. It is a network of networks where each device is identified by a unique IP-Address.

Internet-Resource

An internet resource can be anything that is accessible over the internet. It can be a webpage, a file, a service, a device, a database, etc.

Interpret

Computers cannot understand or execute source-code. Interpretation is the process of translating one line of source-code into machine-language AND then executing it BEFORE moving to the next line. The system will ALWAYS require an interpreter software to execute the program. Translation has to be done during run-time and every time the program is executed.

Interpreter

A interpreter is a program that interprets other programs. Any error in the code is only caught during runtime.

Ip-Address

An Internet-Protocol Address is a unique numerical label (e.g., 182.98.18.46) that identifies a device connected to the internet, or a local network that uses the Internet Protocol for communication. Being geo-locatable, it’s like a postal address for devices on the internet which helps in transmitting data efficiently between devices.

Javascript

JavaScript is a high-level, interpreted programming language that is used to make webpages dynamic and interactive. It is used to create responsive, interactive elements on web pages, such as pop-ups, animations, form validation, and more. JavaScript is executed on the client-side (browser) and can interact with the DOM to update content, style, and structure of web pages. Note: It has no relation to Java, they are two different languages.

Json

JavaScript Object Notation is a lightweight data-interchange format that is easy for humans to read and write, and easy for machines to parse and generate. It is used to transmit data between software components. Note: While it is derived from JavaScript, it is language-agnostic.

Jwt

JSON Web Token is an open-standard that defines a compact and self-contained way for transmitting and storing information between parties that ensures data tamper-proofing. It is commonly used for authentication.

Key-Value

A key value pair is data that contains two related elements, a key and a value. The value is the information that is being stored or described that is related to the key, and the key is the unique identifier for that value. The key points to the value and is used to access the value. For example, the key-value pairs for describing myself can be “name: Sandesh”, “age: 21”, “city: Bangalore”, etc.

Landing-Page

A landing page is a webpage that serves as the entry point for a website or a particular section of a website. It informs visitors about the website’s purpose, content, and offerings. It is designed to encourage visitors to take a specific action, such as signing up, downloading a resource, or making a purchase.

Library

A library is a collection of pre-written code that provides specific functionality to be used by other code. Libraries are reusable and can save time and effort by allowing developers to use existing code rather than writing it from scratch. All the public functions/methods and their signatures forms the API of the library.

Lifo

Last In First Out is a principle where the last data/element added to a collection is the first to be removed. Only one end of the collection can be used. For example, with bangles stacked on your arm or with rings stacked on your finger, the last one you put on is the first one you take off.

Low-Level

Low-Level refers to programming languages that are closer to machine-language and further from human language, making it harder to read, write and understand for humans. It is closer to the hardware and provides more control over the computer’s resources, making it more efficient and faster to execute than high-level languages. However, they are harder to learn and use. Lesser work is required to translate the code into machine-language. Examples include Assembly, C, etc.

Mac-Address

A Media Access Control Address is a hardware identifier that uniquely identifies each device on a network. Primarily, the manufacturer assigns it. They are often found on a device’s network interface controller (NIC) card.

Machine-Language

Machine Language is the most fundamental programming language and a computer can understand and execute it directly without needing some ’translation’. Operates at hardware level i.e. consists of instructions (made up of binary code) that corresponds to a specific operation the CPU can perform; thereby being specific to a computer’s architecture.

Markup-Language

Markup Languages are systems for annotating a document in a way that is syntactically distinguishable from the content text. The annotations typically define how the document should be structured, formatted, or displayed. They are static and do not have any logic or programming capabilities. Examples include HTML, XML, etc.

Memory-Address

Memory in a computer is divided into contiguous blocks memory units (usually a byte) each with a unique address. A memory address is this unique identifier for a memory unit in the computer’s memory. When the data content in the memory is the address of another memory unit, it is called a pointer.

Memory-Stack

The memory stack is a scratch space for thread of execution. It is a statically-allocated region of program memory that stores a stack of frames. Memory is allocated contiguously and grows/shrinks as functions are called and returned. Note: While it is an abstracted logical concept implemented by a programming language (all program memory is in RAM), it is smaller and faster to heap.

Memory-Stack-Frame

A stack frame is a data-structure that contains all the information about the execution of a function. It includes the function’s arguments, local variables, return address, and other information needed to resume a function after control returns from a called function. Each function call creates a new stack frame on the memory-stack.

Memory-Unit

Memory unit in a computer architecture is the smallest addressable size of memory i.e. the smallest size of data that can be read from or written to the memory. It is usually a byte in most systems. Each memory unit has a unique memory-address. The memory unit is the basic building block of memory.

Message-Broker

A message broker is an intermediary software that facilitates communication between different software systems. It receives messages from one system and sends them to another system. It decouples the systems, so they don’t need to know each other’s details to share information. It ensures that the messages are delivered reliably and efficiently, even when the systems are not available at the same time.

Metadata

Metadata is data about data. It provides information about other data. For example consider a .jpg file, it contains the image data and you could also view and even edit the metadata which includes information like name of the photographer, date and time the photo was taken, camera model, etc. Every file has metadata associated with it.

Method

Methods are functions associated with an object i.e. defined in a class. It can perform a specific task or operation on the object’s state.

Module

A module represents a distinct unit of code that serves a unique and specific purpose, it’s self-contained and can be reused again and again. When people talk about things like packages, or libraries, they are also talking about “modules”. It is used to mean “some self contained bit of code that does this one specific thing”.

Namespace

Consider two people with the same name in a room, it would be confusing to call out their name. To avoid this, you could say “John from the marketing department” and “John from the sales department”. This is what namespaces do in programming. They allow you to use the same name for different things without causing confusion and naming conflicts. For example, two libraries might have a function with the same name, but they can be distinguished by their namespace (e.g., com.example.library1.function() and com.example.library2.function()) so that you can use both in the same program. The reverse order of the organization domain name is a common way to create namespaces.

Oauth

Open Authorization is an open-standard for access delegation that allows a user to grant a third-party application access to their account/application’s resources or perform actions on behalf of them without them having to sharing their credentials to the third-party application. Learn More.

Object

An object is a real-world entity that has state and behavior. While class is an abstract entity, an object is its concrete entity i.e. an instance. For example, a class “Car” can have states like color, model, speed, etc., and behaviors like start(), stop(), accelerate(), etc. To have an actual car, you need to create an object of the class with its unique data. Objects are the building blocks of OOP.

Oop

Object-Oriented-Programming is a programming paradigm that is based on the concept of “objects. Real-World entities of a system are modeled as classes whose instances communicate with each other to perform tasks. OOP include the concepts encapsulation, inheritance, polymorphism, and abstraction and principles like SOLID.

Open-Source

Open-Source refers to software that is freely available to use, modify, and distribute. The source-code of open-source software is made available to the public, allowing anyone to inspect, modify, and improve it.

Open-Standard

An open-standard is a publicly available set of guidelines or specifications that are developed and maintained through a collaborative, consensus-driven and transparent process, maintained by a community of users and developers. It is not proprietary and can be implemented by anyone without restrictions. E.g. OAuth (IETF), JSON (ECMA), HTML (W3C), etc.

Openid-Connect

OpenID Connect is an open-standard for authentication that is built on top of OAuth 2.0, and provides an identity layer on top of it like basic profile information about the user (e.g., name, email, etc.). It allows Single-Sign-On.

Override

Overriding in OOP is a subclass providing its own implementation of a method that is already provided (i.e. inherited) from its superclass. The method has the same signature as that of the superclass and the subclass method can invoke the superclass’s method using the super keyword.

Package

A package is used to provide a higher level, logical organization unit by grouping related modules/classes/interfaces together that provide a set of functionalities/tools. They provide namespace and are nestable. Often used to manage dependencies, and distribute, manage and reuse code.

Parallelism

Parallelism is the execution of multiple tasks simultaneously at a point of time.

Parameter

A parameter is a variable in a method/function definition that is used to accept input values when the method/function is called. It is a placeholder for the actual value that will be passed to the method when it is invoked. Parameters are used to alter the behavior of the function/method, making it more flexible and reusable.

Parse

Parsing is the process of analyzing a string of symbols to determine its grammatical structure with respect to a given formal grammar. It is used in programming to convert data from one format to another, such as from a string to a data structure. For example, parsing JSON string data into a JavaScript object, or parsing an HTML document into a DOM tree, etc.

Path-Parameter

Specifying URL-path manually for each resource is not feasible. Path parameters are variables/placeholders in the URL-Path that are replaced with actual values when the request is made. They are used to pass data to the web-server in the URL. For example, in the URL path ‘/teams/{teamId}/players/{playerId}’, teamId and playerId are path parameters parameter that can be replaced with an actual team and player IDs.

Pointer

A pointer is a variable/memory whose data content is a reference. One of its uses is of it being lightweight because it does store the actual whole data, but only points to location of data.

Port

A port is a specific point of communication on a computer that allows other computers to connect and exchange information with it over a network. Ports are identified by numbers, and each port is associated with a specific protocol or service. For example, port 80 is commonly used for HTTP traffic, and port 5432 is used for PostgreSQL database connections. It can be described as an internal address within a host computer that identifies a program or process.

Process

A process is a computer program that is loaded into memory (RAM) and is being executed. It is an instance of a computer program that has its own memory space, resources, and state which other processes cannot access. Each process has a main thread and a process can have multiple threads. Processes are managed by the operating system.

Protocol

A protocol is a set of rules and guidelines that dictate how participants (whether they are devices, software components, or users) in a system should behave, communicate, and interact with each other. Examples include HTTP, SMTP, FTP, etc.

Query-Parameter

Query parameters are the key-value pairs in the URL query string that are used to pass data to the web-server in the URL for filtering or sorting the response resources. They are separated from the URL-path by a question mark (?) and from each other by an ampersand (&). For example, in the URL ‘/search?query=programming&sort=latest’, query and sort are query parameters.

Rate-Limit

Rate-Limiting is a restriction on the number of requests a client (user or application) can make to a server within a defined time frame. It is used to prevent abuse, protect against denial-of-service attacks, and ensure fair usage of resources.

Redis

Redis is an open-source, in-memory data structure store that can be used as a database, cache, and message-broker . It largely works with the data-type String and collections of strings like Lists, Sets, Sorted Sets, Hashes, etc. Each data is stored as a key-value pair which supports expiration (automatically deleted after a set time).

Reference

A reference is a type of data value that is a memory-address of another value/data i.e. it indicates where some other data is stored. As it points to some other data, it is used to access that data. A variable/memory that stores a reference is called a pointer.

Refresh-Token

An Access-Token is short lived for security, meaning on expiry the user will have to re-authenticate. Refresh-Token is string of alphanumeric characters that can be used to be issued with a new Access Token after the current Access Token expires. Thus it rotates the Access Token without the user having to re-authenticate.

Request

When a frontend/client needs to avail some resources/services like when it needs data or wants to perform an operation, it must ask the backend/server to do so. This asking is called a request, often over the network. The server processes the request and sends back a response.

Request-Response

Request-Response is a common communication pattern/protocol in which one system (client) sends a request for some data to another system (server), and the second system responds to the request by sending back the requested data.

Response

When a backend/server receives a request for some resource or service from a frontend/client, it figures out what the client wants, processes the request and answers back to the client with the result. This answer is called a response. The response typically contains the requested data or information, along with a status code indicating the success or failure of the request.

Runtime

Runtime is the period during which a program is running i.e. it is in execution/operation and is performing its tasks. The runtime of a program starts when it begins executing and ends when it is terminated.

Same-Origin

Same-Origin refers to requests made from one website to the same website, specifically, when the origin of the client (document or script loaded by one origin) making the request and the origin of the server providing the requested resource is same. E.g. ‘https://example.com’ making a request to ‘https://example.com/static/image.jpg'.

Scope

Scoping is determining and controlling which parts of a particular computer program (e.g., variables, functions, etc.) are accessible and ‘visible’ to which other parts, in the source-code. That is, defining the boundaries of where a particular piece of code is valid to be used, in the source-code.

Self-Contain

Something is self-contained if it is independent and complete on its own, without needing external components/resources to function. Though it may still interact with or expose parts of itself to other components.

Server

A server is a computer program or a device that provides functionality/services to other programs or devices, known as clients, by processing their requests and responding with the result. These devices are typically dedicated to serving the needs of other programs or users, therefore being powerful machines which lack output devices like a monitor, keyboard, etc.

Server-Process

A server-process is a program that runs in the background on a computer and binds to a specific port, listening for incoming requests from a client over a network. It processes these requests and sends back responses to the clients. E.g., a http-server, dbms-server, etc. These processes usually run on a server-machine .

Server-Side

Server-Side refers to things that happen on the server, e.g., interacting with databases, processing of requests, etc.

Server-Side-Rendering

Server-Side Rendering is the process of creating webpages on a webapp-server when it receives a request (webpage yet to be created at this point) from clients (browsers) by fetching and loading its content and data during processing of the request and then sending the fully rendered page to the client. Suitable for content that changes frequently and requires dynamic data like social media feeds, e-commerce sites, etc.

Signature

Signature is the name, parameters (number, type, order), and return type of a function/method. It is a unique identifier for a function/method in a namespace.

Simplex

Simplex is a communication channel that allows data to flow in only one direction. Data can only be sent at one end and only be received at the other end. Examples include radio, television, etc.

Single-Page-Application

A Single Page Application (SPA) is a webapp that loads a single HTML page and dynamically updates the content instead of requesting new webpages as the user interacts with the application using client-side-rendering. SPAs provide a more responsive and seamless user experience by reducing the need to reload the entire page for each interaction.

Single-Sign-On

Single Sign-On (SSO) is an authentication process that allows a user to access multiple applications with a single set of login credentials.

Sld

Second-Level Domain is the part of a domain that comes to the left of the TLD. It is the most recognizable part of the domain name that is used to identify the website which is the organization that registered the domain name. For example, in the domain name “example.com”, “example” is the SLD.

Smtp

Simple Mail Transfer Protocol is a standard protocol used to send and receive email messages over the internet. SMTP is a text-based protocol that operates on port 25. It is a push protocol, meaning that the server sends the message to the client.

Socket

A socket is an IP-Address + Port, also known as a communication endpoint. It is used to establish a connection between two computers on a network to exchange data.

Software-Component

Software components include server-processes, client applications (e.g. a website/browser, mobile app, desktop app, etc.), or libraries/modules that provides specific functionality to a software system.

Source-Code

Source code is the raw textual human-readable code of a computer program written by a programmer in a programming language. Computers do not understand this version of code, thus it needs to be translated through the process of compilation/interpretation into machine-language before it can be executed.

Stack

A stack is a data-structure that stores data in a LIFO (Last In First Out) order. It has two main operations: push (adds an element to the top of the stack) and pop (removes the top element from the stack). You can only access the top element of the stack.

State

State is the characteristics/attributes/properties of an object which represents what an object is, what it looks like and defines ‘Has-A’ relationships (composition). It is the data (stored in variables) that an object holds at a given point in time. It defines the object’s behavior. With a dog as an example object, its state would include its name, breed, age, color, etc.

Static

A static class-member is one that belongs to the class itself, rather than to the instances of the class. It can be accessed without creating an instance of the class and is shared among all instances of the class.

Static-Allocation-Memory

Static Allocation of Memory is a memory allocation technique where memory is allocated at compile-time. The size of the memory block is fixed and cannot be changed during the program’s execution. Note: While size is determined before the program runs, actual memory isn’t assigned until the program starts executing

Static-Site-Generation

Static Site Generation is the process of creating webpages by loading its content and data at build-time before clients (browsers) request it. The webpage is generated once and served as-is to all clients without any additional processing. Suitable for content that doesn’t change frequently and is static like blogs, portfolios, landing pages, etc.

Static-Site-Generator

A Static Site Generator is a software tool that generates static webpages from source files (e.g., Markdown, HTML, etc.) through SSG. Examples include Jekyll, Hugo, Gatsby, etc.

Statically-Typed

In statically-type programming languages, the data type of a variable is known at compile time. The data type of a variable is explicitly declared when the variable is created, and it cannot change during the program’s execution. Examples include C, Java, C++, etc.

Style-Sheet

A style sheet is a file that contains style rules.

Style-Sheet-Language

A style sheet language describes the presentation or formatting of a document written in a markup language like HTML, typically defining how elements should be displayed or rendered across different media.

Subclass

SubClass/ChildClass is a class that inherits properties and behaviors from another class, called a superclass/ParentClass.

Subdomain

A subdomain is a different site that is part of the main domain (SLD+TLD). For example, blog.example.com and shop.example.com are subdomains of example.com. Websites often redirect all subdomains to a single subdomain (commonly ‘www’ or empty), but they can also be used to create separate sites or sections of a site with different content or functionality.

Superclass

SuperClass/ParentClass is a class that provides properties and behaviors to another class, called a SubClass/ChildClass through inheritance.

Synchronous

Synchronous is to do something and wait for it to finish before moving on to the next thing. In programming, it means that the program will execute in a sequential order where it will wait for an instruction to complete before moving on to the next task. It is blocking in nature.

Tcp

Transmission Control Protocol is a connection-oriented protocol (forms a connection between devices before transferring data) that provides reliable, ordered, and error-checked delivery of data between devices over a network. It ensures that ALL data packets are delivered to the destination in the same order they were sent and that they are error-free. TCP is a transport layer protocol in the TCP/IP suite.

Tcp/Ip

Transmission Control Protocol/Internet Protocol is a framework or a suite of protocols that define how computers communicate and share data with each other over the internet or a network in a reliable and efficient manner. It consists of five layers: Physical, Data-Link, Network, Transport, and Application. Note: TCP/IP is a misnomer, it is actually a suite of protocols that also includes UDP.

Tcp/Ip-Application

The Application Layer is the top-most layer of the TCP/IP model where the data unit is called a message. It is the interface between the user’s applications and the underlying network. It manages how data is presented and accessed by the user. It includes protocols like HTTP, FTP, SMTP, etc.

The Data Link Layer is the second layer of the TCP/IP model where the data unit is called a frame. It adds a header containing the hardware address (MAC-Address) of the source and destination computers. It is responsible for transferring frames from the source to the destination across the same network. It provides error detection and correction.

Tcp/Ip-Network

The Network Layer is the third layer of the TCP/IP model where the data unit is called a packet. It adds a header containing the IP-Address of the source and destination computers. It is responsible for routing packets from the source to the destination across multiple networks. It finds the best path for data transfer by using routing algorithms to choose the fastest and most reliable route.

Tcp/Ip-Physical

The Physical Layer is the bottom-most layer of the TCP/IP model where the data unit is called a frame even though it is represented in bits. It is responsible for transmitting raw data bits over a physical medium in analog form between the network nodes.

Tcp/Ip-Transport

The Transport Layer is the fourth layer of the TCP/IP model where the data unit is called a segment (TCP) or a datagram (UDP). It adds a header containing the port numbers of the source and destination computers. It breaks down your data into chunks, called packets and numbers them so they can be reassembled in the correct order. It is responsible for end-to-end communication between the source and destination computers.

Thread

A thread is a separate, single sequence of execution of instructions within a process. All processes have at least one thread, known as the main thread. Threads have their own stack but share the same heap. Multiple threads of a process can be run concurrently or parallelly.

Tld

Top-Level Domain is the last part of a domain name, such as .com, .org, .net, .edu, etc. It helps to classify and communicate the purpose, owner, or geographical area of a website. For example, a “.com” TLD indicates a commercial website, while a “.edu” TLD indicates an educational institution.

Tls/Ssl

Transport Layer Security (formerly known as Secure Sockets Layer) is a protocol that provides secure communication over a computer network by encrypting the data that is transmitted between two systems. It generally provides, to varying degrees, three useful things: data confidentiality, authentication, and data integrity.

Transfer

Transfer is the exchange of data between the client and server.

Udp

User Datagram Protocol is a connectionless protocol (no connection formation between devices before transferring data) that operates on the transport layer of the TCP/IP model. It is used for fast transmission of data where reliability is not critical, some data loss or misorder of packet arrival is acceptable.

Ui

User Interface is the visual elements of a software application that users interact with, such as buttons, menus, forms, and other controls. It is designed to be intuitive, user-friendly, and responsive to user input.

Unicode

ASCII is limited to representing only 128 characters, which is not enough to represent all the characters in the world’s languages (150,000+). Unicode is an international character-encoding-standard whose Character Set includes all characters in all languages, including emojis, mathematical symbols, etc. Its Character-Encoding-Scheme include the UTF family.

Uri

A Uniform Resource Identifier is a text string that identifies a particular resource on the internet (by location or name) and is used to access that resource. URIs include URLs and URNs.

Url

A Uniform Resource Locator is a text string that identifies a particular resource on the internet by its location. In the context of the web, it is called “web address” or “link”. It consists of a protocol, a domain name, a path to the resource and query parameters. E.g., https://example.com/tutorials/what-is-a-url?lang=en specifies the location of a tutorial on URLs in English on the example.com website and uses the HTTPS protocol.

Url-Path

A URL Path is the part of a URL that specifies the location of an internet-resource on a website. It can contain path parameters. For example, in the URL https://example.com/tutorials/what-is-a-url, “/tutorials/what-is-a-url” is the URL path.

Urn

A Uniform Resource Name is a text string that identifies a particular resource on the internet by its name. It is globally unique within in a particular namespace and persistent, which does not specify its location or whether it exists. For example, ‘urn:isbn:0451450523’ identifies a book by its ISBN number.

Utf

Unicode Transformation Format is a character-encoding-scheme of the unicode standard. UTF-8, UTF-16, and UTF-32 are the most commonly used in the UTF family.

Utf-16

UTF-16 is a variable-width character encoding using one or two double-byte code units. It is used in major operating systems and environments, including Windows and Java.

Utf-32

UTF-32 is a fixed-width character encoding that uses a quadruple-byte code unit. It is used in environments where fixed-width encoding is required, such as in-memory representation of text data.

Utf-8

UTF-8 is a variable-width character encoding of unicode that uses one to four single-byte code units. It is the most commonly used character encoding on the web. One byte is used for ASCII characters, two bytes for most Latin characters, and three or four bytes for less common characters.

Ux

User Experience is the overall experience of a person using a product such as a website or computer application, especially in terms of how easy or pleasing it is to use.

Variable

A variable is a named storage location in a computer’s memory that holds a value. It is used to store data that can be referenced and manipulated in a program. Variables have a data-type that determines what kind of data they can hold, and a name that is used to refer to them in the program.

Web

The World Wide Web, a subset of the internet resources, is an information space of documents and other web resources that are identified by URIs, interlink with hyperlinks, and can be accessed via the internet. It is a system of interlinked documents accessed via the internet.

Web-Component

Web components/content include webpages and its components.

Web-Document

A Web Document is a HTML file containing textual or multimedia content that is displayed in a web browser. While being rendered by a web browser, it makes HTTP requests to fetch other resources embedded in the document like images, stylesheets, scripts, etc. It is the basic unit of information on the World Wide Web and makes up a webpage.

Web-Origin

Every web-component delivered to a client has an origin which is defined by the scheme (e.g., HTTP, HTTPS), domain (e.g., example.com), and port (e.g., 5432) of the URL that was used to access the said web-component. If the port is not specified, it defaults to the standard ports used by the scheme (e.g., 80 for HTTP, 443 for HTTPS). For example, the origin of the URL ‘https://example.com:5432/path/to/resource' is ‘https://example.com:5432’ where ‘https’ is the scheme, ’example.com’ is the domain, and ‘5432’ is the port and the origin of the url ‘https://example.com/path/to/resource' is ‘https://example.com’ where ‘https’ is the scheme and ’example.com’ is the domain and the port defaults to 443 (HTTPS).

Web-Script

A Script is a JavaScript file that contains code and is linked by a web-document which is executed by the browser after the document loads the script through HTTP. It can make AJAX-requests, manipulate the DOM, etc.

Web-Server

A server that hosts web-component files, and an HTTP-server. Web servers are accessed through the domain names of the websites they host.

Webapp

A Web Application is a software application that is accessible through a browser over the internet. It is designed to provide interactive and dynamic user experiences. Web applications can be simple, like a todo list, or complex, like a social media platform.

Webapp-Server

A Web Application Server is a server that hosts and runs webapps. It uses a software-framework that provides an environment for web applications to run, including services such as access to the HTTP request and response objects, database connectivity, OS file system, etc. It enables server-side-rendering.

Webpage

A webpage is a document that is displayed in a web browser when you visit a website through an URL. It is written in HTML and may contain other resources. Related webpages make up a website, sharing a common domain name.

Webpage-Component

Webpage components are the files that make up a webpage which are the HTML files, CSS files, JavaScript files, images, videos, etc.

Website

A website a collection of related webpages that are typically identified by a common domain name and are published/hosted on at least one web-server. Websites are accessible over the internet and are used to provide information, services, and resources to users.

Websocket

WebSockets is a communication protocol that provides full-duplex communication channels for exchanging data between a client and a server over a single, long lasting TCP connection. WebSockets keep the connection open, allowing real-time data to flow both ways without delays. This makes WebSockets ideal for applications that need instant updates, such as chat apps, live sports scores, and online multiplayer games.

Xml

Extensible Markup-Language is a self-descriptive language that allows you to define your own tags and attributes. It describes data and is used to store and transport data.

Xss

Cross-Site Scripting is a type of web security vulnerability that allows attackers to inject malicious scripts into webpages viewed by other users which when executed by the browser can steal sensitive information, deface the website, redirect users to malicious sites, etc.