📚 Índice completo de clases

⬅️ Volver al programa · 🗺️ Roadmap · 🌐 Atlas

Programa secuencial de 176 clases en 12 partes. La numeración es global (001→…) y el orden importa: cada clase asume la anterior.

Estado: 176 de 176 clases construidas · núcleo de 10 lenguajes. Programa completo ✅.


Parte 0 — Pensamiento computacional y el método políglota · clases 001–014

📂 README de la parte

# Clase
✅ 001 Qué es programar y por qué comparar lenguajes: la tesis políglota
✅ 002 Las tres clases de diferencia: sintáctica, semántica y paradigmática
✅ 003 Problema, contexto, entradas, proceso y salidas
✅ 004 Descomposición y reconocimiento de patrones
✅ 005 Abstracción, restricciones y casos límite
✅ 006 Algoritmos: corrección y terminación
✅ 007 Pseudocódigo neutral: escribir sin lenguaje
✅ 008 Trazado manual y ejecución simbólica
✅ 009 Complejidad y eficiencia: intuición de coste
✅ 010 Legibilidad, estilo e idiomática
✅ 011 Anatomía de una ficha de transferencia y cómo estudiarla
✅ 012 casos.json y el verificador de equivalencia
✅ 013 El concepto en la familia: leer un lenguaje que no conoces
✅ 014 Cómo elegir lenguaje para un problema

Parte 1 — Atlas y genealogía de los lenguajes · clases 015–028

📂 README de la parte

# Clase
✅ 015 El árbol genealógico de los lenguajes: mapa general
✅ 016 Cómo nace y evoluciona un lenguaje: estándares, versiones y ecosistemas
✅ 017 Familia C y de las llaves: C, C++, Objective-C
✅ 018 Familia scripting dinámico: Python, Ruby, Perl, PHP, Lua
✅ 019 Familia JVM: Java, Kotlin, Scala, Groovy, Clojure
✅ 020 Familia .NET: C#, F#, VB.NET
✅ 021 Familia JavaScript y web: JS, TypeScript, Dart
✅ 022 Familia funcional tipada (ML): Haskell, OCaml, F# y la influencia en Rust
✅ 023 Familia Lisp: Scheme, Racket, Clojure, Emacs Lisp
✅ 024 Familia lógica y declarativa: SQL, Prolog, Datalog
✅ 025 Familia concurrente/actor: Erlang, Elixir y el CSP de Go
✅ 026 Familia de sistemas: C, C++, Rust, Zig
✅ 027 Familia array y científica: APL, R, Julia, Fortran, MATLAB
✅ 028 Lenguajes históricos y de nicho: COBOL, Fortran, Pascal, BASIC, Bash

Parte 2 — Herramientas, toolchains y anatomía de comandos · clases 029–040

📂 README de la parte

# Clase
✅ 029 Qué es un toolchain: del código fuente al programa que corre
✅ 030 Compilado vs. interpretado vs. transpilado vs. bytecode/VM
✅ 031 Anatomía de un comando: nombre, subcomando, flags, argumentos y esquema
✅ 032 Instalación y gestión de versiones (pyenv, nvm, rustup, SDKMAN, phpenv)
✅ 033 Ejecutar: python, node, tsx, java, dotnet, go run, rustc, cc, php, sqlite3
✅ 034 Compilar y construir: gcc/clang, cargo, go build, javac, dotnet build
✅ 035 Paquetes y dependencias: pip, pnpm, cargo, maven/gradle, nuget, go mod, composer
✅ 036 REPL e intérpretes interactivos por lenguaje
✅ 037 Formateadores y linters: black, prettier, gofmt, rustfmt, clang-format, php-cs-fixer
✅ 038 Pruebas desde la terminal: pytest, node --test, go test, cargo test, dotnet test, phpunit
✅ 039 Empaquetado y distribución: wheels, jars, binarios, contenedores
✅ 040 Variables de entorno, rutas y el PATH en Windows y Unix

Parte 3 — Valores, tipos y variables · clases 041–056

📂 README de la parte

