
Curso avanzado de programación
Lleve su carrera en programación al siguiente nivel con un plan de estudios diseñado para ingenieros comprometidos con escribir código de calidad de producción. Desde estructuras de datos y diseño de sistemas hasta concurrencia y seguridad, cada tema se fundamenta en la aplicación del mundo real. Este curso le brinda la profundidad técnica y las competencias profesionales que exigen los roles de ingeniería sénior.
Qué vas a aprender:
Usted dominará estructuras de datos avanzadas, diseño de algoritmos y principios orientados a objetos que constituyen la columna vertebral del software escalable. Aplicará técnicas de programación funcional, patrones de concurrencia y flujos de trabajo asíncronos para construir sistemas de alto rendimiento. El curso cubre arquitectura de software, diseño de API y patrones de acceso a bases de datos para construir servicios mantenibles a escala. También desarrollará estrategias integrales de pruebas, flujos de trabajo de optimización de rendimiento y prácticas de codificación segura. Módulos complementarios abordan canalizaciones de DevOps, arquitectura nativa de la nube, ingeniería de datos e integración de modelos de ML, completando un conjunto de competencias de ingeniero sénior.
Cómo estudias de forma práctica Curso avanzado de programación
Cómo practicas Curso avanzado de programación
Para ti que eres empresa y quieres capacitar a tu equipo
En Dedika para empresas, el curso incluye ejercicios y ejemplos adaptados a tu propio negocio y a las necesidades de tu empresa.
Contenido del curso
8 Capítulos • 38 LeccionesDuración entre 4 y 360 horas (tú decides)
Capítulo 1OcultarOcultar detallesVer detallesFundamentos de Programación y Configuración del Entorno
Fundamentos de Programación y Configuración del Entorno
Lección 1 • Control de Versiones con Git
Presenta los flujos de trabajo de Git esenciales para proyectos colaborativos e individuales avanzados. Los estudiantes hacen commit, crean ramas y fusionan con confianza al final de la sección.
Lección 2 • Repaso de Conceptos Básicos de Programación
Revisa variables, tipos de datos y operadores como base para el trabajo avanzado. Garantiza una base conceptual uniforme antes de introducir patrones complejos.
Lección 3 • Flujo de Control y Manejo de Errores
Examina condicionales, bucles y manejo estructurado de excepciones como bloques fundamentales para programas robustos. Se conecta directamente con prácticas de codificación defensiva utilizadas a lo largo del curso.
Lección 4 • Configuración del Entorno de Desarrollo
Cubre la selección de IDE, ecosistemas de plugins y variables de entorno. Un entorno correctamente ajustado acelera cada tarea de codificación posterior en el curso.
Capítulo 2OcultarOcultar detallesVer detallesEstructuras de Datos y Diseño de Algoritmos
Estructuras de Datos y Diseño de Algoritmos
Lección 1 • Estructuras de Datos No Lineales
Explora árboles, montículos y grafos como estructuras para datos jerárquicos y relacionales. Los estudiantes implementan algoritmos de recorrido y búsqueda en cada estructura.
Lección 2 • Estructuras de Datos Lineales
Cubre arreglos, listas enlazadas, pilas y colas con sus ventajas y desventajas de implementación. Proporciona el vocabulario estructural necesario para todo el trabajo algorítmico posterior.
Lección 3 • Tablas Hash y Resolución de Colisiones
Examina el diseño de funciones hash y estrategias de colisión para búsquedas en caso promedio O(1). Se conecta con escenarios de almacenamiento en caché e indexación del mundo real presentados más adelante.
Lección 4 • Análisis de Complejidad Algorítmica
Enseña notación Big-O, Big-Theta y Big-Omega para un razonamiento riguroso del rendimiento. Los estudiantes anotan su propio código con pruebas de complejidad.
Lección 5 • Algoritmos de Ordenamiento y Búsqueda
Analiza ordenamiento basado en comparaciones y no basado en comparaciones, junto con variantes de búsqueda binaria. Los estudiantes comparan implementaciones para interiorizar las ventajas y desventajas de tiempo-espacio.
Capítulo 3OcultarOcultar detallesVer detallesPrincipios de Diseño Orientado a Objetos
Principios de Diseño Orientado a Objetos
Lección 1 • Patrones de Diseño: Creacionales
Cubre los patrones Factory, Builder, Singleton y Prototype con justificación de casos de uso. Los estudiantes implementan cada patrón e identifican antipatrones de mal uso.
Lección 2 • Patrones de Diseño: Estructurales y de Comportamiento
Examina los patrones Adapter, Decorator, Observer y Strategy como soluciones a problemas de diseño recurrentes. Los estudiantes seleccionan patrones basándose en el análisis del eje de cambio.
Lección 3 • Principios SOLID en la Práctica
Aplica cada principio SOLID a muestras de código realistas con comparaciones de antes y después. Desarrolla el criterio necesario para evaluar la calidad del diseño en revisiones de código.
Lección 4 • Encapsulación y Abstracción
Define el ocultamiento de información y el diseño basado en interfaces como herramientas para reducir el acoplamiento. Los estudiantes rediseñan API con fugas para imponer límites de acceso adecuados.
Lección 5 • Herencia y Polimorfismo
Contrasta la herencia clásica con la composición y explica el polimorfismo en tiempo de ejecución. Los estudiantes identifican cuándo la herencia crea fragilidad y refactorizan en consecuencia.
Capítulo 4OcultarOcultar detallesVer detallesTécnicas de Programación Funcional
Técnicas de Programación Funcional
Lección 1 • Mónadas y Manejo Funcional de Errores
Presenta los tipos Maybe, Either y Result como abstracciones componibles para el manejo de errores. Los estudiantes reemplazan las comprobaciones anidadas de null con pipelines monádicos.
Lección 2 • Closures y Ámbito Léxico
Explica cómo los closures capturan el entorno y permiten patrones funcionales con estado. Los estudiantes depuran trampas comunes de closures en contextos de bucles y asíncronos.
Lección 3 • Funciones de Orden Superior
Cubre map, filter, reduce y composición de funciones como herramientas principales de transformación de datos. Se conecta con arquitecturas de pipeline introducidas en capítulos posteriores.
Lección 4 • Funciones Puras e Inmutabilidad
Define la transparencia referencial y el aislamiento de efectos secundarios como base del estilo funcional. Los estudiantes auditan código existente en busca de mutaciones de estado ocultas.
Capítulo 5OcultarOcultar detallesVer detallesConcurrencia y Programación Asíncrona
Concurrencia y Programación Asíncrona
Lección 1 • Patrones Reactivos y Orientados a Eventos
Presenta flujos observables y contrapresión como herramientas para flujos de trabajo asíncronos componibles. Los estudiantes construyen un pipeline reactivo que maneja fuentes de datos de velocidad variable.
Lección 2 • Estructuras de Datos Concurrentes
Examina colas libres de bloqueo, mapas hash concurrentes y operaciones atómicas para reducción de contención. Se conecta con el diseño de servicios de alto rendimiento en capítulos posteriores.
Lección 3 • Async/Await y Promesas
Enseña encadenamiento de promesas y sintaxis async/await para operaciones de E/S no bloqueantes. Los estudiantes convierten código con alto uso de callbacks en pipelines asíncronos limpios.
Lección 4 • Hilos y Modelos de Procesos
Contrasta la concurrencia basada en hilos y en procesos con implicaciones de planificación. Establece el modelo mental necesario para todos los temas de concurrencia posteriores.
Lección 5 • Primitivas de Sincronización
Cubre mutexes, semáforos y bloqueos de lectura-escritura para acceso seguro al estado compartido. Los estudiantes reproducen y luego corrigen condiciones de carrera clásicas en ejercicios de laboratorio.
Capítulo 6OcultarOcultar detallesVer detallesArquitectura de Software y Diseño de Sistemas
Arquitectura de Software y Diseño de Sistemas
Lección 1 • Patrones de Escalabilidad y Confiabilidad
Enseña balanceo de carga, disyuntores y aislamiento de compartimientos estancos para servicios tolerantes a fallos. Los estudiantes aplican patrones a una arquitectura de referencia bajo fallas simuladas.
Lección 2 • Registros de Decisiones de Arquitectura
Formaliza el proceso de documentar opciones de diseño con contexto, opciones y consecuencias. Los estudiantes producen ADR para cada decisión importante en su proyecto final.
Lección 3 • Diseño de API y Desarrollo Contract-First
Cubre principios RESTful, esquemas GraphQL y contratos gRPC como herramientas de diseño de interfaces. Los estudiantes escriben especificaciones de API antes de la implementación para reforzar la disciplina del contrato.
Lección 4 • Panorama de Estilos Arquitectónicos
Examina los estilos monolítico, en capas, de microservicios y orientado a eventos con matrices de ventajas y desventajas. Proporciona el vocabulario para todas las decisiones de diseño posteriores en el curso.
Lección 5 • Diseño de Bases de Datos y Patrones de Acceso
Examina la normalización relacional, el modelado de datos NoSQL y la optimización de consultas para diversas cargas de trabajo. Los estudiantes eligen motores de almacenamiento basándose en el análisis de patrones de acceso.
Capítulo 7OcultarOcultar detallesVer detallesPruebas, Depuración y Calidad de Código
Pruebas, Depuración y Calidad de Código
Lección 1 • Análisis Estático y Revisión de Código
Aplica linters, verificadores de tipos y listas de verificación de revisión estructuradas para reforzar las barreras de calidad. Los estudiantes realizan revisiones de pares usando una rúbrica derivada de los principios SOLID.
Lección 2 • Pruebas de Rendimiento y Carga
Introduce la generación de perfiles, la evaluación comparativa y la simulación de carga para identificar cuellos de botella antes de producción. Los estudiantes correlacionan la salida del generador de perfiles con las decisiones arquitectónicas.
Lección 3 • Pruebas de Integración y Extremo a Extremo
Cubre pruebas de contrato, pruebas de integración de bases de datos y automatización de UI para validación full-stack. Los estudiantes diseñan una pirámide de pruebas que equilibra velocidad y confianza.
Lección 4 • Fundamentos de Pruebas Unitarias
Establece la estructura de pruebas, librerías de aserciones y el patrón Arrange-Act-Assert para pruebas aisladas. Los estudiantes adaptan pruebas a código heredado usando inyección de dependencias.
Lección 5 • Desarrollo Guiado por Pruebas
Aplica el ciclo red-green-refactor para guiar el diseño a partir de pruebas fallidas. Los estudiantes construyen una funcionalidad de extremo a extremo usando disciplina TDD estricta.
Capítulo 8OcultarOcultar detallesVer detallesOptimización de Rendimiento y Patrones Avanzados
Optimización de Rendimiento y Patrones Avanzados
Lección 1 • Gestión y Optimización de Memoria
Examina el ajuste de la recolección de basura, la agrupación de objetos y la detección de fugas de memoria para sistemas de baja latencia. Los estudiantes reducen la asignación en el heap en un servicio de alto rendimiento proporcionado.
Lección 2 • Patrones de Diseño Avanzados
Introduce patrones CQRS, event sourcing y saga para escenarios complejos de dominio y distribuidos. Los estudiantes implementan un agregado con event sourcing con capacidad de reproducción completa.
Lección 3 • Computación Paralela y Distribuida
Aplica paralelismo de datos, paralelismo de tareas y patrones MapReduce a la computación a gran escala. Los estudiantes particionan un trabajo por lotes entre nodos trabajadores y miden la aceleración.
Lección 4 • Estrategias de Almacenamiento en Caché
Cubre el almacenamiento en caché en proceso, distribuido y CDN con políticas de invalidación para cada nivel. Los estudiantes implementan una caché de múltiples niveles y miden las mejoras en la tasa de aciertos.
Lección 5 • Flujo de Trabajo de Optimización Guiada por Perfiles
Establece un ciclo repetible de medir-analizar-optimizar basado en datos empíricos. Los estudiantes aplican el flujo de trabajo a su proyecto final y documentan las ganancias.
Tu certificado válido de finalización
Este curso es para ti:
Desarrollador de nivel medio: listo para pasar del trabajo en funcionalidades a la propiedad del sistema.
Graduado en ciencias de la computación: cerrando la brecha entre la teoría académica y la práctica de la industria.
Programador autodidacta: llenando vacíos críticos de conocimiento que los tutoriales nunca abordaron.
Ingeniero backend: buscando la profundidad en arquitectura y diseño que requieren las promociones.
Persona en transición de carrera: aportando experiencia en el dominio y ahora construyendo bases sólidas de ingeniería.
Profesional de DevOps: expandiéndose hacia el diseño de software para colaborar más eficazmente con desarrolladores.
Lo que dicen nuestros estudiantes
Sus clases son perfectas. Adquirí el paquete de un año y, finalmente, tengo la oportunidad de seguir diversos temas de mi interés sin necesidad de cambiar de plataforma... les agradezco por todo lo que hacen, ya los he recomendado a otras personas...

Me gusta cómo las lecciones van directo al grano y cómo puedo cambiar capítulos y saltar contenidos que no necesito.

Me gusta el contenido y la forma de presentación y transcripción de videos, ¡lo que acelera el proceso!

La plataforma es rápida, simple de usar. La diversidad de contenido y los videos complementarios ayudan mucho en el aprendizaje.

Principales capacitaciones
Preguntas frecuentes
¿Quién es Dedika?
¿El certificado es válido en Ecuador?
¿Los cursos son gratuitos?
¿Cuál es la carga horaria del curso?
¿Cómo son los cursos?
¿Cómo funcionan los cursos?
¿Cuál es la duración de los cursos?
¿Cuál es el costo o precio de los cursos?
¿Qué es un curso EAD u online y cómo funciona?
Curso en PDF




















