Temario del curso
Día 1 — Fundamentos robustos de Python y herramientas asociadas
Funcionalidades modernas de Python y tipado estático
- Conceptos básicos del tipado, genéricos, Protocolos y TypeGuard.
- Clases de datos, clases de datos inmutables y una introducción a attrs.
- Coincidencia de patrones (PEP 634+) y uso idiomático en el código.
Calidad del código y herramientas asociadas
- Formateadores y linters: black, isort, flake8, ruff.
- Verificación estática de tipos con MyPy y pyright.
- Utilización de hooks pre-commit y mejora del flujo de trabajo del desarrollador.
Gestión de proyectos y empaquetado
- Administración de dependencias con Poetry y entornos virtuales.
- Buenas prácticas en la estructura de paquetes, puntos de entrada y control de versiones.
- Creación y publicación de paquetes en PyPI y registros privados.
Día 2 — Patrones de diseño y buenas prácticas arquitectónicas
Patrones de diseño aplicados a Python
- Patrones de creación: Factory, Builder, Singleton (versiones Pythonicas).
- Patrones estructurales: Adapter, Facade, Decorator, Proxy.
- Patrones comportamentales: Strategy, Observer, Command.
Principios arquitectónicos fundamentales
- Aplicación de los principios SOLID en proyectos desarrollados en Python.
- Arquitectura limpia y hexagonal, junto con sus límites lógicos.
- Técnicas para la inyección de dependencias y gestión de configuraciones.
Modularidad y reutilización del código
- Diferenciación entre diseño de librerías y de aplicaciones.
- Creación de APIs estables, interfaces bien definidas y control de versiones semántico.
- Manejo eficiente de configuraciones, claves secretas y ajustes específicos por entorno.
Día 3 — Concurrencia, programación asíncrona y optimización del rendimiento
Concurrencia y paralelismo en Python
- Conceptos básicos sobre el uso de hilos y las implicaciones del GIL.
- Utilización del módulo multiprocessing para tareas con alta carga computacional.
- Selección adecuada entre concurrent.futures y multiprocessing según el escenario.
Programación asíncrona mediante asyncio
- Patrones de async/await, bucle de eventos y manejo de cancelaciones.
- Diseño de librerías asíncronas y operatividad conjunta con código sincrónico.
- Manejo de operaciones de E/S, control del flujo y limitación de solicitudes.
Profilado y optimización del rendimiento
- Herramientas de perfilado: cProfile, pyinstrument, perf y memory_profiler.
- Técnicas para mejorar las partes críticas del código, así como uso de extensiones en C o Numba cuando procede.
- Medición precisa de latencia, rendimiento y utilización de recursos.
Día 4 — Pruebas automatizadas, CI/CD, observabilidad y despliegue
Estrategias eficaces para pruebas y automatización
- Desarrollo de pruebas unitarias con pytest; organización adecuada del código de prueba.
- Pruebas basadas en propiedades mediante Hypothesis y validación por contrato.
- Técnicas para simulaciones, redefiniciones dinámicas y verificación del código asíncrono.
Integradores CI/CD, lanzamiento de versiones y monitoreo continuo
- Integración fluida de pruebas y filtros de calidad en GitHub Actions o GitLab CI.
- Construcción de contenedores reproducibles gracias a Docker y técnicas de empaquetado multi-etapa.
- Sistema de observabilidad: registros estructurados, métricas mediante Prometheus y trazado de operaciones.
Seguridad, refuerzo del código y buenas prácticas generales
- Auditoría de dependencias, creación de listados SBOM y detección proactiva de vulnerabilidades.
- Prácticas recomendadas en programación segura: validación de entradas y gestión adecuada de claves secretas.
- Técnicas para reforzar la ejecución del programa: limites de recursos, restricciones de permisos y medidas de protección en contenedores.
Proyecto final y evaluación integral
- Trabajo grupal: diseño e implementación de un servicio pequeño utilizando los patrones y técnicas aprendidos.
- Elaboración del código, verificación con tipado estático, empaquetado e integración en pipelines de CI.
- Evaluación final, análisis crítico del código y elaboración conjunta de un plan de mejora práctico.
Resumen del curso y próximos pasos recomendados
Requerimientos
- Experiencia sólida en programación con Python a nivel intermedio.
- Conocimientos básicos sobre programación orientada a objetos y técnicas de pruebas.
- Experiencia en el uso de la línea de comandos y Git.
Público objetivo
- Desarrolladores senior de Python.
- Ingenieros de software responsables de la calidad y arquitectura del código en Python.
- Líderes técnicos e ingenieros DevOps o MLOps que trabajan con proyectos basados en Python.
Formación Corporativa a Medida
Soluciones de formación diseñadas exclusivamente para empresas.
- Contenido personalizado: Adaptamos el temario y los ejercicios prácticos a los objetivos y necesidades reales del proyecto.
- Calendario flexible: Fechas y horarios adaptados a la agenda de su equipo.
- Modalidad: Online (en directo), In-company (en sus oficinas) o Híbrida.
Precio por grupo privado (formación online) desde 5800 € + IVA*
Contáctenos para obtener un presupuesto exacto y conocer nuestras promociones actuales
Reseñas (2)
todo fue perfecto
Florin Vrincianu
Curso - Python Programming Fundamentals
Traducción Automática
Los ejercicios prácticos relacionados con el contenido realmente ayudan a comprender más sobre cada tema. Además, el estilo de comenzar la clase con una conferencia y continuar con ejercicios prácticos es bueno y útil para relacionarlo con la conferencia presentada anteriormente.
Nazeera Mohamad - Ministry of Science, Technology and Innovation
Curso - Introduction to Data Science and AI using Python
Traducción Automática