De Cero Absoluto a C++ Moderno — Fundamentos de Grado Profesional (C++17 Base · Evolución C++20)
🌐 Portal Web · 📜 Syllabus Oficial · 📥 Descargar PDF · 💬 Discord Code Lab · 🏛️ Arquitectura · 📋 Backlog
La mayoría de cursos tradicionales de C++ cometen dos errores formativos: enseñan C++ arcaico de hace 25 años (punteros crudos obligatorios para todo, printf, arreglos estilo C y using namespace std;) o asumen experiencia previa avanzada en hardware y compiladores.
LearningCpp rompe ambos paradigmas:
- 🛡️ C++ Moderno desde el Día 1: Sintaxis segura con
std::string,{}inicialización uniforme,std::vector,constexpr,std::unique_ptr(RAII) y algoritmos estándar de la STL. - 🪜 Nivel Cero Absoluto: Diseñado para estudiantes sin conocimientos previos de memoria RAM ni compilación.
| Pilar | Principio Técnico | Beneficio Formativo |
|---|---|---|
| 🎯 1. Principio de la Escalera | Progresión estrictamente incremental | Cada lección se construye únicamente sobre lo enseñado antes. Cero cajas negras. |
| 🐞 2. Metodología Break-First | Diagnóstico intencional de fallos | Experimenta el fallo real (Buffer Overflow, Undefined Behavior, Slicing) antes de aprender la solución. |
| 🧠 3. Modelos Mentales de RAM | Arquitectura y hardware real | Visualiza exactamente qué ocurre en la memoria física (Stack vs Heap, direcciones 0x..., VTable y RAII). |
| 🌉 4. Scaffolding & Fading | De la intuición a la industria | Analogías físicas iniciales que se desvanecen de inmediato hacia la terminología profesional de ingeniería. |
📖 1. Teoría & Hardware ➔ 🧪 2. Laboratorio Guiado ➔ 🐞 3. Demo de Bug ➔ 🏋️ 4. Reto Práctico ➔ 📝 5. Cheatsheet
- Teoría (
theory/LXX_*.md): Explicación exhaustiva con animaciones visuales Manim y modelos de memoria física. - Laboratorio Guiado (
lab/LXX_*.cpp): Código de exploración comentado paso a paso para compilar a mano en consola. - Demo de Bug (
lab/demos/DXX_*.cpp): Trampas reales del lenguaje aisladas para experimentar fallos en vivo. - Reto Práctico (
exercise/EXX_*/): Reto con historia (lore), código conTODOsy su carpetasolution/. - Hoja de Repaso (
summary/ModuleXX_Cheatsheet.md): Resumen de consulta técnica ultra-resumido.
Accede a la plataforma web interactiva del curso online o de manera offline:
- 🚀 Sitio Web Oficial en Vivo: 👉 minilux0.github.io/LearningCpp
- 📖 Explorador Interactivo del Temario: Navega entre las 6 fases y 117 lecciones con búsqueda instantánea (Ctrl+K).
- 🎬 Galería de Animaciones Manim: Visualiza los modelos de memoria RAM física (Stack vs Heap, VTable, RAII).
- 💻 Showcase de C++17 Idiomático: Ejemplos directos de inicialización uniforme,
std::vectorystd::unique_ptr. - 💡 Uso Offline: Haz doble clic en
web/index.htmldesde tu explorador de archivos.
| Fase | # | Módulo | Lecc. | Eje Conceptual Clave | Proyecto Integrador | Estado |
|---|---|---|---|---|---|---|
| Fase 1: Fundamentos | 01 | Getting Started | 7 | Compilación g++, cout/cin, streams, namespaces |
Terminal Interactiva | ✅ |
| 02 | Fundamental Types | 7 | Tipado estático, {} inicialización, casting explícito |
Split the Bill Calculator | ✅ | |
| 03 | Scope & Control Flow | 8 | Ámbitos en Stack, if/switch, bucles, prevención UB |
Cajero / Taberna RPG | ✅ | |
| Fase 2: Funciones & Textos | 04 | Functions | 8 | Paso por valor, aislamiento, RNG moderno <random> |
Generador Atributos RPG | ✅ |
| 05 | Constants & Strings | 6 | Inmutabilidad constexpr, std::string, string_view |
Generador de Claves | ✅ | |
| Fase 3: Colecciones | 06 | Arrays & Vectors | 9 | std::vector, límites seguros .at(), multi-archivo |
Registro Calificaciones | 🔄 |
| 07 | Compound Types | 7 | struct, enum class, Agregados C++17 (Mirada C++20) |
Bestiario RPG V1 | 🔄 | |
| Fase 4: Memoria Real | 08 | References & Addresses | 8 | Direcciones &, paso por referencia const &, alias |
Bestiario V2 (Zero-Copy) | 🔄 |
| 09 | Dynamic Memory | 9 | Heap, punteros observadores, unique_ptr, move, RAII |
Bestiario V3 (Heap RAII) | 🔄 | |
| Fase 5: POO Moderna | 10 | Classes & Encapsulation | 10 | Encapsulamiento m_, constructores, operadores <</== |
Bestiario V4 (Modular) | 🔄 |
| 11 | Inheritance | 7 | Herencia : public, constructores derivados, slicing |
Jerarquía del Bestiario | 🔄 | |
| 12 | Polymorphism | 8 | virtual, VTable, override, interfaces puras |
El Coliseo (Game Loop) | 🔄 | |
| Fase 6: Resiliencia & Especialización | 13 | Error Handling | 7 | Stack Unwinding, excepciones de dominio, std::optional |
Motor Mazmorras Resiliente | 🔄 |
| 14 | Templates & Lambdas | 8 | Polimorfismo estático, templates .hpp, if constexpr |
Pipeline Genérico Eventos | 🔄 | |
| 15 | STL Algorithms & Pipelines | 8 | Algoritmos STL, Erase-Remove, iteradores, Capstone Final | El Motor RPG Definitivo | 🔄 |
Leyenda: ✅ Módulo completo e implementado · 🔄 Módulo en desarrollo activo.
git clone https://github.com/MiniLux0/LearningCpp.git
cd LearningCppAsegúrate de contar con un compilador moderno (GCC 13+, Clang 16+ o MSVC 2022):
g++ --version# Entra al laboratorio del Módulo 01
cd 01_GettingStarted/lab
# Compila con el estándar moderno
g++ -std=c++17 L02_TuPrimerPrograma.cpp -o app
# Ejecuta tu binario
./app # En Linux/macOS
.\app.exe # En WindowsCada módulo sigue estrictamente una estructura predecible y uniforme:
XX_NombreDelModulo/
├── README.md ← Índice general del módulo y objetivos
├── theory/ ← Lecciones teóricas en Markdown
│ ├── LXX_Nombre.md
│ └── assets/ ← Animaciones visuales Manim optimizadas (GIFs)
├── lab/ ← Laboratorios guiados en código C++
│ ├── LXX_Nombre.cpp
│ └── demos/ ← Demos de bugs intencionales aislados
│ └── DXX_NombreBug.cpp
├── exercise/ ← Retos prácticos con lore y desafíos
│ ├── README.md ← Índice de retos del módulo
│ └── EXX_NombreDelReto/
│ ├── README.md ← Misión, historia y objetivos del reto
│ ├── EXX_Nombre.cpp ← Reto con TODOs a resolver
│ └── solution/ ← Solución oficial verificada
│ └── EXX_Nombre.cpp
└── summary/
└── ModuleXX_Cheatsheet.md ← Hoja de repaso técnico para consulta rápida
- 👥 Comunidad en Discord: Resuelve dudas, comparte tu progreso y debate sobre C++ Moderno en Discord Code Lab.
- 🤝 Contribuciones: Si encuentras una errata o deseas proponer un nuevo ejercicio, consulta
docs/ARCHITECTURE.mdy abre un Pull Request.
Un curso interactivo de C++ Moderno desde Cero Absoluto hasta Fundamentos de Grado Profesional.