Bienvenida
En resumen: El curso de Ingeniería de software enseña a escribir código que resiste los cambios: patrones de diseño, código limpio, algoritmos, hilos, seguridad y arquitectura de software.
Problema
Conoces el lenguaje. Aun así no basta
El programa funciona. Luego los pedidos llegan a un millón y tarda un minuto. Un colega añade un método de pago nuevo y rompe otros tres lugares. El contador de visitas a veces se queda unas cuantas visitas corto, y nadie tocó el código. Alguien entra en una cuenta que no es suya con una sola comilla en el campo del nombre.
Ninguno de estos es un error de sintaxis. El compilador no los atrapa. Vienen de cómo está organizado el programa y qué hace con los datos, y son iguales en Java, C#, Python y JavaScript.
La idea
Qué aprendes
- Patrones de diseño. Soluciones a problemas que vuelven en todos los proyectos: cómo añadir un método de pago nuevo sin tocar los viejos. Y cuándo un patrón es demasiado.
- Código limpio y refactorización. Cómo leer el código de otra persona, ver por qué es difícil de cambiar y mejorarlo en pasos pequeños sin romperlo.
- Algoritmos y complejidad. El módulo más grande, con submódulos: complejidad, búsqueda, ordenamiento, recursión, estructuras de datos, grafos, programación dinámica, algoritmos voraces, técnicas y un proyecto al final.
- Concurrencia y condiciones de carrera. Por qué dos hilos pierden incrementos de un contador y cómo proteger los datos.
- Seguridad para programadores. Entrada no confiable, contraseñas, sesiones y CSRF, tokens, secretos, dependencias y números aleatorios.
- Arquitectura de software. Cómo está organizado un sistema completo: capas, módulos y servicios, eventos, APIs, caché, escalado, y cómo dejar escrito por qué se eligió una opción y no otra.
- El arquitecto en acción. Un complemento para arquitectos de soluciones y empresariales: de una necesidad del negocio a requisitos medibles, opciones con su costo, una decisión y una migración sin interrupción.
La idea
Cómo aprendes aquí
Cada lección empieza con un problema en código real, como el de la primera tarjeta. 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. Después vienen tareas pequeñas y un test.
El texto es el mismo para los cuatro lenguajes. El código está en el lenguaje que eliges en «Código en:» arriba de la lección, y puedes cambiarlo cuando quieras. Cada programa del curso se ejecutó y se comprobó.
La idea
Qué necesitas saber
Del lenguaje necesitas al menos los módulos «Clases y objetos» y «Colecciones». Para la concurrencia, también «Programas en el mundo real». Cada módulo dice al empezar qué lecciones del lenguaje usa.
Si te falta algo, el mapa del curso está en JavaScript.Test