cuando ya te sentís cómodo programando, el próximo salto es aprender diseño de sistemas.
ya sabés construir una funcionalidad. ahora toca entender qué pasa cuando miles de personas la usan al mismo tiempo, los datos crecen o un servicio falla.
¿por dónde empezar? yo seguiría este orden:
1) arquitectura cliente y servidor: seguí el flujo de una request, desde el navegador hasta la base de datos. ida y vuelta.
2) bases de datos: aprendé a modelar datos, acelerar consultas con índices y usar transacciones para mantenerlos consistentes.
3) escalabilidad: entendé cuándo sumar más instancias, cómo repartir el tráfico y qué conviene guardar en caché.
4) colas y eventos: separá lo que el usuario necesita recibir en el momento de lo que puede procesarse después, como un email.
5) manejo de fallos: definí cuánto esperar una respuesta, cuándo reintentar y cómo evitar efectos secundarios.
6) seguridad y observabilidad: controlá quién puede acceder a cada recurso y usá logs y métricas para entender qué está pasando.
para practicar, agarrá una app que ya hayas construido y cambiá las condiciones: 100 veces más tráfico, una base de datos lenta o un servicio caído.
¿qué cambiarías y por qué?
estudiar casos prácticos es la mejor forma de entender estos conceptos.
Una mujer que estudió a personas felices durante 40 años me dijo las 8 cosas que afectan tu calidad de vida...
1. La distancia entre tu casa y tu trabajo...
Estados Unidos: Se suspende el partido porque hay tormentas a 35 minutos del estadio.
La Copa Argentina con un incendio a dos casas y media de la cancha: