Glosario Programacion

Terminos usados en programación y areas a fines a la tecnología.

.NET

Algoritmo

Abstracción

Arreglos

Programación

Unidades de medida de datos

¿Qué es un lenguaje de programación? 

Abstracción
Es un principio fundamental en la programación que consiste en ocultar los detalles complejos y mostrar solo las características esenciales de un objeto o sistema. Esto permite a los desarrolladores trabajar con conceptos de alto nivel sin preocuparse por los detalles de implementación.

Adapter
Es un patrón de diseño estructural que permite que dos interfaces incompatibles trabajen juntas. Actúa como un puente entre dos componentes. Ejemplo: Un adaptador de corriente convierte un enchufe de un país para que funcione en otro. En código, un Adapter podría convertir datos de formato JSON a XML para que un sistema legacy los entienda.

Agile / Scrum / Kanban
Agile: Es una metodología de desarrollo de software que se centra en la entrega iterativa e incremental de productos, con un enfoque en la colaboración y la flexibilidad.

Scrum
Es un marco de trabajo dentro de Agile que se basa en sprints (iteraciones cortas) para entregar incrementos de producto. Incluye roles como Scrum Master, Product Owner y equipo de desarrollo.

Kanban
Es otra metodología Agile que se centra en la visualización del trabajo y la gestión del flujo de trabajo. Utiliza un tablero Kanban para rastrear el progreso de las tareas.

AJAX (Asynchronous JavaScript and XML)
Es un conjunto de técnicas que permiten a las aplicaciones web comunicarse con un servidor en segundo plano sin necesidad de recargar la página completa. Esto resulta en interfaces de usuario más dinámicas y responsivas. Hoy se usa más con JSON que con XML.

Algoritmo
Un algoritmo es un conjunto de instrucciones o pasos finitos y ordenados que se siguen para resolver un problema o realizar una tarea específica. Los algoritmos son fundamentales en la programación y la informática.

Análisis de Complejidad
Este análisis evalúa la cantidad de recursos computacionales (como tiempo de ejecución y memoria) que un algoritmo necesita en función del tamaño de la entrada. Se utiliza para evaluar la eficiencia de los algoritmos y se expresa generalmente en términos de notación Big O (O(n)).

Angular
Es un framework de desarrollo de código abierto basado en TypeScript, utilizado para construir aplicaciones web complejas de una sola página (Single Page Applications SPA). Proporciona una estructura organizada y herramientas para el desarrollo del lado del cliente.

Ansible
Es una poderosa herramienta de automatización de código abierto utilizada para la gestión de la configuración, el despliegue de aplicaciones y la orquestación de tareas. Se usa para configurar servidores, instalar software y coordinar tareas repetitivas de forma automática y remota.

API (Application Programming Interface)
Una API es un conjunto de definiciones y protocolos que permiten que diferentes componentes de software se comuniquen e intercambien información. Define los métodos y formatos de datos que las aplicaciones pueden usar para solicitar y compartir servicios.

API GraphQL
Es un entorno de ejecución para obtener los datos necesarios de forma precisa en la que haces una sola petición a un único punto de entrada, y puedes pedir exactamente los campos que necesitas, ni más ni menos. Fue desarrollado por Facebook.

API Key
Es una cadena de texto única que se usa como una contraseña para autenticar a un usuario o una aplicación que intenta conectarse a una API. Se utiliza para poder controlar y rastrear el uso de la API, detectar accesos no autorizados y evitar abusos y garantizar que solo los accesos con permiso puedan usar ciertos servicios o datos.

API RESTful
Es una interfaz que permite a las aplicaciones comunicarse entre sí utilizando el protocolo HTTP que sigue los principios de REST (Representational State Transfer). Utiliza métodos estándar de HTTP como GET, POST, PUT y DELETE para realizar operaciones sobre recursos identificados por URLs de manera estructurada y eficiente. Es muy usada por su simplicidad y compatibilidad con la web.

API-first
Es una metodología de desarrollo en la que se diseña y construye primero la API, antes que cualquier aplicación o interfaz de usuario. Esto asegura que la API sea clara, reutilizable y bien documentada desde el inicio facilitando al equipo de desarrolladores el trabajo en paralelo sobre la base del diseño de la API.

