decodigo.com
Código que funciona, explicado paso a paso
Ejemplos de Java, Python, Go, Rust y otros lenguajes que puedes copiar y adaptar, además de noticias de tecnología: espacio, robótica e inteligencia artificial.
Herramienta gratuita
Validador de CFDI
Revisa el sello, los catálogos y los totales de tu factura CFDI 4.0 y obtén su PDF. Sin registro.
¿Sabías que…?
El 9 de septiembre de 1947, el equipo del ordenador Harvard Mark II encontró una polilla atrapada en un relé y la pegó en su cuaderno con una nota: «primer caso real de bug encontrado».
Descubre más datos curiosos del desarrollo de software →Últimas noticias
Ver todas →
¿Es rentable Anthropic? Lo que dicen las cuentas de su formulario para salir a bolsa
Según las normas contables, Anthropic perdió $80,748 millones USD en el primer semestre de 2026, pero casi todo es un apunte contable. Su negocio ya…

DeepSeek y Moonshot habrían entrenado sus nuevos modelos con respuestas de GPT-6 Astra, según The Information
Según The Information, Kimi K3.1 Pro y DeepSeek V4.1-Flash se apoyaron en respuestas de GPT-6 Astra, el modelo de OpenAI, para entrenarse. Es una acusación…

GitHub Universe 2026: Copilot Fusion elige el modelo por ti y Octoverse calcula que el 40 % de las pull requests ya empieza con un agente
En GitHub Universe 2026 llegaron Copilot Fusion, que reparte cada tarea entre varios modelos, y una revisión de código más exhaustiva. El informe Octoverse dice…

Google presenta Gemini 4 Carbon, su modelo más potente: encuentra y parchea vulnerabilidades, pero de momento solo lo usarán equipos de ciberdefensa
Gemini 4 Carbon llega dos semanas después de Argon y encabeza el índice de Artificial Analysis. Su fuerte es la ciberseguridad: encuentra el 88.2 %…

La IA llega a la ingeniería inversa de piezas y herramentales: del escaneo 3D al modelo CAD editable en minutos
ScanRuler, Oscar, Backflip y QUICKSURFACE prometen convertir el escaneo 3D de una pieza o de un molde en un modelo CAD paramétrico con ayuda de…

ScanRuler: la herramienta gratuita de CNC Kitchen pone a un agente de IA a convertir escaneos 3D en modelos CAD editables
Stefan Hermann, de CNC Kitchen, añadió a ScanRuler un espacio de ingeniería inversa que un agente de IA como Claude Code o Codex maneja por…

REA 6.8: la herramienta de ingeniería inversa para agentes de IA crea entornos de prueba a partir de una app y abre juegos de GameCube, Godot y Unity
REA 6.8.0 deja crear, a partir de capturas de una aplicación, un entorno local donde un agente de IA puede practicar sin tocar la app…

Microsoft y Linux: de llamarlo «cáncer» a construir su propia distribución, la historia de una reconciliación
En 2001, Steve Ballmer llamó a Linux «un cáncer». En 2026, más de dos tercios de la nube de Microsoft funciona con Linux, Windows trae…

Betelgeuse ya se recuperó de su gran apagón, y su compañera Siwarha le deforma la atmósfera al pasar
Nuevas imágenes de radio del VLA y de ALMA muestran que la atmósfera de Betelgeuse se ha recuperado en gran parte del Gran Oscurecimiento de…

El «Starlink ruso» pierde satélites antes de empezar: uno de los Rassvet ya cayó y otro reentrará en horas
Rassvet, la constelación con la que Rusia quiere competir con Starlink, perdió el 24 de octubre uno de los satélites lanzados en julio, y otro…

China se fija para 2030 una red nacional de blockchain y el 6G comercial «en el momento oportuno»: lo que dice su nuevo plan digital
El plan de informatización de China para 2026-2030 promete una red nacional de blockchain casi terminada, una red de comunicaciones «tierra-mar-aire-espacio» y el arranque del…