# Clase
✅ 041 Literales, valores, variables y constantes
✅ 042 Declaración, asignación e inicialización
✅ 043 Tipos primitivos: enteros, reales, booleanos, caracteres
✅ 044 Enteros: tamaño, signo, desbordamiento y bases
✅ 045 Números reales: punto flotante, precisión y decimales
✅ 046 Booleanos y valores de verdad
✅ 047 Caracteres, texto y Unicode
✅ 048 Cadenas: representación, inmutabilidad e interpolación
✅ 049 Conversión de tipos: casting explícito vs. coerción implícita
✅ 050 Tipado estático vs. dinámico
✅ 051 Tipado fuerte vs. débil
✅ 052 Inferencia de tipos
✅ 053 Nulabilidad: null, nil, None, Option y valores ausentes
✅ 054 Mutabilidad e inmutabilidad
✅ 055 Operadores y expresiones: aritméticos, lógicos, de comparación y bit a bit
✅ 056 Entrada y salida básica: leer y escribir

Parte 4 — Control del programa · clases 057–072

📂 README de la parte

# Clase
✅ 057 Booleanos, condiciones y cortocircuito
✅ 058 Guardas y validación temprana
✅ 059 if / else y anidamiento
✅ 060 Expresiones condicionales: ternario e if como expresión
✅ 061 switch, case y fallthrough
✅ 062 Coincidencia de patrones: match / when
✅ 063 Iteración por condición: while y do-while
✅ 064 Iteración por rango: for clásico y for-range
✅ 065 Iteración por colección: for-each e iteradores
✅ 066 Iteradores y generadores perezosos (lazy)
✅ 067 Comprensiones de listas y colecciones
✅ 068 Funciones de orden superior: map, filter, reduce
✅ 069 Recursión y recursión de cola
✅ 070 Control de flujo: break, continue, return, goto
✅ 071 Manejo de errores I: excepciones (try/catch/finally)
✅ 072 Manejo de errores II: resultados y valores (Result/Either/error de Go)

Parte 5 — Funciones y modularidad · clases 073–088

📂 README de la parte

# Clase
✅ 073 Firma, parámetros, argumentos y retorno
✅ 074 Parámetros por defecto y opcionales
✅ 075 Argumentos nombrados y de palabra clave
✅ 076 Parámetros variádicos
✅ 077 Múltiples retornos y desestructuración
✅ 078 Genéricos y polimorfismo paramétrico
✅ 079 Paso por valor
✅ 080 Paso por referencia
✅ 081 Semántica de movimiento y préstamo (Rust)
✅ 082 Alcance (scope) y sombreado (shadowing)
✅ 083 Cierres (closures) y captura de variables
✅ 084 Funciones puras y efectos secundarios
✅ 085 Funciones de primera clase y como valores
✅ 086 Módulos, paquetes y espacios de nombres
✅ 087 Visibilidad, encapsulación y contratos (public/private)
✅ 088 Importar, exportar y organizar un proyecto

Parte 6 — Datos y estructuras · clases 089–106

📂 README de la parte

# Clase
✅ 089 Arreglos de tamaño fijo
✅ 090 Listas, vectores y arreglos dinámicos
✅ 091 Tuplas y registros posicionales
✅ 092 Rangos y secuencias
✅ 093 Cadenas como estructura de datos
✅ 094 Conjuntos (sets) y unicidad
✅ 095 Mapas / diccionarios / tablas hash
✅ 096 Pilas y colas
✅ 097 Árboles
✅ 098 Grafos
✅ 099 Registros, structs y clases
✅ 100 Enumeraciones y tipos algebraicos (ADT / sum types)
✅ 101 Igualdad vs. identidad
✅ 102 Copia superficial vs. profunda; referencia vs. valor
✅ 103 Propiedad y ciclo de vida de los datos
✅ 104 Archivos: leer y escribir texto y binario
✅ 105 JSON: serialización y deserialización
✅ 106 Otros formatos y persistencia: CSV, YAML, binarios, bases de datos

Parte 7 — Paradigmas · clases 107–122

📂 README de la parte