Árbol
En programación un árbol es una estructura de datos que organiza la información de manera jerárquica compuesta por nodos conectados donde cada nodo puede tener cero o varios nodos hijos. Se usa en algoritmos de búsqueda o representaciones de jerarquía como el DOM en HTML.

Argumento
Es un valor o variable que se pasa a una función o método cada vez que se invoca modificando su comportamiento o los datos con los que opera y pueden ser números, cadenas de texto u otro tipo de datos necesario para el procesamiento.

Array (Arreglo)
Es una estructura de datos que almacena una colección de elementos del mismo tipo en una posición ordenada y contigua en la memoria, accesibles mediante un índice, lo que permite un acceso rápido y eficiente a los datos.

Assembly
También llamado lenguaje ensamblador, es un lenguaje de programación de bajo nivel que se comunica directamente con el hardware de la computadora, su programación corresponde directamente a instrucciones de la CPU, lo que le da un control preciso sobre el hardware pero también implica una mayor complejidad para escribir y mantener.

Atomicidad
En bases de datos y sistemas concurrentes, es la propiedad que garantiza que una transacción se complete en su totalidad o no se realice en absoluto, sin estados intermedios visibles si la operación falla, garantizando la integridad de los datos. Si ocurre un error, los cambios se revierten para mantener la coherencia.

Atributo
Es una propiedad o característica de un objeto o una entidad en base de datos que describe su estado o valor, pueden ser diferentes tipos de datos como números, cadenas de texto o booleanos, etc. También se le conoce como variable de instancia o campo. En HTML/XML, se refiere a una propiedad adicional de una etiqueta que proporciona información extra.

Autenticación
Es el proceso de verificar la identidad de un usuario, aplicación o dispositivo antes de permitir el acceso. Generalmente se hace pidiendo credenciales como usuario y contraseña, tokens, biometría o certificados digitales para asegurar que solo usuarios legítimos accedan a los recursos protegidos.

Autorización
Es el proceso mediante el cual un sistema o aplicación determina los niveles de acceso de un usuario con la verificación de políticas de seguridad, roles asignados y listas de control de acceso (ACL) para determinar si se tiene permiso para realizar una acción específica, como leer, escribir o modificar datos. Los sistemas modernos suelen emplear modelos como RBAC (Control de Acceso Basado en Roles) o ABAC (Control de Acceso Basado en Atributos) para gestionar la autorización de manera eficiente.

AWS / Azure / Google Cloud
Son plataformas de computación en la nube también conocidas como “cloud computing” que ofrecen una amplia gama de servicios de infraestructura, como servidores, almacenamiento, inteligencia artificial y bases de datos, accesibles a través de internet permitiendo a empresas y desarrolladores construir aplicaciones sin tener que gestionar hardware físico.

BaaS (Backend as a Service)
Es un servicio en la nube que ofrece a desarrolladores herramientas y componentes prediseñados, permitiendo y escalables como autenticación de usuarios, almacenamiento en la nube, notificaciones push, integración con redes sociales y sincronización de datos entre dispositivos mediante APIs, sin tener que construir todo el backend desde cero. Ejemplos populares de BaaS incluyen Firebase (Google), Amplify (AWS) y Supabase.

Backend
Es la parte “oculta” de una aplicación que maneja la lógica de negocio, el procesamiento de datos, la autenticación y autorización de usuarios, y la comunicación con bases de datos y otros servicios externos. El backend recibe solicitudes del frontend (interfaz de usuario), procesa estas peticiones según reglas predefinidas, realiza operaciones en la base de datos y devuelve respuestas estructuradas.

Balanceador de carga (Load Balancer)
Su función principal es optimizar la utilización de recursos, maximizar el rendimiento, garantizar alta disponibilidad y evitar la sobrecarga de cualquier servidor individual.

