Saltar a contenido

Aula · Ingeniería del Software

Bienvenido. Esto no es un cuaderno de notas: es un temario extenso y explicado para leer y entender, organizado por materias como un aula. Entras, eliges una materia, y lees.

Cada lección está pensada para interiorizar, no para memorizar: intuición primero, después el detalle, con diagramas, ejemplos reales y ejercicios que te obligan a razonar.

Cómo sacarle partido

Lee sin prisa. Cuando llegues a un diagrama, tápalo e intenta dibujarlo tú. Al final de cada lección hay ejercicios socráticos (no des la respuesta por buena hasta que la razones) y una tanda de repaso espaciado para que lo del mes 2 siga vivo en el mes 6.


Materias

Ordenadas por capas de dependencia: cada capa se apoya en la anterior. Empieza por la Capa 0.

Capa 0 · Cimientos

Cómo ejecuta la máquina de verdad. La capa menos vistosa y la de mayor apalancamiento.

  • Modelo de ejecución


    Qué hace la CPU, cómo es la memoria de verdad, y por qué stack y heap son mundos distintos.

    Entrar

  • Estructuras de datos


    Qué cuesta de verdad cada estructura, más allá del nombre.

    Entrar

  • Complejidad algorítmica


    Notación asintótica, coste amortizado y cuándo O(1) deja de serlo.

    Entrar

  • Algoritmos base


    Búsqueda, ordenación, recursión y grafos: los patrones y cómo razonarlos.

    Entrar

Capa 1 · Código correcto y mantenible

Escribir código que otros humanos —y tu yo futuro— puedan entender, cambiar y confiar.

  • Prácticas de ingeniería


    Legibilidad, SOLID sin dogma, refactoring, deuda técnica.

    Entrar

  • Testing


    La red de seguridad que te deja cambiar sin miedo.

    Entrar

  • Patrones de diseño


    Soluciones probadas y vocabulario común; cuándo sí y cuándo no.

    Entrar

Capa 2 · Dar forma al sistema

De la clase al sistema: cómo se guardan los datos y cómo se comunican las piezas.

  • Bases de datos


    Modelado, índices, transacciones, aislamiento, N+1, SQL vs NoSQL.

    Entrar

  • APIs


    El contrato entre sistemas: REST, HTTP, idempotencia, auth.

    Entrar

  • Networking


    Cómo viaja un byte: TCP/IP, TCP vs UDP, latencia.

    Entrar

  • Domain-Driven Design


    Que el código hable el idioma del negocio.

    Entrar

  • Arquitectura de software


    Las decisiones caras de cambiar y sus tradeoffs.

    Entrar

Capa 3 · Sobrevivir en producción

Que el sistema aguante el mundo real: varios núcleos, varias máquinas, fallos y carga.

  • SO y concurrencia


    Procesos vs hilos, race conditions, locks, deadlock.

    Entrar

  • Sistemas distribuidos


    CAP, fallos parciales, consenso, idempotencia, sagas.

    Entrar

  • Performance


    Medir antes de optimizar: profiling, latencias, caching.

    Entrar

  • DevOps


    El camino fiable del código a producción.

    Entrar

Transversales

Hilos que cruzan todas las capas: se aplican desde el primer día.

  • Seguridad


    No confíes en nada de fuera: inyección, XSS, CSRF, auth, hashing.

    Entrar

  • Observabilidad


    Ver qué pasa dentro en producción: logs, métricas, trazas.

    Entrar

  • Lectura de código real


    Entrar en código ajeno: seguir un flujo, leer con hipótesis.

    Entrar


Cómo está pensada esta aula

  • Materias separadas, en orden de dependencia. No saltes capas: cada una da por sabida la anterior.
  • Convivencia de dos cosas: temario extenso para leer + ejercicios socráticos y repaso espaciado encima, para que leer no se quede en reconocer.
  • El contenido es el activo. Está en Markdown y es portable: hoy lo lees aquí, mañana puede moverse a otra plataforma sin perder una coma.

Detrás de cada materia hay un plan de largo recorrido. Si quieres ver el estado global (qué está cerrado, flojo o pendiente), está en PROGRESO.md dentro del repositorio.