# Clase
✅ 107 Qué es un paradigma y por qué importa
✅ 108 Imperativo y estructurado
✅ 109 Procedimental y modular
✅ 110 Orientado a objetos: clases, objetos y estado
✅ 111 Herencia, composición y polimorfismo
✅ 112 Interfaces, traits y clases abstractas
✅ 113 OO basado en prototipos (JavaScript)
✅ 114 Funcional I: inmutabilidad y funciones puras
✅ 115 Funcional II: composición, currying y aplicación parcial
✅ 116 Funcional III: functores, mónadas y efectos (visión práctica)
✅ 117 Declarativo: consultas y transformación (SQL)
✅ 118 Lógico: reglas, hechos y unificación (Prolog)
✅ 119 Orientado a eventos y callbacks
✅ 120 Reactivo y flujos de datos (streams)
✅ 121 Concurrente: hilos, tareas y canales
✅ 122 Asíncrono: async/await y promesas

Parte 8 — Cómo funcionan los lenguajes · clases 123–138

📂 README de la parte

# Clase
✅ 123 Del código a la ejecución: fases de compilación
✅ 124 Compilador, intérprete y JIT
✅ 125 Bytecode y máquinas virtuales (JVM, CLR, V8)
✅ 126 AOT vs. JIT: costos y beneficios
✅ 127 La pila (stack) y el marco de llamada
✅ 128 El heap y la asignación dinámica
✅ 129 Referencias, apuntadores y direcciones
✅ 130 Gestión manual de memoria (C): malloc/free
✅ 131 Recolección de basura (GC)
✅ 132 RAII, propiedad y préstamos (Rust/C++)
✅ 133 Concurrencia: procesos, hilos y memoria compartida
✅ 134 Tareas, corrutinas y canales
✅ 135 Actores y paso de mensajes (modelo BEAM)
✅ 136 El modelo de memoria y las condiciones de carrera
✅ 137 Errores: de sintaxis, de tipos, de enlace y de ejecución
✅ 138 Depuración: cómo se diagnostica en cada runtime

Parte 9 — Ingeniería de software políglota · clases 139–154

📂 README de la parte

# Clase
✅ 139 Pruebas unitarias por lenguaje
✅ 140 Pruebas de integración y el verificador de equivalencia
✅ 141 Depuradores: gdb, lldb, pdb y los de IDE
✅ 142 Registro (logging) y observabilidad
✅ 143 Dependencias, versiones y lockfiles
✅ 144 Compilación reproducible y empaquetado
✅ 145 Git y control de versiones para proyectos políglotas
✅ 146 Revisión de código y estándares
✅ 147 Integración continua (CI) multi-lenguaje
✅ 148 Entrega y despliegue
✅ 149 Diseño y arquitectura comparada
✅ 150 Refactorización segura
✅ 151 Patrones de diseño comparados entre lenguajes
✅ 152 Rendimiento y perfilado (profiling)
✅ 153 Seguridad: entradas, memoria y dependencias
✅ 154 Mantenibilidad, documentación y deuda técnica

Parte 10 — Interoperabilidad y fronteras entre lenguajes · clases 155–164

📂 README de la parte

# Clase
✅ 155 Por qué los sistemas reales son políglotas
✅ 156 La FFI (Foreign Function Interface): llamar a C desde todos
✅ 157 ABI, enlace y convenciones de llamada
✅ 158 Enlaces (bindings) y wrappers
✅ 159 Serialización entre lenguajes: JSON, Protobuf, MessagePack
✅ 160 Contratos de API: REST, gRPC y esquemas
✅ 161 Procesos y comunicación: stdin/stdout, sockets, colas
✅ 162 WebAssembly como objetivo común
✅ 163 Incrustar un lenguaje en otro (Lua, Python embebido)
✅ 164 Elegir el lenguaje correcto para cada componente

Parte 11 — Proyecto integrador políglota · clases 165–176

📂 README de la parte

# Clase
✅ 165 El proyecto: un sistema con componentes en varios lenguajes
✅ 166 Diseño: responsabilidades y contratos entre componentes
✅ 167 Componente CLI (lenguaje de sistemas)
✅ 168 Componente de API/servicio (backend)
✅ 169 Componente web/frontend (JS/TS)
✅ 170 Componente de datos y consultas (SQL)
✅ 171 Componente de automatización/scripting
✅ 172 Persistencia y almacenamiento
✅ 173 Pruebas end-to-end del sistema completo
✅ 174 Empaquetado, contenedores y despliegue
✅ 175 Documentación y defensa de las decisiones de lenguaje
✅ 176 Cierre: retrospectiva y transferencia a nuevos lenguajes