C++
Rendimiento, memoria y motores de IA
Aprende C++ moderno desde el primer programa hasta templates, memoria, STL, Eigen y bindings con Python. Entiende qué ocurre debajo de cada abstracción y por qué es el lenguaje del alto rendimiento.
Fundamentos de C++
Compilador, estructura de un programa, tipos y operadores.
- 01 ¿Qué es C++? Compilador y primer programa Del código fuente al ejecutable: qué hace el compilador y cómo escribir tu primer programa
- 02 Estructura de un programa, cout y tipos Anatomía de un archivo .cpp, entrada y salida por consola, y los tipos fundamentales
- 03 Variables, const, auto y operadores Declarar, inicializar y combinar valores sin sorpresas de tipo
Estructuras de control
if, else if, switch y los tres bucles clásicos.
Funciones
Declaración, paso de argumentos, sobrecarga y recursión.
Memoria y punteros
Stack, heap, direcciones, RAII y punteros inteligentes.
- 08 Memoria, stack, heap y punteros Qué guarda realmente una variable y cómo apuntar a una dirección
- 09 Referencias, new/delete y fugas de memoria El alias que no puede ser nulo y el precio de reservar memoria a mano
- 10 RAII y punteros inteligentes Deja que el destructor libere por ti: unique_ptr, shared_ptr y weak_ptr
Estructuras de datos
Arrays, vector, string, map, set, iteradores y algoritmos.
- 11 Arrays, std::vector y std::string Del bloque de tamaño fijo al contenedor que crece y se libera solo
- 12 std::map, set, pilas y colas Elegir el contenedor correcto según el orden, la búsqueda y la complejidad
- 13 Iteradores y algoritmos STL Recorrer contenedores con begin/end y delegar la lógica en <algorithm>
Programación orientada a objetos
Clases, herencia, polimorfismo, regla de cinco y templates.
- 14 Clases, constructores y encapsulamiento Agrupar datos y comportamiento sin dejar que cualquiera rompa las reglas
- 15 Herencia, virtual y polimorfismo Una interfaz, muchas implementaciones y la decisión que se toma en tiempo de ejecución
- 16 Regla de 0/3/5 y sobrecarga de operadores Controlar copia, movimiento y destrucción para que un recurso tenga un solo dueño
- 17 Templates y programación genérica Escribir una función o una clase una vez y que sirva para muchos tipos
C++ moderno
Lambdas, move semantics, optional, excepciones e hilos.
- 18 Lambdas, range-for y C++ moderno Funciones anónimas, captura de variables y las comodidades que cambiaron C++
- 19 Move semantics, optional y variant Transferir recursos sin copiarlos y representar valores que pueden faltar o cambiar de tipo
- 20 Excepciones y std::thread Informar de errores sin códigos de retorno y ejecutar trabajo en paralelo sin corromper datos
C++ para alto rendimiento
Complejidad, cache, profiling, paralelismo y SIMD.
C++ para Inteligencia Artificial
Eigen, implementación de modelos desde cero y pybind11.
- 23 Eigen: álgebra lineal en C++ Matrices, productos, descomposiciones y sistemas lineales con una biblioteca de verdad
- 24 Machine Learning desde cero en C++ Regresión lineal con gradiente descendente, sin bibliotecas y con las cuentas a la vista
- 25 Integración con Python y pybind11 Exponer C++ como módulo de Python, compartir arrays de NumPy y saber cuándo vale la pena
Proyectos reales
Un motor matricial y un servidor de inferencia.