Raspberry Pi y sus competidoras: doce placas comparadas, de la Orange Pi a la Jetson, y lo que cuestan en 2026
La Raspberry Pi ya no está sola: Orange Pi, Radxa, Banana Pi, Hardkernel, NVIDIA, BeagleBoard, Libre Computer y Arduino venden placas con más potencia, IA…
Cursos y guías
Para leer en orden, no para consultarAprende Python
Entornos virtuales desde el primer día, tipos, colecciones, comprensiones, funciones, dataclasses, excepciones y pathlib, hasta un paquete instalable con pruebas.
Abrir →Aprende Java
Del primer programa —que en Java 25 ocupa tres líneas— a un proyecto con paquetes, pruebas y un jar: records, interfaces selladas, colecciones, excepciones y streams.
Abrir →Aprende Rust
Propiedad, préstamos y tiempos de vida explicados desde cero, con el compilador como profesor. Cada ejemplo se compiló antes de publicarlo, incluidos los que no compilan.
Abrir →Aprende Go
De «hola mundo» a goroutines y canales. Lecciones cortas, pensadas para leerse en orden, con esquemas y la salida real de cada programa.
Abrir →Aprende JavaScript
Del primer programa a los módulos y las pruebas: tipos y conversiones, closures, copias que no copian, this, promesas y el bucle de eventos. Con esquemas y todo ejecutado con Node.js 24.
Abrir →Aprende TypeScript
Para quien ya sabe JavaScript: qué revisa el compilador, uniones y estrechamiento, genéricos, tipos avanzados y un proyecto real migrado paso a paso. Con el mensaje real de tsc en cada error.
Abrir →Aprende SQL
Desde el primer SELECT hasta JOIN, subconsultas, índices medidos y funciones de ventana, con una base de ejemplo y un editor en el navegador. Cada consulta, ejecutada de verdad.
Abrir →Aprende C#
Desde cero con .NET 10: dotnet run con un solo archivo, tipos y null, colecciones, clases y records, LINQ, async y un proyecto con pruebas. Con el mensaje real del compilador en cada error.
Abrir →Aprende PHP
Desde cero con PHP 8.5: tipos y strict_types, arrays, clases y enums, Composer y pruebas, formularios, sesiones y bases de datos, y un proyecto. Con la seguridad en cada lección.
Abrir →Aprende C
Desde cero con C23 y GCC 15: tipos y desbordamientos, punteros, struct y memoria dinámica, archivos y make, y un proyecto con pruebas. Con los sanitizadores y la seguridad en cada lección.
Abrir →Comandos de Linux
Las órdenes que se usan a diario, agrupadas por lo que quieres hacer y no por orden alfabético, con la salida de verdad de cada una.
Abrir →Qué es SSH
Conectarte a otro equipo, entrar con clave en lugar de contraseña, copiar archivos y abrir túneles, con los errores más comunes resueltos.
Abrir →Órdenes de Git
El trabajo diario con Git explicado a partir de las cuatro zonas por las que pasa un cambio. Incluye cómo deshacer cada cosa.
Abrir →Aprende Docker
Imágenes y contenedores, el Dockerfile a fondo, volúmenes, Compose y cómo promover la misma imagen de QA a producción.
Abrir →Kubernetes y Docker
En qué se diferencia de Docker y cómo trabajan juntos, con un clúster de pruebas real: desplegar, escalar, actualizar sin cortes y deshacer.
Abrir →REA con tu agente de IA
Pon a Claude Code, Codex o Cursor a desarmar programas: instalación, primeros análisis y cómo mantenerlo al día.
Abrir →Ghidra, paso a paso
Instalar el descompilador de la NSA, abrir un programa compilado y entender lo que reconstruye, con capturas reales.
Abrir →Redes básicas
Direcciones IP y el /24, puertos, TCP y UDP, 127.0.0.1 frente a 0.0.0.0, y cómo comparte tu router una sola IP con NAT.
Abrir →Qué es el DNS
Cómo un nombre se convierte en una dirección IP: el viaje de una consulta, los registros, la caché y los errores típicos, con dig.
Abrir →Los métodos HTTP
GET, POST, PUT y DELETE, cómo es una petición por dentro y qué significa cada código de respuesta, con ejemplos en curl.
Abrir →HTTPS por dentro
Del clic al candado: el apretón de manos de TLS 1.3, cómo se acuerda una clave sin enviarla y qué demuestra un certificado.
Abrir →Certificados de confianza
Cómo decide tu navegador en qué certificados confiar: autoridades, registros públicos y la lista que llega a tu equipo.
Abrir →Qué es la AGI
La inteligencia artificial general: en qué se diferencia de la IA de hoy, sus niveles, cómo se mide y cuándo podría llegar.
Abrir →¿Atacaron tu WordPress?
Encuentra los registros del servidor, cuenta quién te manda peticiones y descubre si alguien entró, con órdenes probadas.
Abrir →Qué es MCP
El estándar para conectar asistentes de IA con tus datos y herramientas: cómo funciona y cómo conectar un servidor.
Abrir →Qué es descompilar
Qué se pierde al compilar y qué herramientas sirven en cada lenguaje, con el mismo programa descompilado en siete.
Abrir →Cómo se bloquea una web
Sigue en una animación el viaje de una consulta DNS y mira cómo la bloquean un resolvedor, tu proveedor o un juez.
Abrir →Seguridad en PHP
Inyección SQL, XSS, CSRF, subidas, deserialización y más: el patrón que hay que evitar, la forma segura y cómo encontrarlo en tu código.
Abrir →Logs y configuración
Qué es un log y qué es un archivo de configuración, y cuáles usan Java, Spring, Python, Django, Node, PHP, Laravel, .NET, Go, Rust y Rails.
Abrir →Cómo empezar con COBOL
Instalar GnuCOBOL en Windows, macOS y Linux, el primer programa, las columnas, PIC, leer un archivo y los errores típicos al compilar.
Abrir →jadx-headless-mcp
Qué archivo descargar (el -all.jar), cómo comprobar que es el bueno y cómo usarlo con REA o con Claude Code para analizar una app de Android.
Abrir →Crear una app con IA
Para quien no sabe programar: claves a la vista, bases de datos abiertas, facturas disparadas y paquetes inventados, y cómo evitarlos.
Abrir →Seguridad en C
Desbordamientos de búfer, uso tras liberar, enteros, cadenas de formato y más: el patrón que hay que evitar, cómo lo detectan los sanitizadores y la forma segura.
Abrir →Pon a prueba lo que sabes
Corrección al instante y explicación de cada respuestaTest de Python
Entornos virtuales, tipos, comprensiones, dataclasses, excepciones y pathlib: ¿qué imprime cada fragmento?
Hacer el test →Test de Java
Records, interfaces selladas, colecciones y streams en Java 25. Cada respuesta se comprobó compilando el código.
Hacer el test →Test de Rust
Propiedad, préstamos y tiempos de vida: adivina qué compila y qué no antes de que te lo diga el compilador.
Hacer el test →Test de Go
Slices, mapas, interfaces, errores, goroutines y canales, con la salida real de cada programa.
Hacer el test →Test de JavaScript
Conversiones, ==, closures, copias, this y el orden del bucle de eventos: ¿qué imprime cada fragmento?
Hacer el test →Test de TypeScript
Veinticuatro fragmentos de código y una sola pregunta: ¿los acepta tsc en modo estricto? Con el mensaje real del compilador.
Hacer el test →Test de SQL
Veinticuatro consultas sobre la base de una tienda y cuatro resultados posibles para cada una. Con la explicación de cada respuesta.
Hacer el test →Test de C#
Veinticuatro fragmentos de C#: ¿compilan y qué escriben? Con tu nota por lección y el mensaje real del compilador de .NET 10.
Hacer el test →Test de PHP
Un test de 24 preguntas de opción múltiple sobre el curso de PHP de decodigo.com, con la nota, los aciertos por lección y la explicación de cada respuesta.
Hacer el test →Test de C
Un test de 24 preguntas de opción múltiple sobre el curso de C de decodigo.com, con la nota, los aciertos por lección y la explicación de cada respuesta.
Hacer el test →Ejemplos de código
173 ejemplos listos para copiarJava
- Argumentos de la línea de órdenes
- Peticiones HTTP: GET y POST
- Leer y escribir CSV
- Fechas y horas
- Ordenar y buscar en listas
- Configuración con variables de entorno
- Tareas en paralelo con hilos virtuales
- Medir el rendimiento
- Base de datos SQLite
- Un servidor web sin dependencias
- Una herramienta CLI completa
- Crear archivo de texto
- Leer una archivo de texto
- Crear un archivo XML
- Obtener información de un archivo
- Leer archivo XML
- Leer un archivo XML con SAX Parser
- Crear un PDF con Apache FOP
- Crear archivo Excel con Apache POI
- Leer archivo Excel con Apache POI
- Conexión a Base de Datos con JDBC
- Extraer archivos de un ZIP
- Crear archivos ZIP
- Copiar archivo
- Renombrar un archivo
- Crear un directorio o carpeta
- Listar y Filtrar Archivos con FileFilter
- Borrar un archivo
- Json con Google Gson
- reCAPTCHAv2
- FileUtils de Apache Commons-IO
- Crear una Interfaz Gráfica con JavaFX
- Visualizar Imagen en JavaFX
- Codificación y Decodificación en Base64
- Expresiones regulares
Python
- Argumentos con argparse
- Peticiones HTTP sin dependencias
- Leer y escribir CSV
- Leer y escribir JSON
- Fechas y horas con datetime
- Ordenar y buscar en listas
- Configuración con variables de entorno
- Hilos, procesos y asyncio
- Medir el rendimiento
- Base de datos SQLite
- Una herramienta CLI completa
- Crear un Web Server
- Cliente de FTP
- Crear archivo de texto
- Leer un archivo de texto
- Crear un archivo XML
- Obtener información de un archivo
- Leer archivo XML
- Crear un PDF con ReportLab
- Crear un archivo Excel
- Leer un archivo Excel
- Conexión a base de datos MariaDB
- Extraer archivos de un ZIP
- Crear archivo ZIP
- Copiar archivo
- Verificar si existen carpetas y archivos
- Crear directorios o carpetas
- Renombrar un archivo
- Borrar un archivo
- Crear Una Ventana o Interfaz Gráfica GUI
- Crear una interfaz con PySimpleGUI
- Expresiones Regulares
- Detección de rostros con OpenCV
- Mapeo de rostros con Dlib
- Conexión a base de datos PostgreSQL
Golang
- Hola Mundo
- Crear archivo de texto
- Leer archivo de texto
- Argumentos de la línea de órdenes
- Peticiones HTTP: GET y POST
- Leer y escribir CSV
- Fechas y horas
- Expresiones regulares
- Copiar, renombrar y borrar archivos
- Crear y listar directorios
- Información de un archivo
- Crear y extraer un ZIP
- Ordenar y buscar en slices
- Configuración con variables de entorno
- Grupo de trabajadores en paralelo
- Medir el rendimiento con benchmarks
- Base de datos SQLite
- Una herramienta CLI completa
- Convertir un struct a JSON
- Leer un archivo XML
- Crear un archivo XML
- Crear un servidor web
- Conectar con MariaDB
Rust
- Crear y escribir un archivo de texto
- Leer un archivo de texto
- Leer y escribir JSON
- Argumentos de la línea de órdenes
- Peticiones HTTP: GET y POST
- Leer y escribir CSV
- Fechas y horas
- Expresiones regulares
- Copiar, renombrar y borrar archivos
- Crear y listar directorios
- Información de un archivo
- Crear y extraer un ZIP
- Leer y escribir XML
- Base de datos SQLite
- Paralelizar un bucle con rayon
- Servidor web con rutas y JSON
- Redimensionar imágenes por lotes
- Medir el rendimiento
- Una herramienta de línea de órdenes completa
JavaScript
- Leer y escribir archivos de texto (Node.js)
- Leer y escribir JSON
- Argumentos de la línea de órdenes en Node.js
- Peticiones HTTP con fetch: GET, POST y errores
- Un servidor web, sin frameworks
- Fechas y horas: Date e Intl
- Expresiones regulares
- Ordenar y buscar en arrays de JavaScript
- Copiar, renombrar y borrar archivos y carpetas
- La etiqueta script
- Modificar la página: el DOM
- Eventos: clics, formularios y delegación
- Guardar datos en el navegador con localStorage
- Dibujar con canvas: formas, texto y animación
TypeScript
- Uniones discriminadas: estados sin errores imposibles
- Genéricos: funciones, restricciones y clases
- Tipos utilitarios: Partial, Pick, Omit y Record
- enum y sus alternativas
- Validar la respuesta de fetch con Zod
- Leer JSON con tipos
- Errores como valores: el tipo Result
- tsconfig.json explicado
- Un servidor HTTP sin frameworks
- Argumentos de línea de órdenes con parseArgs
- Leer y escribir archivos de texto
- Eventos del DOM: querySelector y addEventListener
SQL
- Los N primeros de cada grupo
- Totales acumulados y medias móviles
- Tabla dinámica: filas a columnas
- Fechas: agrupar por mes y contar días
- Buscar y borrar duplicados
- Insertar o actualizar (upsert)
- Paginación: OFFSET frente a cursor
- Jerarquías con WITH RECURSIVE
- JSON en SQL
- Importar un CSV
- SQLite desde Python
- SQLite desde Node.js
C#
- Leer y escribir JSON con System.Text.Json
- Leer y escribir CSV
- Fechas y horas: DateTime, DateOnly y zonas horarias
- Expresiones regulares
- Ordenar y buscar en listas con LINQ
- Peticiones HTTP con HttpClient
- Un servidor web mínimo con ASP.NET Core
- Base de datos SQLite
- Argumentos de la línea de órdenes
- Configuración con variables de entorno
- Tareas en paralelo con Task y Parallel
- Crear un archivo de texto
- Leer un archivo de texto
- Crear, copiar y borrar archivos
- Renombrar un archivo
- Borrar un archivo o una carpeta
- Crear un directorio
- Crear y extraer un archivo ZIP
- Crear un archivo XML
- Leer un archivo XML
PHP
- Leer y escribir JSON
- Leer y escribir CSV
- Fechas y horas con DateTimeImmutable
- Expresiones regulares
- Leer un archivo XML
- Base de datos SQLite con PDO
- Peticiones HTTP con cURL
- Una API REST mínima
- Un inicio de sesión seguro
- Subir archivos de forma segura
- Argumentos de la línea de órdenes
- Configuración con variables de entorno
C
- Leer un archivo línea a línea
- Leer y escribir CSV
- Cadenas: trim, split y unir
- Fechas y horas
- Ordenar y buscar con qsort y bsearch
- Una lista enlazada
- Pila y cola con un búfer circular
- Números aleatorios
- Argumentos de la línea de órdenes
- Variables de entorno
- Procesos: fork y exec
- Hilos con pthreads
Herramientas en línea
Ver todas →Formateador de JSON
Encuentra el error con su línea y columna, te dice cómo arreglarlo y formatea sin cambiar los números.
Abrir →Decodificador de JWT
Lee la cabecera y el contenido, dice si el token caducó y verifica la firma en tu navegador.
Abrir →Conversor de fecha Unix
De timestamp a fecha y hora en cualquier zona horaria, y al revés, en segundos o milisegundos.
Abrir →Traductor de cron
Explica en español cuándo se ejecuta una expresión cron y calcula sus próximas ejecuciones.
Abrir →Calculadora de subredes
Red, máscara, difusión y rango de equipos de una dirección IPv4 o IPv6, y su división en subredes.
Abrir →Validador de RFC
Estructura, fecha y dígito verificador de un RFC de persona física o moral, y RFC de prueba.
Abrir →Validador de CURP
Fecha, sexo, entidad y dígito verificador, posición por posición, y CURP de prueba.
Abrir →Validador de CLABE
Dígito de control y banco, según la lista de participantes de SPEI de Banxico.
Abrir →Validador de NSS
Dígito verificador del número de seguridad social del IMSS y qué significa cada cifra.
Abrir →Calculadora de IVA
Suma o desglosa el IVA del 16 % o del 8 % y calcula las retenciones de una factura.
Abrir →Cantidad con letra
Convierte un importe a texto para facturas y cheques: MIL PESOS 00/100 M.N.
Abrir →Imagen a ASCII
Convierte una foto en arte con caracteres, en blanco y negro o en color, sin subirla a ningún servidor.
Abrir →


