Elige tu idioma
Curso avanzado de programación
Más de 2 millones de estudiantes en todo el mundo

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.

Dedika para empresas

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.

Haz clic aquí

Contenido del curso

8 Capítulos • 38 LeccionesDuración entre 4 y 360 horas (tú decides)

Capítulo 1Ver detalles

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 2Ver detalles

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 3Ver detalles

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 4Ver detalles

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 5Ver detalles

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 6Ver detalles

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 7Ver detalles

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 8Ver detalles

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.

Certificación

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...
Giulio Carlo
Giulio CarloEstudiante de Marketing Digital
Me gusta cómo las lecciones van directo al grano y cómo puedo cambiar capítulos y saltar contenidos que no necesito.
Mariana Ferres
Mariana FerresEstudiante de Fotografía
Me gusta el contenido y la forma de presentación y transcripción de videos, ¡lo que acelera el proceso!
Luciana Alvarenga
Luciana AlvarengaEstudiante de Diseño de Uñas
La plataforma es rápida, simple de usar. La diversidad de contenido y los videos complementarios ayudan mucho en el aprendizaje.
André Felipe
André FelipeEstudiante de Ingeniería de Prompts

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