C++

Programar en C++ de verdad, compilado con clang en el navegador: de las bases a la memoria, los objetos, la STL, los templates, los algoritmos de competencia y un videojuego propio.

C++20 · STL · Memoria · Algoritmos · Videojuegos · 289 aulas · 232 horas de práctica

El camino, en orden

  1. Fundamentos de programación — Qué es un programa, cómo piensa una computadora y cómo se razona un algoritmo, antes de tocar un lenguaje. 13 aulas
  2. C++ desde cero — El lenguaje de los videojuegos, los motores y las olimpíadas: compilado con clang de verdad, en tu navegador. 13 aulas
  3. Git y la terminal: el control de versiones por dentro — Commits, ramas, merges y remotos, construidos a mano para que dejen de dar miedo. 13 aulas
  4. Funciones — Dejar de repetir: parámetros, referencias, sobrecarga, recursión y programas que se diseñan de arriba hacia abajo. 13 aulas
  5. Arrays, strings y vectores — Guardar muchos datos juntos: arrays de C, std::string, std::vector, grillas y texto que se parsea. 14 aulas
  6. Punteros y memoria — Direcciones, punteros, la pila y el heap, new y delete, y cazar fugas: la memoria de C++ dibujada en vivo. 14 aulas
  7. Structs, enums y organizar el código — Agrupar datos, máquinas de estado, namespaces, headers, el preprocesador y constexpr. 12 aulas
  8. Clases y objetos — Tus propios tipos en C++: datos privados, constructores, destructores, invariantes y objetos que colaboran. 14 aulas
  9. RAII, copia y movimiento — Objetos dueños de memoria: el destructor que libera, copiar sin compartir, la regla de 3, de 5 y de 0, y mover en vez de copiar. 13 aulas
  10. Herencia y polimorfismo — Clases que heredan de otras, métodos virtuales, clases abstractas, slicing y la vtable por dentro. 13 aulas
  11. Sobrecarga de operadores — Tus tipos con + - * < == << [] y (): vectores 2D, comparaciones con <=>, funtores, fracciones, dinero exacto y física de videojuego. 12 aulas
  12. Contenedores de la STL — vector a fondo, deque, list, stack, queue, priority_queue, set, map, unordered_map e iteradores: cada contenedor dibujado en vivo. 14 aulas
  13. Algoritmos y lambdas — Dejar de escribir loops a mano: sort, find, count, lambdas con capturas, comparadores, erase-remove, std::function, búsqueda binaria y ranges. 13 aulas
  14. Smart pointers — Quién libera cada caja: unique_ptr, make_unique y mover, shared_ptr y su contador, weak_ptr para romper ciclos, observadores, deleters propios y un árbol de escena sin un solo delete. 12 aulas
  15. Templates — Código que sirve para cualquier tipo: funciones y clases genéricas, parámetros que son números, especialización, constexpr, concepts, templates variádicos y type traits. 13 aulas
  16. Errores y robustez — Cuando algo sale mal: códigos de error, excepciones, RAII al desenrollar la pila, garantías, optional, variant, expected, assert y tu propio framework de tests. 12 aulas
  17. Estructuras de datos a mano — Listas enlazadas, pilas y colas, tablas hash, árboles, BST, heaps, grafos y tries, construidos nodo por nodo y dibujados en vivo. 14 aulas
  18. Algoritmos y programación competitiva — Complejidad con contadores, búsqueda binaria, two pointers, sumas prefijas, merge y quick sort, backtracking, BFS, DFS, Dijkstra, programación dinámica y greedy, con el formato de la OIA y la ICPC. 15 aulas
  19. Bits, bytes y bajo nivel — Binario y hexadecimal, operadores de bits, máscaras, overflow, punto flotante, endianness, padding y un display de 7 segmentos: la máquina por dentro, dibujada en una placa. 13 aulas
  20. Rendimiento — Medir con contadores y no con el reloj: copias invisibles, reserve, caché y localidad, AoS o SoA, string_view y span, el contenedor justo, lo que hace el compilador y perfilar. 12 aulas
  21. Videojuegos en C++ — El game loop, dt, el teclado, colisiones, estados, entidades, ECS, pools, tilemaps, IA y animación: hacés Asteroides y un plataformero que se juegan con el teclado. 14 aulas
  22. Herramientas, concurrencia y proyecto final — Cómo compila C++, el linker, Make y CMake, bibliotecas, sanitizers, depurar, hilos y mutex, las Core Guidelines y tu proyecto final. 13 aulas