Para un curso avanzado de Python, la clave no es solo escribir código, sino optimizarlo,
asegurar su escalabilidad y dominar las herramientas profesionales del ecosistema.
Aquí tienes una secuencia de 20 actividades diseñadas para elevar el nivel técnico, separadas
por áreas críticas:
Fase 1: Estructuras y Rendimiento
• 1. Optimización de Memoria con __slots__: Crea una clase que gestione millones de
objetos y utiliza __slots__ para comparar el consumo de RAM frente a una clase
estándar.
• 2. Decoradores con Argumentos: Implementa un decorador @retry(times=3) que
reintente una función si falla, manejando excepciones específicas.
• 3. Context Managers Personalizados: Diseña una clase que gestione una conexión
simulada a una base de datos usando el protocolo __enter__ y __exit__.
• 4. Metaclases: Crea una metaclase que fuerce a todas las subclases a tener sus
atributos escritos en snake_case.
Fase 2: Concurrencia y Paralelismo
• 5. Web Scraper Asíncrono: Utiliza asyncio y aiohttp para descargar datos de 50 URLs
simultáneamente sin bloquear el hilo principal.
• 6. Comparativa de CPU vs I/O: Escribe un script para procesar imágenes (intensivo en
CPU) usando multiprocessing y compáralo con una versión usando threading.
• 7. Colas de Tareas: Implementa un sistema de productor-consumidor usando
[Link] para procesar mensajes en tiempo real.
Fase 3: Ingeniería de Software y Patrones
• 8. Patrón Singleton de Hilo Seguro: Implementa un Singleton que funcione
correctamente incluso en entornos multi-hilo.
• 9. Inyección de Dependencias: Refactoriza un módulo que dependa de una API externa
para que acepte "mocks" durante las pruebas unitarias.
• 10. Validación de Datos con Pydantic: Crea modelos complejos con validaciones
cruzadas (ej. la fecha de fin no puede ser menor a la de inicio).
Fase 4: Manipulación de Datos y Backend
• 11. Query Builder con Descriptores: Usa descriptores de Python para crear un sistema
que valide tipos de datos al asignar valores a atributos de una clase.
• 12. API con Fast API y Background Tasks: Crea un endpoint que reciba un archivo y
procese su contenido en segundo plano sin hacer esperar al usuario.
• 13. Generadores para Big Data: Escribe una función generadora que lea un archivo CSV
de varios gigabytes línea por línea, filtrando datos sin cargar el archivo completo en
RAM.
Fase 5: Testing, Seguridad y Despliegue
• 14. Property-Based Testing: Usa la librería Hypothesis para generar casos de prueba
automáticos y encontrar errores de borde en un algoritmo de ordenamiento.
• 15. Análisis Estático de Código: Configura un flujo de trabajo con mypy (tipado
estático), flake8 y black para asegurar que un proyecto cumpla con PEP 8.
• 16. Profiling de Código: Usa cProfile para identificar el cuello de botella en un script
que tarda más de 5 segundos en ejecutarse.
• 17. Seguridad (SQL Injection): Crea un pequeño script con sqlite3 que sea vulnerable a
inyección y luego corrígelo usando consultas parametrizadas.
Fase 6: Proyecto Integrador Final
• 18. CLI Profesional: Desarrolla una herramienta de línea de comandos usando click o
typer que permita gestionar tareas locales con persistencia en JSON.
• 19. Microservicio Dockerizado: Toma una de las actividades anteriores y crea su
Dockerfile optimizado (usando multi-stage builds).
• 20. Documentación con Sphinx/MkDocs: Genera documentación automática a partir
de los docstrings de un paquete que hayas creado.
¿Te gustaría que desarrollemos el código de ejemplo o el enunciado detallado de alguna de
estas actividades en particular?