Tutoriales de programación
Aprende un lenguaje de programación, un patrón de diseño o un algoritmo en una página. Cada tutorial responde primero a la pregunta y luego muestra código que funciona, los errores habituales y las referencias oficiales.
Lenguajes de programación
- 6 min de lecturaPythonSintaxis, tipos, control de flujo, funciones, colecciones, errores y archivos
- 6 min de lecturaJavaScriptVariables, tipos, funciones, arrays, objetos, promesas y async/await en una página
- 6 min de lecturaTypeScriptTipos, interfaces, uniones, narrowing, genéricos y manejo de errores en una página
- 7 min de lecturaJavaTipos, clases, records, colecciones, excepciones y pattern matching en una página
- 7 min de lecturaCTipos, funciones, arrays, cadenas, punteros, malloc/free y manejo de errores en una página
- 8 min de lecturaC++Tipos, clases, contenedores STL, lambdas, RAII, punteros inteligentes y excepciones
- 7 min de lecturaC#Tipos, clases, records, colecciones, LINQ, async/await y excepciones en una página
- 7 min de lecturaGoTipos, slices, maps, structs, interfaces, goroutines, canales y errores en una página
- 7 min de lecturaRustOwnership, borrowing, structs, enums, match, colecciones y Result en una página
- 6 min de lecturaPHPVariables, arrays, funciones, clases, enums, excepciones y un endpoint JSON en una página
- 6 min de lecturaRubyTipos, métodos, arrays, hashes, bloques, clases, módulos y excepciones en una página
- 7 min de lecturaSwiftTipos, opcionales, closures, colecciones, structs, enums, protocolos y errores
- 8 min de lecturaKotlinNull safety, control de flujo, funciones, data classes y corrutinas en una página
- 8 min de lecturaDartNull safety, funciones, colecciones, clases y async/await para Flutter
- 7 min de lecturaScalaSintaxis de Scala 3, pattern matching, colecciones, case classes y Option en una página
- 7 min de lecturaRVectores, data frames, funciones, estadística y gráficos en R en una página
- 8 min de lecturaSQLSELECT, JOIN, GROUP BY, CTE, transacciones y PostgreSQL vs MySQL vs SQLite
- 8 min de lecturaBashScripts de shell, variables, comillas, bucles, funciones, pipes y set -euo pipefail
- 7 min de lecturaPowerShellCmdlets, pipeline de objetos, variables, funciones, hashtables y try/catch
- 8 min de lecturaLuaVariables, tablas, funciones, metatablas y pcall en Lua en una página
- 8 min de lecturaPerlEscalares, arrays, hashes, subrutinas, expresiones regulares y errores en Perl
- 8 min de lecturaHaskellFunciones puras, tipos, pattern matching, listas, Maybe e IO en Haskell
- 8 min de lecturaElixirPattern matching, pipes, Enum, procesos y manejo de errores con {:ok, value}
- 8 min de lecturaErlangPattern matching, recursión, procesos, OTP y manejo de errores let-it-crash
- 7 min de lecturaClojureSintaxis, colecciones inmutables, funciones, macros, atoms y errores en una página
- 7 min de lecturaF#Tipos, records, uniones, pattern matching, pipelines y Result en una página
- 7 min de lecturaOCamlTipos, records, variantes, pattern matching, módulos y errores en una página
- 6 min de lecturaJuliaTipos, arrays, broadcasting, funciones, multiple dispatch y errores en una página
- 8 min de lecturaZigTipos, slices, opcionales, error unions, comptime, defer y allocators en una página
- 7 min de lecturaFortranSintaxis moderna, tipos, bucles, procedimientos, módulos, arrays e iostat en una página
- 7 min de lecturaCOBOLDivisiones, datos PIC, IF/EVALUATE, bucles PERFORM, tablas, archivos y errores
- 10 min de lecturaAssembly (x86-64)Registros, instrucciones, bucles, memoria, syscalls, llamadas x86-64 NASM y sintaxis AT&T
- 7 min de lecturaVisual Basic .NETSintaxis de VB.NET, tipos, bucles, funciones, colecciones, clases, LINQ y VBA
- 7 min de lecturaObjective-CMensajes, clases, propiedades, colecciones de Foundation, bloques, ARC y NSError
- 7 min de lecturaMATLABMatrices, índices, bucles, funciones, structs, cells, errores, gráficos y Octave
Patrones de diseño
- 8 min de lecturaPatrones de diseñoQué son los patrones de diseño, los 23 patrones GoF por categoría y cómo elegir
- 7 min de lecturaPrincipios SOLIDLos cinco principios de diseño SOLID, cada uno con un ejemplo antes/después en TypeScript
- 6 min de lecturaPatrón SingletonUna sola instancia: ejemplo en TypeScript, variante asíncrona, trampas y alternativas
- 5 min de lecturaPatrón Factory MethodDeja que las subclases elijan qué objeto crear: ejemplo en TypeScript y cuándo usarlo
- 5 min de lecturaPatrón Abstract FactoryCrea familias de objetos relacionados sin nombrar sus clases concretas
- 5 min de lecturaPatrón BuilderConstruye objetos complejos paso a paso con una API fluida, más el rol Director
- 5 min de lecturaPatrón PrototypeCrea objetos clonando instancias: clone() en TypeScript, copias profundas y superficiales
- 5 min de lecturaPatrón AdapterHaz que interfaces incompatibles trabajen juntas: ejemplo, adapter de objeto y de clase
- 5 min de lecturaPatrón BridgeSepara una abstracción de su implementación para que varíen de forma independiente
- 5 min de lecturaPatrón CompositeTrata objetos sueltos y árboles de objetos por igual: ejemplo de sistema de archivos
- 5 min de lecturaPatrón DecoratorAñade comportamiento a objetos en ejecución envolviéndolos: decoradores de clase y función
- 5 min de lecturaPatrón FacadeDa a un subsistema complejo un único punto de entrada simple: ejemplo de pago
- 5 min de lecturaPatrón FlyweightComparte estado intrínseco entre muchos objetos para ahorrar memoria,
- 6 min de lecturaPatrón ProxyControla el acceso a un objeto con proxies de caché, perezosos, de protección y remotos
- 6 min de lecturaPatrón Chain of ResponsibilityPasa una petición por una cadena de manejadores hasta que uno la atiende, y middleware
- 5 min de lecturaPatrón CommandConvierte peticiones en objetos para encolar, registrar, deshacer y rehacer en TypeScript
- 6 min de lecturaPatrón InterpreterModela un lenguaje pequeño con clases y evalúa árboles de expresiones en TypeScript
- 5 min de lecturaPatrón IteratorRecorre colecciones sin exponer su almacenamiento, con Symbol.iterator y generadores
- 5 min de lecturaPatrón MediatorCoordina componentes mediante un objeto central en lugar de referencias directas
- 6 min de lecturaPatrón MementoGuarda y restaura el estado de un objeto sin exponer su interior: deshacer y checkpoints
- 5 min de lecturaPatrón ObserverNotifica a los suscriptores cuando cambia el sujeto, con código TypeScript tipado
- 6 min de lecturaPatrón StateCambia el comportamiento de un objeto según su estado con clases de estado, no con switch
- 5 min de lecturaPatrón StrategyIntercambia algoritmos en tiempo de ejecución, con funciones o clases en TypeScript
- 5 min de lecturaPatrón Template MethodFija los pasos de un algoritmo en la clase base y deja los detalles a las subclases
- 6 min de lecturaPatrón VisitorAñade operaciones a una jerarquía con double dispatch, y la alternativa con tipos unión
Estructuras de datos
- 6 min de lecturaLista enlazadaListas enlazadas simples y dobles: insertar, borrar, invertir, detectar ciclos y coste
- 5 min de lecturaPila y colaPilas LIFO y colas FIFO en Python: list, deque, emparejar paréntesis, BFS y complejidad
- 6 min de lecturaTabla hashFunciones hash, buckets, colisiones, factor de carga y redimensionado, con código Python
- 6 min de lecturaÁrbol binario de búsquedaRegla de orden del BST, buscar, insertar y borrar en Python, equilibrado y complejidad
- 6 min de lecturaRecorrido de árboles binariosPreorden, inorden, postorden y por niveles, con código Python recursivo e iterativo
- 6 min de lecturaMontículo binarioPropiedad del montículo, sift up/down, heapify, colas de prioridad y heapq de Python
- 5 min de lecturaTrie (árbol de prefijos)Árbol de prefijos: insertar, buscar, starts-with y autocompletado en Python, y complejidad
- 6 min de lecturaUnion-find (conjuntos disjuntos)Conjuntos disjuntos: find, union, compresión de caminos, unión por rango y tamaño
- 6 min de lecturaCaché LRUCaché del menos usado recientemente con hash map y lista doble, OrderedDict, lru_cache
Algoritmos
- 6 min de lecturaNotación Big OComplejidad temporal y espacial, clases habituales y cómo leerlas a partir del código
- 6 min de lecturaRecursiónCasos base, pila de llamadas, memoización y límites de recursión en Python
- 6 min de lecturaBúsqueda binariaCómo la búsqueda binaria divide un rango ordenado, Python, bisect, variantes y trampas
- 7 min de lecturaDos punteros y ventana deslizantePatrones de extremos opuestos, rápido-lento y ventana deslizante con Python y trazas
- 5 min de lecturaBubble sort (ordenamiento de burbuja)Cómo bubble sort intercambia vecinos, traza pasada a pasada, código Python y complejidad
- 5 min de lecturaSelection sort (ordenamiento por selección)Cómo selection sort elige el mínimo, traza paso a paso, código Python y estabilidad
- 5 min de lecturaInsertion sort (ordenamiento por inserción)Cómo insertion sort desplaza elementos a su sitio, traza, Python, estabilidad y mejor caso
- 6 min de lecturaMerge sort (ordenamiento por mezcla)Merge sort de divide y vencerás: traza, Python, paso de mezcla, estabilidad y complejidad
- 6 min de lecturaQuicksort (ordenamiento rápido)Pivotes, traza de la partición de Lomuto, Python, peor caso, estabilidad y quickselect
- 6 min de lecturaHeapsort (ordenamiento por montículo)Max-heaps, sift-down, traza paso a paso, código Python, heapq y complejidad
- 6 min de lecturaCounting sort (ordenamiento por conteo)Counting sort lineal para claves enteras pequeñas: traza, Python estable, complejidad
- 6 min de lecturaRadix sort (ordenamiento por residuos)Radix sort LSD y MSD: traza dígito a dígito, código Python, estabilidad y complejidad
- 6 min de lecturaBúsqueda en anchura (BFS)BFS con una cola: ejemplo trazado, código Python, caminos más cortos y coste O(V + E)
- 6 min de lecturaBúsqueda en profundidad (DFS)DFS recursivo e iterativo en Python, ejemplo trazado, detección de ciclos y coste O(V + E)
- 6 min de lecturaAlgoritmo de DijkstraCaminos más cortos con cola de prioridad: ejemplo, código Python con heapq y complejidad
- 6 min de lecturaAlgoritmo de Bellman-FordCaminos más cortos con pesos negativos, detección de ciclos negativos y código Python
- 6 min de lecturaAlgoritmo de Floyd-WarshallCaminos más cortos entre todos los pares: matriz, Python, reconstrucción de caminos, O(V³)
- 6 min de lecturaBúsqueda A*Búsqueda de caminos heurística con f = g + h: heurísticas admisibles, cuadrícula, Python
- 6 min de lecturaOrdenación topológicaOrdena tareas por dependencias: algoritmo de Kahn, DFS, graphlib y detección de ciclos
- 6 min de lecturaÁrbol de expansión mínimaAlgoritmos de Kruskal y Prim: ejemplo trazado, código Python, union-find y montículos
- 6 min de lecturaProgramación dinámicaMemoización vs tabulación, cambio de monedas y LCS trazados, código Python y complejidad
- 6 min de lecturaAlgoritmos voracesLa mejor elección local en cada paso: interval scheduling, código Python, contraejemplos
- 6 min de lecturaBacktracking (vuelta atrás)Elegir, explorar, deshacer: N-Queens trazado, subconjuntos, permutaciones y poda en Python
- 5 min de lecturaBúsqueda de cadenas KMPKnuth-Morris-Pratt: función de prefijos, búsqueda trazada, código Python y coste O(n + m)
- 7 min de lecturaManipulación de bitsOperadores bit a bit, trucos de un solo bit, conteo de bits y bitmasks
Los tutoriales de lenguajes empiezan por instalar las herramientas e imprimir Hello, world, y siguen con funciones, colecciones, manejo de errores y un pequeño programa completo. Las páginas de patrones explican el problema que resuelve cada patrón de la Banda de los Cuatro, con un ejemplo en TypeScript y cuándo no usarlo. Las de estructuras de datos y algoritmos recorren un ejemplo paso a paso, dan código en Python e indican la complejidad en tiempo y espacio.
Los ejemplos de código son breves y funcionan tal cual, y cada página enlaza a la documentación del lenguaje, el estándar o la fuente original con que se comprobó.
Preguntas frecuentes
¿Qué lenguaje de programación conviene aprender primero?
Para la mayoría, Python o JavaScript: tienen una sintaxis sencilla, comunidades enormes y funcionan en todas partes. Elige JavaScript para sitios web y Python para datos, automatización y programación general.
¿Necesito instalar algo para seguir los tutoriales?
Cada tutorial de lenguaje empieza explicando cómo instalar las herramientas oficiales y ejecutar tu primer programa. Las páginas de patrones y algoritmos usan TypeScript y Python, que puedes ejecutar en tu equipo o en cualquier entorno en línea.
¿Son gratis estos tutoriales?
Sí. Todos se leen gratis y sin cuenta, y los ejemplos de código se pueden reutilizar en tus proyectos.
¿Qué diferencia hay entre estructuras de datos y algoritmos?
Una estructura de datos es una forma de guardar datos, como un array, una tabla hash o un árbol. Un algoritmo es una secuencia de pasos que resuelve un problema, como ordenar o hallar el camino más corto, y su velocidad suele depender de la estructura de datos que usa.