Ingeniería de software
Conoces la sintaxis, las clases y las colecciones. El programa funciona. Entonces llegan las preguntas de verdad: por qué se queda un minuto esperando con un millón de pedidos, por qué cada cambio rompe otra cosa, por qué el contador a veces está mal, cómo alguien entra en una cuenta que no es suya. Las respuestas no están en ningún lenguaje en particular, y valen para todos. De eso trata este curso.
Elige el lenguaje del código
Qué aprendes
Sección «Qué aprendes»- Patrones de diseño: soluciones probadas a problemas que vuelven en todo proyecto, y cuándo no usarlas.
- Código limpio y refactorización: código que otra persona (y tú, un mes después) puede cambiar sin miedo.
- Algoritmos y complejidad: qué tan rápido crece el trabajo con los datos, búsqueda, ordenamiento, estructuras de datos, grafos, programación dinámica.
- Concurrencia y condiciones de carrera: cómo dos hilos se estropean los datos y cómo protegerlos.
- Seguridad para programadores: entrada no confiable, contraseñas, sesiones y CSRF, tokens, secretos, dependencias y números aleatorios.
- Arquitectura de software: capas, módulos y servicios, eventos y colas, diseño de API, caché, escalado y decisiones registradas (ADR).
- El arquitecto en acción: un complemento para arquitectos de soluciones y empresariales: requisitos medibles, compromisos, resiliencia, integración, migración de sistemas en vivo, revisión de arquitectura y un proyecto.
Cómo se aprende aquí
Sección «Cómo se aprende aquí»Cada lección parte de un problema en código real. Luego la idea se muestra con una escena sincronizada con el código línea por línea: cómo se mueven los objetos, cómo crece el número de pasos, cómo se entrelazan los hilos. El texto es el mismo para los cuatro lenguajes, el código está en el lenguaje que elijas y cada programa se ha ejecutado y verificado. Puedes cambiar de lenguaje en cualquier lección.
Qué necesitas saber
Sección «Qué necesitas saber»Uno de los cuatro lenguajes, al menos hasta «Clases y objetos» y «Colecciones». Para la concurrencia, también «Programas en el mundo real». Cada módulo dice al principio qué lecciones del lenguaje usa.