El método más efectivo para un curso intensivo, explicado y ensayado unidad por unidad.
Esta guía no repite el temario: te dice exactamente qué vas a decir y en qué orden cuando llegue el momento de defender tu proyecto frente al docente. Cada Unidad trae un ejemplo real, tomado de tu propio proyecto integrador, con un guion palabra por palabra que puedes practicar en voz alta hasta que te salga natural.
1 · Aprende
Entiendes el concepto de la semana con un ejemplo mínimo, no memorizas código.
2 · Publica
Subes ese avance a producción (Render + MySQL). Si no está publicado, no cuenta.
3 · Defiende
Explicas en voz alta, con tus palabras, qué hiciste y por qué. Aquí se nota quién entendió.
El método
En un curso intensivo no alcanza el tiempo para "ver todo y luego practicar". Por eso el ciclo se repite completo cada 2 semanas, en dosis pequeñas: aprendes lo mínimo necesario para avanzar, publicas de inmediato para que el avance sea real y verificable, y defiendes en voz alta para que el conocimiento se quede contigo y no solo en el código. Repetir este ciclo 4 veces (una por Unidad) es lo que te prepara, sin darte cuenta, para la defensa final de la Unidad 4.
Aprender sin publicar
Se te olvida en una semana porque nunca lo defendiste ni lo viste "vivo" en internet.
Publicar sin defender
Puedes tener código que ni tú mismo entiendes del todo — la IA lo generó, tú lo copiaste.
Aprender + Publicar + Defender
Si lo puedes explicar en voz alta y modificarlo en vivo, es tuyo. Eso es lo único que la IA no puede hacer por ti.
No importa la Unidad: el orden en que hablas siempre es el mismo. Memoriza este orden, no el contenido — el contenido cambia, la estructura no.
Apertura / Presentación · 10-15 seg
Di quién eres, qué construiste y en qué URL vive. Una sola frase, sin rodeos.
Recorrido del entregable en vivo · 30-45 seg
Muestras la URL real funcionando y señalas las partes clave mientras hablas.
Justificación técnica · 30-45 seg
Explicas por qué tomaste una decisión técnica, no solo qué hiciste. Aquí se distingue a quien entendió de quien copió.
Reto de Live Coding · 1-2 min · vale 40% de la nota
El docente pide un cambio real y lo haces frente a él, narrando cada paso en voz alta.
Preguntas conceptuales rápidas · 30-60 seg · vale 25% de la nota
Preguntas de "por qué funciona así", no de sintaxis. Se responden con lógica, no con memoria.
Cierre · 10 seg
Agradeces y quedas abierto a más preguntas. No te quedes callado esperando: tú cierras.
Cómo usar esta guía: para cada Unidad, primero lee "Aprende" y "Publica" para ubicar el ejemplo concreto que se está defendiendo. Después practica en voz alta la sección "Defiende" — al principio léela casi literal, y en cada repaso cámbiala más a tus propias palabras, sin perder el orden de los pasos.
1 · Aprende
Entiendes que HTML5 semántico (header, main, section, article, footer) organiza el contenido por significado, no por apariencia, y que Tailwind te permite maquetar mobile-first con clases como grid md:grid-cols-3.
2 · Publica
Guardas el cambio, corres git add . && git commit -m "..." && git push, y Render redespliega solo por el webhook de GitHub. La URL pública queda actualizada en menos de un minuto.
Apertura · 0:00-0:15
Recorrido en vivo · 0:15-0:45
Justificación técnica · 0:45-1:15
Reto de Live Coding · 1:15-3:00 · "Agrega una tarjeta de proyecto nueva y publícala"
Narra cada acción mientras la haces — no la hagas en silencio:
Preguntas conceptuales · 3:00-3:45
¿Por qué mobile-first y no diseñar primero para escritorio?
¿Qué pasaría si no hubieras usado Git?
Cierre · 3:45-4:00
1 · Aprende
Entiendes la arquitectura MTV: el Modelo (models.py) define la tabla, la Vista (views.py) consulta datos con el ORM, y la planTilla los muestra en HTML. Y que makemigrations + migrate son los dos pasos para que un cambio en Python se refleje en MySQL.
2 · Publica
Migras primero en local contra MySQL (Aiven), haces git push, Render redespliega el código y su Build Command corre migrate solo (el plan Free no tiene Shell); en el log de Render confirmas que la base de producción está al día.
Apertura · 0:00-0:15
Recorrido en vivo · 0:15-1:00
Justificación técnica · 1:00-1:40
Reto de Live Coding · 1:40-3:20 · "Agrega un campo al modelo y migra en vivo"
Preguntas conceptuales · 3:20-4:00
¿Qué diferencia hay entre makemigrations y migrate?
¿Por qué separar Modelo, Vista y Plantilla en vez de mezclar todo en un archivo?
Cierre · 4:00-4:10
1 · Aprende
Entiendes que @login_required protege una vista, que {% csrf_token %} protege un formulario, y que un ForeignKey a User permite filtrar Servicio.objects.filter(propietario=request.user) para que cada quien vea solo lo suyo.
2 · Publica
Despliegas el sistema de registro/login/logout en producción y documentas en el README cómo comprobaste, con dos cuentas reales, que el aislamiento de datos funciona.
Apertura · 0:00-0:15
Recorrido en vivo · 0:15-1:00
Justificación técnica · 1:00-1:40
Reto de Live Coding · 1:40-3:20 · "Crea un usuario nuevo y demuestra el aislamiento"
Preguntas conceptuales · 3:20-4:00
¿Qué hace exactamente @login_required?
¿Para qué sirve {% csrf_token %} en el formulario?
Cierre · 4:00-4:10
Aquí no hay un solo reto: el docente puede pedir cualquier reto de live coding de las Unidades 1, 2 o 3, al azar, además de preguntas conceptuales de todo el curso. Por eso conviene repasar los guiones anteriores antes de este día. La estructura es la misma (seguir en orden los pasos del guion de cada Unidad), pero ahora cada paso pesa según la Matriz de Evaluación Anti-IA.
1 · Aprende
En la Semana 7 repasas tu propia bitácora de commits, pules UX (mensajes vacíos, paginación, estados sin datos) y haces un simulacro completo de defensa con un reto al azar.
2 · Publica
En la Semana 8 congelas la versión final: último migrate en producción, tag/release en GitHub, y verificas que la URL responde en el momento de la revisión.
Apertura · 0:00-0:15
Recorrido completo · 0:15-1:00
Justificación técnica global · 1:00-1:45
Live Coding sorpresa · 1:45-3:15 · vale 40% de la nota
El docente elige uno de estos tres retos al azar (o uno nuevo del mismo nivel). Repásalos todos, no adivines cuál te tocará:
Examen conceptual rápido · 3:15-4:00 · vale 25% de la nota
Explica el flujo completo de una petición HTTP en tu app.
¿Qué ventaja tiene el ORM sobre escribir SQL puro?
Cierre y evidencia · 4:00-4:10 · commits 20% + entregable publicado 15%
Antes de defender
Revisa esto justo antes de entrar a defender, sin importar la Unidad:
Señales que bajan la nota (evítalas)