42

Formación intensiva en ingeniería informática

42 Common Core — Cursus

42 Madrid

2025 — PresenteMadridRepositorio

Resumen

Educación técnica intensiva peer-to-peer en programación de sistemas, algoritmos, arquitectura de software y ciencias de la computación. Sin profesores, sin clases: aprendizaje colaborativo 100% basado en proyectos.

Sobre el centro

42 es una escuela de programación fundada en París con presencia mundial. Su metodología revolucionaria elimina las clases magistrales y apuesta por el aprendizaje entre pares y la resolución de proyectos reales y retadores. La sede de Madrid cuenta con recursos técnicos de primer nivel abiertos 24/7.

Objetivos de la formación

  • Dominar programación en C y C++ desde los fundamentos hasta nivel avanzado.
  • Comprender profundamente la gestión de memoria, punteros y estructuras de datos.
  • Implementar algoritmos clásicos y resolver problemas computacionales complejos.
  • Desarrollar autonomía, perseverancia y capacidad de investigación.
  • Colaborar en proyectos técnicos complejos con otros programadores.
  • Comprender el funcionamiento interno de sistemas operativos y procesos.

Competencias desarrolladas

Programación en C a bajo nivelProgramación orientada a objetos en C++Algoritmos y estructuras de datosGestión manual de memoriaSistemas operativos y procesosRedes y protocolos de comunicaciónPeer review y evaluación técnicaResolución de problemas complejosAutodidactismo y aprendizaje continuo

Tecnologías

C (C89/C99)C++98/11Bash / Shell scriptingMake / MakefileOpenGL / MLXSockets (POSIX)Threads (pthreads)

Herramientas

GDB (depuración)Valgrind (memory leaks)GitNorminette (linter 42)Linux / macOSSSHVim / Neovim

Metodologías

Peer-to-peer learningProject-based learningPeer evaluation (evaluaciones entre pares)Blackhole system (gestión del tiempo)TDD básico en proyectos críticosPair programming en proyectos colaborativos

Módulos y materias

Libft

Reimplementación de la librería estándar de C desde cero

ft_printf

Implementación del printf con variadic functions

get_next_line

Lectura de ficheros línea a línea con file descriptors

Born2beroot

Administración de sistemas Linux: usuarios, sudo, firewall, SSH

so_long / fdf

Gráficos 2D con la librería MLX (mini libX)

push_swap

Algoritmo de ordenación óptimo con dos pilas

pipex

Reimplementación de pipes y redirecciones de Shell

minishell

Shell funcional con builtins, variables y señales en C

philosophers

Concurrencia, hilos, mutexes y el problema de los filósofos

cub3D

Motor gráfico 3D tipo raycasting inspirado en Wolfenstein 3D

CPP Modules (00-09)

Programación orientada a objetos y patrones en C++

ft_irc

Servidor IRC completo con sockets, clientes y canales

Proyectos realizados

cub3D

Motor gráfico 3D tipo raycasting en C con renderización en tiempo real. Implementación completa de perspectiva, colisiones, texturas y sprites inspirada en Wolfenstein 3D.

CMLXRaycastingMatemáticas 3D

ft_irc

Servidor IRC (Internet Relay Chat) en C++ con soporte para múltiples clientes simultáneos, canales, operadores, mensajes directos y todos los comandos del protocolo IRC.

C++Sockets POSIXMultiplexing I/OProtocolo IRC

minishell

Shell funcional en C con soporte para builtins, variables de entorno, redirecciones, pipes y gestión de señales. Proyecto colaborativo de alto nivel técnico.

CPOSIXFork/execLex/parsing

philosophers

Solución al problema de los filósofos comensales implementando concurrencia con pthreads y mutexes, sin deadlocks ni race conditions.

Cpthreadsmutexessemáforos

Conocimientos adquiridos

  • Arquitectura de computadores y representación de datos en memoria
  • Gestión manual de memoria: malloc, free, y detección de leaks
  • Sistemas de procesos: fork, exec, wait, signals
  • Programación concurrente: hilos, mutexes, sincronización
  • Programación de red: sockets TCP/UDP, select/poll
  • Principios SOLID y patrones de diseño en C++
  • Optimización de algoritmos y análisis de complejidad

Aplicaciones prácticas

  • Desarrollo de software de sistemas embebidos y de bajo nivel
  • Optimización de rendimiento en aplicaciones críticas
  • Diseño de protocolos de red y servidores concurrentes
  • Contribución a proyectos open source en C/C++

Logros destacados

  • Superación del proceso de selección (La Piscine) entre cientos de candidatos
  • Proyectos cub3D y ft_irc validados con nota máxima
  • Evaluador activo con más de 50 peer reviews realizadas

Repositorio completo

Todos los proyectos del Cursus en GitHub