CRITERIO

Comprensión · ejemplo: Ciclo TDD de Email

Ejemplos resueltos que se desvanecen

Ver la solución completa, luego completar huecos cada vez más grandes.

Evidencia alta100 min en total

Primero estudias un ciclo TDD completo escrito por alguien. En el segundo ejemplo falta una línea; en el tercero, la mitad. La ayuda se retira poco a poco hasta que escribes solo. Reduce la carga cognitiva cuando todo es nuevo.

Para quién
Principiantes. En expertos pierde efecto (efecto de inversión de la experiencia).
Fuente
Sweller y Cooper (1985); Renkl y Atkinson (2003), Structuring the Transition From Example Study to Problem Solving
Muchos estudios controlados y metaanálisis coinciden.
Probar el ejemplo

El plan en el tiempo

Qué haces antes, durante y después. Mueve t y mira qué ya ocurrió.

Antes de encontrar el concepto t<0

Esta metodología no prepara nada antes: llegas en frío al concepto.

El encuentro t=0

  1. t=0

    Estudias un ciclo rojo, verde, refactor completo

    Ejemplo resuelto · 30 min · Ver un problema resuelto paso a paso reduce la carga cognitiva del principiante.

Después: consolidar t>0

  1. t=+1

    Completas un segundo ejemplo con una línea faltante

    Aplicación · 30 min · Usar el concepto en un problema nuevo construye transferencia.

  2. t=+3

    Completas un tercero con la mitad faltante

    Aplicación · 30 min · Usar el concepto en un problema nuevo construye transferencia.

  3. t=+7

    Escribes el ciclo completo sin ayuda

    Recuperación · 10 min · Sacar de memoria sin mirar fortalece el recuerdo más que volver a ver (efecto de prueba).

Trayectoria frente al método de control

0255075100-30+3+7+14+21+30
Ejemplos resueltos que se desvanecenReleer y subrayar (control)

Se aplica en la ruta

Úsala programando, no solo leyendo

Pruébalo ahora

Ciclo TDD de Email

Estudia un ciclo TDD completo y completa los siguientes con cada vez menos ayuda.

  1. t=0Completo
  2. t=+1Un hueco
  3. t=+3Tres huecos

Ejemplo 1 · completo: estúdialo

def test_email_sin_arroba_se_rechaza():
    with pytest.raises(EmailInvalido):
        Email("ana.ejemplo.com")

@dataclass(frozen=True)
class Email:
    valor: str

    def __post_init__(self):
        if "@" not in self.valor:
            raise EmailInvalido(self.valor)

Fíjate en el orden: primero la prueba que describe la regla, después el Value Object mínimo que la cumple. La validación vive en __post_init__.

Aplícalo esta semana

Con tu propio código de Python

Cuándo no usarla

Si ya dominas el tema: los ejemplos te sobran y te frenan.

Señal de que funciona

Cada vez necesitas mirar el ejemplo menos veces.

Tu decisión

¿Ejemplos resueltos que se desvanecen te hizo aprender?

Responde después de probar el ejemplo. Se guarda solo en este navegador.