Skills que aprenderás
Convocatorias
No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.
Recursos
No hay recursos disponibles todavía para esta convocatoria
Este curso está dirigido a profesionales con experiencia sólida en Python que buscan dar el salto hacia el desarrollo de software de calidad producción: quienes ya dominan las bases del lenguaje y han trabajado con estructuras de datos, orientación a objetos y testing básico, pero necesitan incorporar criterios de arquitectura, rendimiento y operabilidad a su práctica diaria. A lo largo de ocho horas intensivas, los participantes aprenderán a diseñar sistemas modulares aplicando patrones de diseño reconocidos, a diagnosticar y eliminar cuellos de botella con herramientas de profiling, a elegir el modelo de concurrencia adecuado según la naturaleza de cada tarea, a construir pipelines de validación y despliegue automatizados, y a establecer sistemas de observabilidad y gestión de errores desacoplados de la lógica de negocio. Al finalizar, el participante será capaz de entregar código Python mantenible, medible y listo para entornos de integración continua, respaldado por una suite de tests que incluye pruebas de rendimiento con umbrales de aceptación definidos.
threading, multiprocessing o asyncio) para un caso concreto, distinguiendo tareas I/O-bound de CPU-bound y validando la mejora con métricas objetivas.Bloque 1 · Arquitectura y modelo de datos avanzado
El curso arranca con una revisión crítica de los principios que gobiernan una arquitectura Python modular orientada a la producción. Se analizan patrones de diseño estructurales y de comportamiento —Strategy, Decorator, Composite, Observer, entre otros— contrastándolos con alternativas descartadas para que el participante desarrolle criterio propio de elección. Dentro de este mismo bloque se estudia el modelo de datos interno de Python: descriptores, metaclases y protocolos estructurales (typing.Protocol). Se exploran los casos en que estas herramientas resuelven problemas reales de forma elegante y aquellos en que añaden complejidad innecesaria, fomentando una postura argumentada sobre su uso.
Bloque 2 · Rendimiento y concurrencia
El segundo bloque aborda la medición y mejora del rendimiento. Se trabaja con cProfile y py-spy para localizar cuellos de botella, y se aplican técnicas de optimización —algorítmica, estructural y de bajo nivel— con el objetivo de lograr reducciones de al menos un 30 % en tiempo de ejecución o uso de memoria. A continuación se aborda la concurrencia desde un enfoque evaluativo: se caracteriza cada modelo (threading, multiprocessing, asyncio) en función del tipo de tarea, se presenta la distinción I/O-bound / CPU-bound como eje de decisión y se establecen métricas objetivas para validar que la solución elegida produce una mejora real y sostenible.
Bloque 3 · Observabilidad, gestión de errores y refactoring Este bloque enseña a instrumentar aplicaciones Python de forma profesional: logging estructurado con niveles y formatos coherentes, trazabilidad de excepciones entre capas del sistema y alertas configurables. Se enfatiza el principio de separación de responsabilidades para que la lógica de observabilidad no penetre en el dominio de negocio. La segunda parte del bloque se dedica al refactoring defensivo: identificar señales de deuda técnica —acoplamiento excesivo, módulos demasiado grandes, dependencias invertidas de forma incorrecta—, aplicar las transformaciones documentadas y confirmar mediante los tests existentes que el comportamiento externo no ha cambiado.
Bloque 4 · Automatización, CI/CD y testing de calidad
El curso cierra con la puesta en marcha de pipelines de integración continua. Se diseña un flujo completo que cubre linting (ruff, mypy), ejecución de tests, empaquetado y publicación del artefacto, con manejo explícito de errores parciales y lógica de reintento. Sobre esa misma infraestructura se construye una suite de tests multicapa —unitarios, de integración y de carga— para un módulo crítico real, definiendo umbrales de aceptación medibles y asegurando que la suite se ejecuta de forma automática en cada push, cerrando así el ciclo de calidad continuo.
venv o conda).cProfile (stdlib), py-spy, ruff, mypy, pytest, pytest-cov, locust (o k6 vía CLI) y poetry o build + twine.py-spy).Para aprovechar este curso al máximo, el participante debe haber completado PYD02 o poseer conocimientos equivalentes al nivel Intermedio de Python: manejo fluido de orientación a objetos, comprensión de listas / generadores / decoradores, uso de pytest para testing básico, gestión de entornos virtuales y empaquetado elemental con pip o poetry. Se recomienda también familiaridad con la línea de comandos y haber trabajado en al menos un proyecto Python de tamaño mediano en entorno profesional o académico.