La ruta Intermedio es para quienes ya dominan lo básico y quieren resolver problemas más realistas: manejo de datos, estructuras compuestas, parsing, validación, refactorización y tests más completos.
Qué vas a aprender
- Patrones comunes con diccionarios y listas de diccionarios
- Limpieza y transformación de datos (sin depender de librerías)
- Manejo robusto de errores (inputs “sucios”)
- Lectura/escritura de archivos (CSV / texto)
- Organización de código y pequeñas abstracciones
- Tests con
pytest(parametrización, casos borde)
Requisitos previos
Antes de empezar Intermedio, deberías poder:
- escribir funciones simples sin ayuda,
- usar
for,if, listas y diccionarios, - entender
TypeError,ValueErrory debugging básico.
Retos típicos en Intermedio
- Agrupar datos por una clave (categorías, usuarios, fechas)
- Normalizar y validar entradas (textos, números, formatos)
- Transformar datos de archivos (CSV/logs) a estructuras útiles
- Ordenar, filtrar y resumir información
- Refactorizar una solución “que funciona” a una solución “limpia”
Retos recomendados (intermedio)
- Reto #13: Agrupar elementos por clave
- Reto #14: Eliminar duplicados preservando el orden
- Reto #15: Leer un CSV y calcular métricas (sin pandas)
- Reto #16: Merge de dos listas ordenadas
- Reto #17: Contar ocurrencias con collections.Counter (comparativa)
- Reto #18: Ordenar una lista de diccionarios por múltiples campos
- Reto #19: Generador de contraseñas (con reglas)
- Reto #20: Manejo robusto de errores (try/except bien hecho)
- Reto #21: Parsear logs y extraer métricas
- Reto #22: Resumir un CSV por grupo (group-by sin pandas)
- Reto #23: Pipeline ETL simple (leer → limpiar → validar → exportar)
- Reto #24: Cache simple (memoization) para acelerar funciones
- Reto #25: LRU Cache simplificado (capacidad máxima)
- Reto #26: Rate limiter (Token Bucket simple)
- Reto #27: Retry con backoff exponencial (sin librerías)
Checklist de progreso
- Puedo manejar datos como lista de diccionarios
- Sé diseñar funciones pequeñas con responsabilidades claras
- Sé escribir tests para casos borde
- Puedo leer un CSV y calcular métricas básicas
- Sé refactorizar sin romper el código (con tests)
Si ya resuelves retos intermedios con comodidad, pasa a Avanzado para algoritmos, estructuras, rendimiento y diseño más serio.