Ingeniería de software: C#
El curso es el mismo para los cuatro lenguajes, y el código aquí está en C#. Cada módulo dice qué lecciones del lenguaje necesitas antes.
Módulo 0
Bienvenida
1 lección · qué enseña el curso y qué necesitas saber
Módulo 1
Patrones de diseño
14 lecciones · Strategy, Observer, Builder, State…
Módulo 2
Código limpio y refactorización
8 lecciones · nombres, funciones, malos olores, pasos pequeños
- Nombres en el código
- Funciones: una tarea, pocos parámetros, sin efectos secundarios ocultos
- Comentarios que mienten y comentarios que ayudan
- Code smells: método largo, clase grande, duplicación, primitivos en vez de tipos, cadenas largas de if
- Las pruebas como red de seguridad
- Refactorización en pasos pequeños
- SOLID sin dogma
- Ejercicio: una clase desordenada, limpiada paso a paso
Algoritmos y complejidad
Módulo 3
Complejidad
5 lecciones · Big-O, tiempo y memoria, medición
Módulo 4
Búsqueda
3 lecciones · búsqueda lineal y binaria
Módulo 5
Ordenamiento
6 lecciones · insertion, merge, quick, heap, counting
Módulo 6
Recursión
4 lecciones · la pila de llamadas, divide y vencerás
Módulo 7
Estructuras de datos
8 lecciones · arreglo, lista, tabla hash, árboles, heap
Módulo 8
Grafos
6 lecciones · BFS, DFS, Dijkstra, dependencias
Módulo 9
Programación dinámica
5 lecciones · memoización, tabla, mochila
Módulo 10
Algoritmos voraces
2 lecciones · cuándo funcionan y cuándo engañan
Módulo 11
Técnicas para resolver problemas
4 lecciones · dos punteros, ventana deslizante, sumas de prefijos
Módulo 12
Proyecto: navegación por la ciudad
1 lección · el mapa como grafo, BFS, Dijkstra
Módulo 13
Concurrencia y condiciones de carrera
9 lecciones · bloqueos, deadlock, async
Módulo 14
Seguridad para programadores
9 lecciones · entrada no confiable, contraseñas, sesiones, tokens, secretos
Módulo 15
Arquitectura de software
9 lecciones · capas, módulos, eventos, API, caché, escalado
Módulo 16
El arquitecto en acción
9 lecciones · NFR, compromisos, integración, migraciones, revisión
- Requisitos no funcionales que puedes medir
- Trade-offs
- Cuando el vecino es lento: timeout, retry, circuit breaker
- Una transacción entre servicios (Saga)
- Integrar sistemas antiguos y ajenos
- Cambiar un sistema en marcha (Strangler Fig, Expand–Contract)
- Revisión de arquitectura
- El panorama de la empresa y sus capacidades
- Tu primera tarea de arquitectura