← VOLVER ES/EN
2025.09.16 · 3 MIN DE LECTURA

Enseñar a programar nunca debería ser enseñar recetas de cocina

Foto: tanyabarrow · Unsplash

Llevo años haciendo clases y el patrón se repite todos los semestres: el alumno que sigue la receta al pie de la letra saca un 6.5 y no sabe qué hacer cuando el ejercicio cambia una variable.

No es culpa del alumno. Es culpa de cómo le enseñamos.

La receta funciona hasta que la cocina cambia

Una receta es una secuencia de pasos que produce un resultado conocido en un contexto conocido. “Crea el proyecto con este comando, pega este archivo, corre esto”. Funciona perfecto en la sala de clases, donde el contexto lo controlé yo.

En el trabajo el contexto nunca es el mismo: otra versión de Node, otro sistema operativo, otro error, un requisito que nadie escribió. El que aprendió pasos se queda esperando el paso siguiente. El que aprendió el modelo mental improvisa uno.

La prueba es brutal y siempre la misma: cambia un detalle del enunciado —el input viene desordenado, la API responde 429, el arreglo puede venir vacío— y observa quién sigue avanzando.

Enseñamos el resultado y escondemos el proceso

Cuando el profesor programa en vivo, escribe la solución correcta a la primera. El alumno concluye, razonablemente, que así se programa: la gente que sabe escribe el código bueno de inmediato.

Es mentira y es una mentira dañina. Yo también me equivoco de nombre de variable, leo mal el stack trace y pruebo dos cosas antes de dar con la buena. Lo que cambió con los años no es la cantidad de errores, es la velocidad para descartarlos.

Así que ahora hago clases con errores a propósito, y no los arreglo de inmediato. Leo el mensaje completo en voz alta —sí, el mensaje que nadie lee—, formulo una hipótesis, la pruebo, la descarto. Eso es la clase. El código final es apenas el subproducto.

Depurar es el contenido, no el trámite

Ningún programa de estudios dice “unidad 3: depuración”. Se asume que se aprende sola, como andar en bicicleta o llenar el formulario de vacaciones.

Depurar se enseña, y tiene método: reproducir de forma confiable, reducir el caso al mínimo, formular una hipótesis falsable, cambiar una cosa a la vez, verificar. Eso es método científico con console.log. Un alumno que domina eso sobrevive a cualquier framework; uno que memorizó la sintaxis de React 18 tiene fecha de vencimiento impresa.

Y ahora, además, hay un generador de recetas infinitas

Con un modelo que escupe la solución completa en tres segundos, enseñar recetas dejó de tener sentido incluso como negocio. Nadie te va a pagar por producir lo que una herramienta gratis produce mejor y más rápido.

Lo que sí se paga: saber si esa solución sirve. Leer código ajeno con desconfianza productiva, detectar el caso borde que el modelo no consideró, notar que la consulta que generó hace un N+1 contra la base. Eso es evaluación, y la evaluación requiere modelo mental. Otra vez lo mismo.

En mis evaluaciones el código generado está permitido. Lo que se califica es la defensa: por qué esta solución y no otra, qué pasa si el input crece diez veces, dónde está el caso que no cubriste. Es sorprendente cuánta gente entrega código que funciona y no puede explicar una sola línea.

El objetivo

No estoy formando gente que sepa hacer una tortilla. Estoy formando gente que entienda qué le pasa al huevo con el calor, para que pueda cocinar cuando le falte un ingrediente.

Todo lo demás está en la documentación, y la documentación no necesita profesor.

DocenciaFundamentosOpinión