Balanceo de carga
El balanceo de carga es el proceso técnico de repartir el trabajo entre varios servidores o recursos, optimizando el uso de capacidad y evitando cuellos de botella. Este proceso busca optimizar el uso de recursos, maximizar el rendimiento, reducir tiempos de respuesta y evitar sobrecargas en componentes individuales. Existen diversos algoritmos para implementar el balanceo, como Round Robin (distribución secuencial), Least Connection (envío a servidores con menos conexiones activas), IP Hash (distribución basada en la dirección IP del cliente) o ponderado (asignando diferentes capacidades a los servidores).

Base de datos
Sistema que almacena y organiza datos de forma estructurada para su consulta rápida. Las bases de datos están diseñadas para ofrecer un método eficaz de almacenar, actualizar, eliminar, buscar y analizar grandes volúmenes de datos mediante consultas estructuradas.

Base de datos relacional (SQL)
Es un tipo de base de datos que organiza la información en tablas con relaciones entre ellas, usando el lenguaje SQL para gestionar los datos. Ejemplos populares incluyen PostgreSQL, MySQL y SQL Server.

Batch Processing (Procesamiento por lotes)
El procesamiento por lotes es un método de ejecutar tareas automatizadas en grupos (lotes) sin la necesidad de interacción manual. Este método es especialmente útil para tareas como generación de informes periódicos, actualizaciones masivas de bases de datos, cálculos complejos, facturación mensual o análisis de datos que requieren uso intensivo de recursos.

Biblioteca o Librería (Library)
Es una colección de código preescrito (funciones, clases, etc.) que los programadores pueden utilizar en sus proyectos para realizar tareas comunes sin tener que escribirlas desde cero, ahorrando tiempo y esfuerzo.

Big Data
Se refiere a conjuntos de datos extremadamente grandes y complejos que requieren tecnologías y herramientas especializadas para procesarlos y analizarlos. Estos datos pueden provenir de diversas fuentes, como redes sociales, sensores, transacciones financieras, entre otros. Es clave para descubrir patrones y tomar decisiones informadas en empresas o investigaciones.

Big O
La notación Big O es una forma matemática de describir cómo escala un algoritmo en términos de tiempo de ejecución o espacio de memoria cuando aumenta el tamaño de los datos de entrada. Esta notación nos permite comparar la eficiencia de diferentes algoritmos sin preocuparnos por detalles de implementación específicos o capacidades de hardware.

Binario
Sistema numérico de base 2 que solo usa 0 y 1. Es fundamental en computación porque los dispositivos electrónicos trabajan con dos estados (apagado/encendido). Cada dígito binario se llama bit, y grupos de 8 bits forman un byte.

Bit
Un bit es la unidad más pequeña de información en computación y comunicaciones digitales. Proviene de la contracción de “binary digit” (dígito binario) y puede tener solo uno de dos valores: 0 o 1.

Blazor
Es un framework de Microsoft para el desarrollo de aplicaciones web interactivas utilizando C# en lugar de JavaScript. Permite crear interfaces modernas con tecnología .NET.

Blockchain
Es una tecnología de registro distribuido que almacena información en bloques enlazados criptográficamente, formando una cadena inmutable y cronológica. Cada bloque contiene un hash del bloque anterior, una marca de tiempo y datos de transacciones, lo que hace prácticamente imposible alterar la información sin modificar todos los bloques subsiguientes. Es conocido por su uso en criptomonedas como Bitcoin, pero también tiene aplicaciones en contratos inteligentes, seguimiento de activos y más.

Booleano
Un valor booleano es un tipo de dato lógico que solo puede tener uno de dos posibles valores: verdadero (true) o falso (false). Estos valores son fundamentales en la programación para el control de flujo y la toma de decisiones. Se utiliza en programación para representar condiciones lógicas y es fundamental en estructuras de control como condicionales (if) y bucles (while, for). Por ejemplo, una expresión como “5 > 3” devuelve un valor booleano verdadero.

Branch / Merge
En control de versiones (como Git), un branch es una copia del código donde puedes trabajar sin afectar la versión principal. Cuando terminas los cambios, haces un merge para unir ese trabajo con el código principal. Esto permite que varios desarrolladores colaboren sin interferir entre sí. Es esencial en desarrollo colaborativo.

