Este repositorio contiene todos los proyectos realizados durante mi Piscina en 42 Madrid y el trabajo posterior para completar el currículo.
La Piscine es un proceso de selección e inmersión de 4 semanas en el que se aprende C desde cero, gestión de Shell y resolución de problemas bajo presión. Este repositorio incluye desde los scripts básicos de Unix hasta algoritmos complejos de búsqueda y gestión de memoria.
El contenido se divide en módulos diarios (C y Shell), proyectos grupales de fin de semana (Rushes) y el proyecto final (BSQ).
Fundamentos de la línea de comandos de Unix, permisos, usuarios, scripts básicos y comandos avanzados de búsqueda y filtrado (grep, find, sed).
La progresión en el lenguaje C, siguiendo estrictamente la Norminette:
- C 00 - C 01: Conceptos básicos, tipos de datos y punteros.
- C 02 - C 03: Manipulación de strings y recreación de funciones de la
libc. - C 04 - C 05: Conversión de bases, recursividad y funciones matemáticas.
- C 06: Gestión de argumentos del programa (
argc,argv). - C 07 - C 09 (Completados en casa): Asignación dinámica de memoria (
malloc), estructuras, macros y creación de librerías mediante Makefiles.
Proyectos intensos realizados durante los fines de semana en equipos aleatorios:
- Rush 00: Generación de patrones de rectángulos basados en coordenadas.
- Rush 01: Resolución del rompecabezas de los "Rascacielos" (Skyscrapers) mediante lógica y backtracking.
- Rush 02: Conversor de números a palabras utilizando diccionarios externos y parsing de archivos.
El proyecto final individual/en pareja. El objetivo es encontrar el cuadrado más grande posible en un mapa lleno de obstáculos.
- Reto: Optimización de algoritmos para procesar mapas de gran tamaño en milisegundos.
- Gestión: Lectura de archivos, manejo de errores de formato y gestión eficiente de la memoria.
Todos los proyectos de C han sido realizados bajo las siguientes restricciones:
- Norminette: Un estándar de código estricto (máximo 25 líneas por función, no más de 5 funciones por archivo, etc.).
- Funciones Prohibidas: Solo se permiten funciones autorizadas específicamente para cada ejercicio (normalmente
write,mallocyfree). Cualquier otra función de la librería estándar está prohibida. - Compilación: Flags estrictos:
-Wall -Wextra -Werror.
La Piscine no fue solo aprender C; fue aprender a aprender de los demás y a no rendirse ante el "Segfault". Los módulos del C00 al C06 fueron el fuego de la selección, mientras que el C07, C08 y C09 representan mi compromiso por terminar lo empezado y consolidar los conceptos de memoria dinámica y arquitectura de proyectos antes de entrar oficialmente en el Cursus.
$> ./bsq map.txt
....oooo....
....oooo....
....oooo....
....oooo....
............