Tech dictionary
86 programming and computer-science terms explained in two or three clear sentences — with an example and a free lesson to learn more.
Data structures & algorithms
- AlgorithmAn algorithm is a finite, step-by-step procedure for solving a problem or performing a task. A good algorithm is correct, terminates, and uses time and memory efficiently.
- ArrayAn array is a collection of elements stored in contiguous memory and accessed by an index. Reading or writing an element by index takes O(1) time, but inserting or deleting in the middle takes O(n) because elements must shift.
- Big-O notation (time complexity)Big-O notation describes how the running time or memory of an algorithm grows as the input size n grows, ignoring constant factors. It gives an upper bound on the growth rate, such as O(1), O(log n), O(n), O(n log n) or O(n²).
- Binary searchBinary search finds a target in a sorted array by comparing it with the middle element and discarding the half that cannot contain it. It runs in O(log n) time.
- Binary treeA binary tree is a hierarchical structure where each node has at most two children, called left and right. A binary search tree keeps smaller keys on the left and larger keys on the right, giving O(log n) search when it is balanced.
- Breadth-first search (BFS)Breadth-first search explores a graph level by level using a queue, visiting all neighbours of a node before moving further away. In an unweighted graph it finds the shortest path in terms of number of edges.
- Dynamic programming (DP)Dynamic programming solves problems with overlapping subproblems by storing the answer to each subproblem and reusing it instead of recomputing it. It is applied either top-down with memoisation or bottom-up with a table.
- GraphA graph is a set of vertices (nodes) connected by edges, which may be directed or undirected and weighted or unweighted. Graphs model networks such as roads, social connections and course prerequisites.
- Hash table (hash map)A hash table stores key–value pairs and uses a hash function to compute where each key lives, giving O(1) average time for insert, lookup and delete. Collisions (two keys mapping to the same slot) are handled by chaining or open addressing.
- Linked listA linked list is a sequence of nodes where each node stores a value and a reference (pointer) to the next node. It allows O(1) insertion and deletion at a known position, but accessing the i-th element takes O(n).
- QueueA queue is a first-in, first-out (FIFO) data structure: elements are added at the rear and removed from the front, both in O(1) time.
- RecursionRecursion is when a function solves a problem by calling itself on a smaller version of the same problem, until it reaches a base case that is answered directly. Every recursive function needs a base case, or it never stops.
- StackA stack is a last-in, first-out (LIFO) data structure: the last element pushed is the first one popped. Push, pop and peek take O(1) time.
Programming & OOP
- AbstractionAbstraction means exposing only what a user of a class needs and hiding how it works. In Java it is expressed with abstract classes and interfaces.
- Compiler vs interpreterA compiler translates the whole program into machine code or bytecode before it runs; an interpreter executes the program statement by statement. Java compiles to bytecode that the JVM runs; Python is usually interpreted by CPython.
- EncapsulationEncapsulation means keeping an object’s data private and allowing changes only through its methods, so the object can protect its own rules. It hides internal details behind a public interface.
- InheritanceInheritance lets a class (subclass) reuse and extend the fields and methods of another class (superclass), modelling an "is-a" relationship.
- InterfaceAn interface is a contract listing methods a class promises to provide, without (mostly) providing the implementation. A class can implement many interfaces, which is how Java supports multiple inheritance of type.
- Object-oriented programming (OOP)Object-oriented programming organises code into objects that combine data (fields) and behaviour (methods). Its four pillars are encapsulation, abstraction, inheritance and polymorphism.
- PolymorphismPolymorphism means one interface with many implementations: the same method call behaves differently depending on the object’s actual type. Compile-time polymorphism is method overloading; runtime polymorphism is method overriding.
Databases & SQL
- ACID propertiesACID describes reliable database transactions: Atomicity (all or nothing), Consistency (rules are preserved), Isolation (concurrent transactions don’t interfere) and Durability (committed data survives crashes).
- Database indexA database index is a data structure (usually a B-tree) that lets the database find rows quickly without scanning the whole table, at the cost of extra storage and slower writes.
- DBMS (database management system)A database management system is software that stores, retrieves and manages data while handling concurrency, security and recovery. MySQL, PostgreSQL and Oracle are relational DBMSs.
- Foreign keyA foreign key is a column that refers to the primary key of another table, enforcing that the referenced row exists (referential integrity).
- NormalizationNormalization is organising tables to reduce redundancy and avoid insert, update and delete anomalies, by splitting data according to dependencies (1NF, 2NF, 3NF, BCNF).
- Primary keyA primary key is a column (or set of columns) that uniquely identifies each row in a table; it cannot be NULL or duplicated. A foreign key in another table refers to it to link the tables.
- SQL (Structured Query Language)SQL is the standard language for querying and changing data in relational databases, using statements such as SELECT, INSERT, UPDATE, DELETE and JOIN.
- SQL JOINA JOIN combines rows from two or more tables based on a related column. INNER JOIN keeps matching rows only; LEFT JOIN keeps all rows of the left table and fills missing matches with NULL.
- TransactionA transaction is a group of database operations treated as a single unit: either all of them are committed or, on failure, all are rolled back.
Operating systems
- Context switchA context switch is when the CPU saves the state of the running process or thread and loads the state of another, letting many programs share one CPU. It is pure overhead, so schedulers try not to switch too often.
- CPU schedulingCPU scheduling is how the operating system decides which ready process runs next, using algorithms such as FCFS, SJF, priority and round robin to balance waiting time, response time and fairness.
- DeadlockA deadlock is a situation where processes wait for each other forever because each holds a resource the other needs. It requires four conditions together: mutual exclusion, hold and wait, no preemption and circular wait.
- PagingPaging divides memory into fixed-size pages and frames so a process’s memory need not be contiguous; a page table maps virtual pages to physical frames. Page replacement algorithms such as LRU decide which page to evict.
- Process vs threadA process is a running program with its own memory space; a thread is a unit of execution inside a process that shares the process’s memory with other threads. Switching between threads is cheaper than between processes.
- SemaphoreA semaphore is an integer variable used to control access to shared resources, changed only by atomic wait (P) and signal (V) operations. A binary semaphore works like a lock (mutex); a counting semaphore allows up to N users.
- Virtual memoryVirtual memory gives each process the illusion of a large private address space, mapping pages to physical RAM on demand and keeping the rest on disk. A page fault occurs when a needed page is not in RAM.
Computer networks
- DNS (Domain Name System)DNS translates human-friendly domain names such as skills101.in into IP addresses that computers use to connect. It is often called the phone book of the Internet.
- HTTP and HTTPSHTTP is the request–response protocol of the web: a client sends a method (GET, POST…) and URL, and the server replies with a status code and content. HTTPS is HTTP encrypted with TLS, protecting data from eavesdropping and tampering.
- IP addressAn IP address is a numeric label that identifies a device on a network so packets can be routed to it; IPv4 addresses are 32-bit (like 192.168.1.10) and IPv6 addresses are 128-bit.
- OSI modelThe OSI model divides networking into seven layers: physical, data link, network, transport, session, presentation and application. Each layer serves the one above it; the Internet itself uses the simpler TCP/IP model.
- TCP vs UDPTCP is a connection-oriented protocol that guarantees ordered, reliable delivery with retransmission; UDP is connectionless and faster but does not guarantee delivery or order. Web pages use TCP; live video calls and games often use UDP.
Web & APIs
- CORS (Cross-Origin Resource Sharing)CORS is a browser security mechanism that blocks a web page from reading responses from a different origin unless that server allows it with Access-Control-Allow-Origin headers.
- HTTP status codesHTTP status codes tell the client what happened: 2xx success (200 OK, 201 Created), 3xx redirects, 4xx client errors (400 bad request, 401 unauthenticated, 403 forbidden, 404 not found) and 5xx server errors.
- JSONJSON (JavaScript Object Notation) is a lightweight text format for data made of objects, arrays, strings, numbers, booleans and null. It is the standard format for web APIs.
- REST APIA REST API exposes resources at URLs and uses HTTP methods as actions — GET to read, POST to create, PUT/PATCH to update, DELETE to remove — usually exchanging JSON. It is stateless: every request carries everything needed.
Java & Spring
- Dependency injection (DI)Dependency injection is a design technique where an object receives the objects it depends on from outside (usually through its constructor) instead of creating them itself. In Spring, the IoC container creates the beans and injects them.
- Garbage collectionGarbage collection automatically frees memory occupied by objects that are no longer reachable from the program, so developers don’t free memory manually. Java, Python and JavaScript use garbage collectors; C and C++ do not by default.
- Inversion of control (IoC)Inversion of control means a framework, not your code, creates objects and calls your code at the right time. Spring’s ApplicationContext is an IoC container.
- JVM (Java Virtual Machine)The Java Virtual Machine runs Java bytecode, managing memory with garbage collection and compiling hot code to machine code at runtime (JIT). It is why Java is "write once, run anywhere".
- ORM (object-relational mapping)An ORM maps classes to database tables so you work with objects instead of writing SQL for every operation. JPA is Java’s ORM standard and Hibernate its most used implementation.
- Spring BootSpring Boot is a framework for building Java applications and REST APIs quickly, with starters, auto-configuration and an embedded web server, so an app runs with java -jar.
AI & machine learning
- AI agentAn AI agent is a system where a language model decides which steps to take and which tools to call, in a loop, to reach a goal. Agents are flexible but less predictable than fixed workflows, so they need permission limits and step limits.
- Context windowThe context window is the maximum amount of text (in tokens) a language model can consider in one request, including instructions, conversation history, documents and its own answer.
- Cross-validationk-fold cross-validation splits the data into k parts, trains the model k times each time testing on a different part, and averages the scores for a more reliable estimate than a single split.
- EmbeddingsEmbeddings are lists of numbers (vectors) that represent the meaning of text, so that similar meanings have nearby vectors. They power semantic search, recommendations and RAG.
- Hallucination (AI)A hallucination is a fluent, confident answer from an AI model that is false or unsupported, because the model generates plausible text rather than looking up facts. Grounding with retrieval, tools and citations reduces it.
- Large language model (LLM)A large language model is a neural network trained on large amounts of text to predict the next token, then refined to follow instructions. Claude, GPT and Gemini are LLMs.
- Machine learning (ML)Machine learning is building systems that learn patterns from examples instead of being explicitly programmed with rules. Supervised learning learns from labelled examples; unsupervised learning finds structure in unlabelled data.
- OverfittingOverfitting is when a model learns the training data, including its noise, so well that it performs worse on new data. It shows up as high training accuracy with lower test accuracy, and is reduced with simpler models, more data, regularisation and cross-validation.
- Precision and recallPrecision is the share of predicted positives that are correct, TP / (TP + FP); recall is the share of actual positives that are found, TP / (TP + FN). Lowering a classifier’s threshold usually raises recall and lowers precision.
- Prompt engineeringPrompt engineering is designing the instructions, context, examples and output format given to a language model so it produces reliable, useful results — and testing those prompts like code.
- RAG (retrieval-augmented generation)Retrieval-augmented generation retrieves relevant passages from your own documents and gives them to a language model with the question, so it answers from those sources and can cite them.
- Token (in LLMs)A token is a piece of text — a word or part of a word — that a language model reads and generates. Context limits and API prices are measured in tokens.
- Train/test splitA train/test split divides data into a training set used to fit the model and a held-out test set used once to measure how well it works on unseen data.
- Vector databaseA vector database stores embeddings with their text and metadata and finds the nearest vectors to a query quickly. Examples include pgvector for PostgreSQL, Chroma, Qdrant and Milvus.
Testing & quality
- Black-box vs white-box testingBlack-box testing checks behaviour against the specification without looking at the code (e.g. boundary values); white-box testing designs tests from the code’s structure (e.g. branch coverage).
- Integration testingIntegration testing checks that modules or services work correctly together — for example, a controller, a service and a real database.
- Regression testingRegression testing re-runs existing tests after a change to make sure features that used to work still work. It is the main reason teams automate tests.
- Selenium WebDriverSelenium WebDriver is a tool for automating real web browsers from code (Java, Python and others) using the W3C WebDriver protocol, widely used for UI test automation.
- Unit testingUnit testing checks the smallest pieces of code, such as one function or class, in isolation, usually with dependencies replaced by mocks. Unit tests are fast and form the base of the testing pyramid.
Git, cloud & DevOps
- API gatewayAn API gateway is the single entry point to a set of services: it routes requests to the right service and handles cross-cutting concerns such as authentication, rate limiting and logging.
- CachingCaching stores the result of an expensive operation, such as a database query, in fast storage like memory (for example Redis) so repeated requests are served quickly. Cache invalidation — knowing when data is stale — is the hard part.
- CI/CDContinuous integration (CI) automatically builds and tests every change; continuous delivery/deployment (CD) automatically releases tested changes. GitHub Actions and Jenkins are common CI/CD tools.
- DockerDocker packages an application with everything it needs into an image; a running image is a container. Containers start in seconds and run the same way on a laptop, a server or the cloud.
- GitGit is a distributed version control system that records snapshots of a project’s files as commits, so teams can track history, create branches, and merge work safely. GitHub and GitLab host Git repositories.
- Git merge vs rebasegit merge combines branches by creating a merge commit and keeps history exactly as it happened; git rebase replays your commits on top of another branch for a linear history. Never rebase commits others have already pulled.
- Load balancerA load balancer spreads incoming requests across several servers so no single server is overloaded and the service survives if one server fails. It usually checks each server’s health before sending traffic.
- MicroservicesMicroservices is an architecture where an application is split into small, independently deployable services that each own their data and communicate over APIs or events. It enables independent scaling and team ownership at the cost of network complexity.
- MonolithA monolith is an application built and deployed as a single unit with one codebase and usually one database. It is simpler to build and run, and is the recommended starting point for most new products.
Security
- Authentication vs authorizationAuthentication verifies who you are (logging in); authorization decides what you are allowed to do (permissions). In HTTP, 401 means not authenticated and 403 means authenticated but not allowed.
- Cross-site scripting (XSS)Cross-site scripting is an attack where a website shows attacker-supplied input as HTML or JavaScript, so the script runs in other users’ browsers. It is prevented by escaping output and avoiding raw HTML rendering of user content.
- CSRF (cross-site request forgery)CSRF tricks a logged-in user’s browser into sending an unwanted request to a site that trusts its cookies, such as changing an email address. CSRF tokens and SameSite cookies prevent it.
- Hashing vs encryptionHashing is a one-way function that turns data into a fixed-size digest that cannot be reversed — used for storing passwords (with slow, salted algorithms such as bcrypt). Encryption is two-way: data can be decrypted with the right key.
- JWT (JSON Web Token)A JSON Web Token is a signed token of three Base64 parts — header, payload and signature — used to prove who a user is on each API request without server-side sessions. Its payload is readable by anyone, so it must never contain secrets.
- Prompt injectionPrompt injection is an attack where text the AI reads — a document, web page or message — contains instructions that try to override the app’s rules. Defences include separating data from instructions, limiting tools and permissions, validating outputs and human approval.
- SQL injectionSQL injection is an attack where user input is inserted into a SQL query so that it changes the query’s meaning, letting attackers read or modify data. It is prevented by parameterised queries (prepared statements), never by string concatenation.