RoadMap C

Nivel Principiante:
Introducción
  • Conceptos Básicos:

    • Sintaxis básica de C: variables, tipos de datos, operadores.
    • Estructuras de control: if-else, switch, bucles (for, while).
    • Funciones y paso de parámetros.
    • Entrada y salida estándar (printf, scanf).
  • Estructuras de Datos Fundamentales:

    • Arreglos unidimensionales y multidimensionales.
    • Cadenas de caracteres y manipulación básica (strlen, strcpy, etc.).
    • Uso básico de punteros y memoria estática.
  • Programación Modular:

    • Definición y uso de funciones.
    • Creación y uso de bibliotecas estáticas (#include, extern).
    • Organización de código en múltiples archivos.
  • Gestión de Memoria Dinámica:

    • Uso de malloc, calloc, realloc y free.
    • Manejo de errores y verificación de punteros nulos.
    • Liberación de memoria y prevención de fugas de memoria.
  • Práctica y Ejercicios:

    • Implementación de programas simples como calculadoras, conversores de unidades, gestores de listas, etc.
    • Resolución de problemas básicos de matemáticas, cadenas y arreglos.
Nivel Intermedio:
Explorando Conceptos
  • Estructuras de Datos Avanzadas:

    • Estructuras (struct) y uniones (union).
    • Listas enlazadas simples y dobles.
    • Árboles binarios y binarios de búsqueda (implementación básica).
  • Algoritmos y Técnicas de Programación:

    • Algoritmos de ordenamiento: burbuja, selección, inserción.
    • Algoritmos de búsqueda: lineal y binaria.
    • Uso de recursividad para problemas como factorial, Fibonacci, etc.
  • Manipulación Avanzada de Cadenas:

    • Funciones de biblioteca estándar como strcmp, strcat, strtok.
    • Implementación de algoritmos para procesar y manipular cadenas.
  • Entrada y Salida Avanzada:

    • Manipulación de archivos (fopen, fclose, fprintf, fscanf).
    • Lectura y escritura secuencial y aleatoria en archivos.
  • Programación Defensiva y Depuración:

    • Manejo de errores y excepciones.
    • Uso de herramientas de depuración como gdb.
    • Pruebas unitarias básicas para funciones críticas.
Nivel Avanzado:
Optimización
  • Programación Concurrente y Paralela:

    • Uso de hilos (pthread library) y sincronización básica.
    • Comunicación entre procesos con pipes y semáforos.
    • Manejo de concurrencia y problemas clásicos (productor-consumidor, lectores-escritores).
  • Optimización de Código y Rendimiento:

    • Técnicas de optimización de bucles y algoritmos.
    • Uso de directivas de optimización del compilador.
    • Análisis de rendimiento y perfilado de código.
  • Programación de Sistemas y Bajo Nivel:

    • Acceso a funciones del sistema operativo (system calls).
    • Manipulación de archivos, procesos y señales en entornos Unix.
    • Programación de dispositivos y controladores básicos.
  • Seguridad y Criptografía:

    • Principios básicos de seguridad informática.
    • Implementación de cifrados básicos y técnicas de encriptación en C.
    • Prevención de vulnerabilidades comunes (buffer overflow, inyección SQL).
  • Proyectos y Aplicaciones Complejas:

    • Desarrollo de aplicaciones completas como sistemas de gestión, juegos simples, compiladores básicos, etc.
    • Uso de estructuras de datos avanzadas y algoritmos complejos según sea necesario.