Bucles (Loops)
Son estructuras de programación que permiten repetir un bloque de código varias veces hasta que se cumpla una condición específica.

Bucles / Ciclos (for, while)
Son tipos específicos de bucles. El ciclo for se usa cuando se conoce de antemano cuántas veces se repetirá; el ciclo while se repite mientras una condición sea verdadera.

Buffer
Un buffer es un área de memoria temporal usada para almacenar datos mientras se transfieren entre dos procesos o dispositivos. Esto permite mejorar el rendimiento y evitar pérdidas de datos por diferencias de velocidad entre dispositivos o programas. Por ejemplo cuando se descarga un archivo, los datos se almacenan en el buffer antes de ser procesados.

Bug
Un bug es un error o defecto en el código fuente de un programa de computadora que causa un comportamiento inesperado o incorrecto. Puede ser algo pequeño, como una mala visualización, o algo grave, como un fallo que bloquea el programa. Los desarrolladores trabajan para identificar y corregir los bugs para mejorar la calidad del software.

Build (Compilación)
Es el proceso de traducir el código fuente de un programa en código máquina que la computadora puede ejecutar directamente. Durante este proceso, un compilador traduce el código de alto nivel (como C#, Java, etc.) a código máquina o bytecode. Se verifican errores de sintaxis, se optimiza el código y se enlazan las diferentes partes del programa.

Builder
Es un patrón de diseño que se utiliza para crear objetos complejos paso a paso. En lugar de pasar todos los parámetros en un constructor, un builder permite configurar el objeto de manera flexible y legible. Esto es especialmente útil cuando un objeto puede tener muchas configuraciones opcionales. Por ejemplo, si estás creando un auto, un builder te permitiría especificar el color, el motor y otros detalles sin tener un constructor enorme.

C# (C sharp)
Es un lenguaje de programación moderno y orientado a objetos desarrollado por Microsoft. Se utiliza ampliamente para crear aplicaciones de escritorio y web en la plataforma .NET. C# es conocido por su sintaxis clara y su fuerte tipado, lo que ayuda a los desarrolladores a escribir código seguro y eficiente.

C++
Es un lenguaje de programación potente que extiende el lenguaje C añadiendo programación orientada a objetos. Ofrece control de bajo nivel sobre el hardware mientras proporciona abstracciones de alto nivel para facilitar el desarrollo. Es ampliamente utilizado en desarrollo de sistemas operativos, videojuegos, aplicaciones de alto rendimiento, sistemas embebidos y software donde la eficiencia y velocidad son críticas.

Cache
Es una memoria de acceso rápido que almacena datos usados frecuentemente para acelerar el rendimiento del sistema. Funciona bajo el principio de que los datos recientemente utilizados tienen alta probabilidad de ser requeridos nuevamente. En programación, también se usa para evitar cálculos repetidos. La cache puede estar en el procesador, disco o software.

Callback
Es una función que se pasa como argumento a otra función y se ejecuta después de un evento. Es un concepto fundamental en la programación asíncrona, donde una operación puede tardar tiempo en completarse, y el callback se invoca una vez que la operación ha terminado o un evento específico ha ocurrido.

Capa de negocio
La capa de negocio es una parte de la arquitectura de software donde se implementa la lógica principal de una aplicación, como reglas de negocio, validaciones y cálculos.

Capa de servicio
Componente de software que gestiona la comunicación entre la capa de negocio y otras partes del sistema, como la interfaz de usuario o APIs externas. Facilita la modularidad y escalabilidad.

Carga (Load)
Se refiere al proceso de transferir datos o programas desde un almacenamiento permanente (disco duro) hacia la memoria RAM para su ejecución o uso, en un ambiente web se refiere al tiempo que tarda una web o aplicación en cargar completamente todos sus recursos (imágenes, scripts, estilos, etc).

CI/CD
Continuous Integration/Continuous Deployment es una metodología de desarrollo de software que automatiza el proceso de construir, probar y desplegar cambios en el código. Esta práctica consiste en el desarrollo de software donde los cambios de código se integran y prueban automáticamente, permitiendo lanzamientos más rápidos y confiables.

Cifrado
Es el proceso de convertir datos en un formato ilegible para evitar el acceso no autorizado. Se utiliza en seguridad informática para proteger información sensible, empleando algoritmos como AES o RSA.

Clase (Class)
Es una estructura fundamental de la programación orientada a objetos que define un conjunto de atributos y métodos que representan un concepto o entidad, es una plantilla o molde que define las propiedades y comportamientos de un objeto. Permite organizar el código de forma modular y reutilizable.

CLI (Command Line Interface)
Interfaz de usuario basada en texto donde los usuarios interactúan con el sistema operativo o aplicaciones mediante comandos escritos, requiere conocer comandos específicos pero ofrece mayor control y eficiencia para tareas complejas. Es especialmente popular entre desarrolladores y administradores de sistemas por su precisión y capacidad de automatización. Terminal en macOS/Linux y Command Prompt en Windows.

Closure (Clausura)
Es una característica de programación donde una función tiene acceso a su propio ámbito, al ámbito de la función exterior y al ámbito global. Permite mantener el estado de las variables incluso después de que la función exterior haya terminado de ejecutarse.

CMS
Sistema de Gestión de Contenidos (Content Management System), es una aplicación que permite crear, editar, organizar y publicar contenido digital, como sitios web o blogs, sin necesidad de conocimientos técnicos avanzados de programación. Ejemplos comunes incluyen WordPress, Drupal y Joomla.

Código fuente (Source code)
El código fuente es el conjunto de instrucciones escritas por un programador en un lenguaje de programación de alto nivel para construir una aplicación o sistema. Este código debe ser compilado o interpretado para que una máquina lo ejecute. Es la base de cualquier software y se almacena en archivos editables. El código fuente representa toda la lógica y funcionalidad del programa en forma textual.

Código limpio (Clean Code)
Es una filosofía y conjunto de principios para escribir código que sea fácil de leer, entender y mantener por cualquier desarrollador. Implica escribir código que sea fácil de entender por otros desarrolladores (y por uno mismo en el futuro). Algunas características del código limpio incluyen nombres de variables descriptivos, funciones cortas y específicas, y una estructura lógica y consistente. Reduce bugs, facilita la colaboración en equipo y hace que las modificaciones futuras sean más sencillas.

Cola (Queue)
Una cola es una estructura de datos que sigue el principio FIFO (First In, First Out), es decir, el primero en entrar es el primero en salir. Son fundamentales en programación para manejar tareas que deben procesarse en orden de llegada, como sistemas de impresión, manejo de procesos en sistemas operativos, algoritmos de búsqueda BFS (Breadth-First Search), y gestión de requests en servidores web.

Commit
Representa una instantánea de un conjunto de cambios realizados en el código fuente de un proyecto. Registra estas modificaciones de manera atómica, creando un punto en el historial del proyecto al que se puede revertir o comparar. Cada commit incluye un mensaje descriptivo, un autor y una marca de tiempo, facilitando el seguimiento y la colaboración en equipos de desarrollo.

Compilador
Un compilador es un programa que traduce código fuente escrito en un lenguaje de programación de alto nivel a un lenguaje de bajo nivel, como el código máquina, para que pueda ser ejecutado por una computadora. Detecta errores de sintaxis y optimiza el código para una ejecución eficiente en el hardware del sistema.

Compresión de datos
La compresión de datos es un proceso que reduce el tamaño de un archivo o conjunto de datos, haciendo más eficiente su almacenamiento y transmisión. Esto se logra mediante algoritmos que eliminan la redundancia y representan la información de manera más compacta. La compresión puede ser con pérdida o sin pérdida, dependiendo de si se permite la pérdida de información original durante el proceso.

Computación en la nube
Es un paradigma tecnológico que permite el acceso a servicios informáticos a través de Internet (“la nube”), en lugar de poseer y mantener la infraestructura localmente. Provee recursos como servidores, almacenamiento, bases de datos, redes y software bajo demanda, generalmente con un modelo de pago por uso. Esto permite a los desarrolladores acceder a recursos informáticos escalables sin necesidad de mantener infraestructura física. Modelos comunes incluyen IaaS (AWS), PaaS (Google App Engine) y SaaS (Dropbox). Escala dinámicamente y reduce costos operativos.

Concurrency
La concurrencia se refiere a la capacidad de un programa para ejecutar múltiples tareas o procesos simultáneamente, mejorando la eficiencia y el rendimiento. Se logra con hilos (threads), async/await o event loops. Mejora la eficiencia y el rendimiento en entornos de programación.

Condicional
Es una estructura fundamental en cualquier lenguaje de programación que permite controlar el flujo de ejecución de un programa basándose en la evaluación de una expresión booleana. Las sentencias condicionales, como if, else if y else, o switch/case, permiten al código tomar decisiones: si una condición es verdadera, se ejecuta un bloque de código; si es falsa, se ejecuta otro o ninguno. Estas sentencias son fundamentales para controlar el flujo de un programa y tomar decisiones basadas en condiciones específicas.

Conjuntos
Es una estructura de datos que almacena elementos únicos sin orden específico, permitiendo operaciones como unión, intersección y diferencia. Los conjuntos son especialmente útiles para manejar colecciones de elementos sin duplicados y realizar operaciones de conjunto.

Constructor
Es un método especial dentro de una clase en la programación orientada a objetos (POO) que se invoca automáticamente cuando se crea una nueva instancia (objeto) de esa clase. Su propósito principal es inicializar el estado del objeto, asignando valores iniciales a sus atributos (variables de instancia) y realizando cualquier configuración necesaria para que el objeto esté listo para su uso. Los constructores suelen llevar el mismo nombre que la clase y pueden estar sobrecargados para aceptar diferentes parámetros.

Contenedor
Se refiere a una estructura de datos que almacena y organiza múltiples elementos, como listas, conjuntos o mapas, facilitando su gestión y acceso.

También puede referirse a contenedores de software donde una unidad de software empaquetada con su código, bibliotecas y configuraciones, ejecutándose de forma aislada y portable. Simplifica el despliegue en distintos entornos sin problemas de compatibilidad.

Contexto
Conjunto de información relevante dentro de un programa que determina el estado de ejecución. Puede incluir variables globales, entornos de función y elementos que afectan la interpretación del código en tiempo de ejecución, como los valores de las variables locales y globales, el “this” o “self” en POO, el estado del programa, la pila de llamadas, y los recursos disponibles. Comprender el contexto es crucial para depurar, entender el comportamiento del código y diseñar funciones que interactúen correctamente con su entorno.

Control de versiones (Version Control)
Es un sistema que permite gestionar los cambios realizados en el código fuente de un proyecto a lo largo del tiempo. Ayuda a colaborar entre varios programadores, ya que permite ver qué cambios se hicieron, por quién y cuándo. También facilita volver a versiones anteriores si algo sale mal.

CORS (Cross-Origin Resource Sharing)
Mecanismo de seguridad que permite o restringe solicitudes entre recursos de diferentes dominios (orígenes). Evita que una página web acceda a datos de otro sitio sin permiso explícito. Esto se logra mediante cabeceras HTTP especiales que el servidor envía para indicar si la solicitud de un origen diferente está permitida.

CRUD (Create, Read, Update, Delete)
Representa las cuatro operaciones básicas que se pueden realizar sobre datos en cualquier sistema de información persistente. Create se refiere a la creación de nuevos registros, Read a la consulta o lectura de información existente, Update a la modificación de datos ya almacenados, y Delete a la eliminación de registros.

CSS (Cascading Style Sheets)
Lenguaje utilizado para dar estilo y diseño a páginas web. Controla colores, fuentes, márgenes y otras propiedades visuales para mejorar la presentación de los elementos HTML.

Data Mining (Minería de datos)
La minería de datos es el proceso de descubrir patrones, tendencias y conocimientos útiles a partir de grandes conjuntos de datos utilizando técnicas estadísticas, matemáticas y de inteligencia artificial. Las técnicas incluyen clustering, clasificación, regresión, análisis de asociaciones y detección de anomalías. Es ampliamente utilizada en marketing, finanzas, medicina y comercio electrónico para tomar decisiones basadas en datos y predecir comportamientos futuros.

Data Science (Ciencia de datos)
Es un campo interdisciplinario que utiliza métodos, procesos, algoritmos y sistemas científicos para extraer conocimiento y perspectivas de datos estructurados y no estructurados. Combina técnicas de estadística, informática y conocimiento del dominio.

Dependencia (Dependency)
Es la relación en la que un programa o módulo requiere de otro componente, como una biblioteca o framework, para funcionar correctamente. Por ejemplo, una biblioteca externa que proporciona funciones específicas. Administrar bien las dependencias es esencial para mantener un código limpio y fácil de actualizar.

Depuración (Debugging)
Es el proceso sistemático de identificar, localizar y corregir errores o bugs en el código de software. Involucra técnicas como el uso de debuggers, puntos de interrupción, inspección de variables, análisis de logs y pruebas paso a paso del programa. Es una habilidad fundamental que requiere pensamiento lógico, paciencia y comprensión profunda del funcionamiento del código y el sistema.

Desarrollo ágil (Agile)
Es una metodología de gestión de proyectos de software que enfatiza la flexibilidad, colaboración y entrega incremental de valor. Se basa en iteraciones cortas llamadas sprints, donde los equipos desarrollan funcionalidades específicas y obtienen retroalimentación constante del cliente. Prioriza la adaptación al cambio sobre seguir un plan rígido, la colaboración sobre procesos estrictos, y el software funcionando sobre documentación exhaustiva.

Desbordamiento de pila (Stack Overflow)
Es un error en la ejecución de un programa que ocurre cuando la pila de llamadas de funciones supera su límite de memoria. Sucede comúnmente en recursión infinita o cuando se almacenan demasiadas variables en la pila, lo que provoca que el programa se bloquee o termine abruptamente.

Deserialización
Es el proceso de convertir datos que han sido almacenados o transmitidos en un formato específico (como JSON o XML) en objetos o estructuras de datos utilizables en un programa. Se usa frecuentemente en APIs y almacenamiento persistente.

Deuda técnica
Se refiere a las decisiones de diseño o implementación en el desarrollo de software que, aunque pueden acelerar la entrega inicial de un producto, generan problemas a largo plazo. Puede incrementar el costo y tiempo de mantenimiento futuro si no se aborda.

DevOps
Cultura y conjunto de prácticas que integran desarrollo de software (Dev) y operaciones de TI (Ops) para acelerar el ciclo de entrega. Promueve automatización (CI/CD), monitoreo y colaboración, mejorando eficiencia y calidad en despliegues.

Diagrama de flujo
Es una representación gráfica de un proceso o algoritmo utilizando símbolos estandarizados. Ayuda a visualizar la lógica de un programa antes de codificarlo. Se usa para identificar pasos, decisiones y posibles errores. Es una herramienta clave en el diseño de software y documentación.

Diccionarios
Es una estructura de datos que almacena pares de clave-valor. Permite acceder a valores mediante claves únicas, ofreciendo flexibilidad y eficiencia para organizar datos dinámicos, como en configuraciones o mapeos. Los diccionarios son mutables, lo que significa que se pueden agregar, eliminar o modificar elementos después de su creación.

Django
Framework web de alto nivel en Python que promueve el desarrollo rápido y el diseño limpio. Utiliza el patrón MVC (Modelo-Vista-Controlador), incluye ORM para bases de datos y es ideal para aplicaciones escalables y seguras. Django incluye características como autenticación, administración, APIs y más.

Docker
Plataforma de contenedores que empaqueta aplicaciones y sus dependencias en unidades aisladas y portables. Permite ejecutar software en cualquier entorno sin conflictos, garantizando consistencia entre desarrollo, testing y producción. Usa imágenes y contenedores ligeros vs. máquinas virtuales.

DOM (Document Object Model)
Es una interfaz de programación que representa la estructura de un documento HTML o XML como un árbol de nodos. Permite a los desarrolladores manipular el contenido, la estructura y el estilo de los documentos de manera dinámica mediante lenguajes como JavaScript, facilitando la creación de aplicaciones web interactivas.

Driver
Es un software que permite que el sistema operativo y las aplicaciones se comuniquen con hardware específico. Los drivers son esenciales para que los dispositivos, como impresoras o tarjetas gráficas, funcionen correctamente en un sistema, traduciendo las instrucciones del software en comandos que el hardware puede entender.

Edge Computing
Paradigma que procesa datos cerca de su fuente como en dispositivos IoT, sensores, etc. En lugar de enviarlos a la nube, esto reduce la latencia y ancho de banda, mejorando la eficiencia y la velocidad de respuesta, es muy útil en aplicaciones en tiempo real.

Editor de texto
Es una herramienta de software que permite a los programadores escribir y editar código fuente sin funcionalidades avanzadas de desarrollo como depuración o compilación. A diferencia de los procesadores de texto, los editores de texto están diseñados para manejar archivos de texto plano y suelen incluir características como resaltado de sintaxis, autocompletado y soporte para múltiples lenguajes de programación.

Eficiencia
Se refiere a la capacidad de un algoritmo o programa para utilizar los recursos disponibles de manera óptima, como la memoria, el procesador y el tiempo de ejecución. Un programa eficiente es aquel que puede resolver un problema de manera rápida y con un mínimo desperdicio de recursos. Se mide comúnmente mediante la notación Big O (O(n), O(log n), etc.). Es clave en aplicaciones de alto rendimiento.

Elemento
Unidad dentro de una estructura de datos, como un elemento en un array o un nodo en una lista enlazada. Cada uno contiene valores y, en algunos casos, referencias a otros elementos. También puede referirse a nodos en XML/HTML o ítems en una base de datos. Su manipulación (añadir, eliminar, modificar) es fundamental en algoritmos.

Encapsulamiento
El encapsulamiento es un principio de programación orientada a objetos que consiste en restringir el acceso a ciertos componentes de un objeto y exponer solo lo necesario a través de interfaces públicas. Esto ayuda a proteger el estado interno del objeto y a reducir la complejidad al ocultar detalles de implementación.

Encriptación (Cifrado)
Es el proceso de convertir información legible en un formato codificado que solo puede ser descifrado con una clave. En programación, se usa para proteger datos sensibles durante su almacenamiento o transmisión. Existen distintos métodos como AES o RSA. Es clave en la seguridad informática.

Endpoint
Es una dirección específica donde se puede acceder a un recurso o servicio. Los endpoints son puntos de comunicación en una API (Interfaz de Programación de Aplicaciones) que permiten a los clientes enviar solicitudes y recibir respuestas, facilitando la interacción entre diferentes sistemas.

Engine
Componente de software que ejecuta o gestiona procesos específicos, como un motor de base de datos (MySQL) o un motor de renderizado (como V8 en JavaScript). Procesa tareas críticas y optimiza el rendimiento. En programación, es el núcleo que impulsa una aplicación.

Ensamblador (Assembler)
Lenguaje de bajo nivel que traduce instrucciones mnemónicas en código máquina ejecutable por el procesador. Cada instrucción corresponde a una operación específica del hardware. Es usado en sistemas embebidos o para optimizar código crítico.

Entrada (Input)
Es cualquier dato que el usuario o sistema proporciona a un programa para que lo procese. Puede ser introducido mediante teclado, archivos, sensores, una red, API, pantalla táctil u otros dispositivos. Se maneja con funciones específicas según el lenguaje. La entrada es fundamental para la interacción con el usuario. La validación de entradas es crucial para evitar errores o vulnerabilidades como inyecciones SQL.

Error
Es una falla en el código que impide que un programa funcione correctamente, ya sea por bugs (errores de lógica), excepciones (datos inesperados) o problemas externos (falta de memoria). Puede ser de tipo sintáctico, lógico o de ejecución. Detectar y manejar errores es esencial para un software robusto. Existen herramientas como depuradores y excepciones para gestionarlos.

*serán explicadas y agregados nuevos términos

Loading