Volver al blog

Aprender a programar con IA: no delegues tu cerebro

¿Aprendes a programar con IA? Los principiantes con dificultades pueden terminar una tarea con una ilusión de competencia. Qué dice la investigación y cómo seguir pensando tú.

Aprender a programar con IA: no delegues tu cerebro

Cuando aprendes a programar, el programa que terminas es un efecto secundario. Lo que estás construyendo es un modelo mental: una imagen en tu cabeza de lo que hace el código y de por qué falla. La IA puede producir el código en segundos. Esa imagen no puede construirla por ti. Si dejas que piense ella mientras aprendes, acabas con programas que funcionan y una comprensión muy superficial de ellos, y la diferencia aparece más tarde, cuando algo se rompe.

Resumen rápido

  • El código que funciona puede parecer comprensión. Algunos principiantes que ya tenían dificultades terminaron una tarea asistida por IA con «una ilusión de competencia», convencidos de que lo habían hecho mejor de lo que en realidad lo hicieron (Prather et al., ICER, 2024).
  • Recuerdas menos de lo que no produjiste tú. Las personas que escribieron redacciones con un LLM tuvieron problemas para citar su propio texto minutos después, en un estudio que todavía no ha pasado revisión por pares (Kosmyna et al., MIT Media Lab, 2025).
  • Delegar va de la mano de un pensamiento crítico más débil. En un estudio con 666 personas, un mayor uso de la IA se correlacionó con un pensamiento crítico más débil, y la descarga cognitiva medió estadísticamente esa relación (Gerlich, Societies, 2025).
  • El trabajo de nivel inicial está cambiando. El empleo de desarrolladores de software de entre 22 y 25 años cayó casi un 20 % desde su máximo de finales de 2022 hasta septiembre de 2025 (Stanford Digital Economy Lab, 2025).
  • Los hábitos hacen que sigas pensando tú. Inténtalo primero, pide pistas en lugar de respuestas, explica el resultado con tus palabras y reconstrúyelo desde un archivo vacío al día siguiente.

¿Qué significa delegar tu cerebro en la IA?

Delegar tu cerebro significa dejar que la IA haga el trabajo mental que el ejercicio existe para que hagas tú. Los psicólogos lo llaman descarga cognitiva: usar una herramienta para pensar lo que, si no, pensarías tú. Una calculadora lo hace con la aritmética y una app de mapas lo hace con las direcciones. Un desarrollador con experiencia puede delegar el boilerplate con poco coste, porque la comprensión ya la tiene. Para quien está aprendiendo, ese trabajo mental es de donde sale la habilidad, así que delegarlo te deja con el resultado y poco más.

La pregunta más concreta de cuándo escribir el código tú y cuándo aceptar una sugerencia tiene su propio artículo, ¿Todavía deberías escribir código a mano?, que repasa los ensayos controlados. Aquí la pregunta es qué pasa en tu cabeza cuando aprendes con un asistente y lo que eso te cuesta dentro de un año.

¿Por qué el código que funciona parece comprensión?

Tu cerebro juzga si entiendes algo en parte por lo fluido que resulta, y la IA hace que todo resulte fluido. Pegas un prompt, obtienes código y se ejecuta. Es fácil confundir esa fluidez con competencia.

Los científicos del aprendizaje llevan décadas midiendo esta diferencia. Nicholas Soderstrom y Robert Bjork revisaron la investigación y concluyeron que el rendimiento durante la práctica «es a menudo un indicador poco fiable» de si se ha producido aprendizaje. También vieron que «las personas a menudo interpretan erróneamente su rendimiento durante la adquisición como una guía fiable del aprendizaje a largo plazo» (Soderstrom & Bjork, Perspectives on Psychological Science, 2015). Las condiciones que en el momento se sienten difíciles, como recordar en lugar de releer, suelen producir un aprendizaje más duradero. El laboratorio de Bjork las llama «dificultades deseables» (Bjork Learning and Forgetting Lab).

Los estudios sobre el uso de la IA de 2024 y 2025 apuntan en la misma dirección.

Los principiantes con dificultades pueden terminar con una ilusión de competencia

James Prather y sus colegas observaron a programadores principiantes resolviendo un problema con IA generativa a su disposición, mediante observación, entrevistas y seguimiento ocular en 21 sesiones de laboratorio. Veinte de los 21 estudiantes completaron el problema. Los estudiantes que ya tenían dificultades partían de problemas metacognitivos, y la IA «puede agravarlos e incluso introducir nuevas dificultades metacognitivas». Varios de ellos «creyeron que lo habían hecho mejor de lo que lo hicieron y terminaron con una ilusión de competencia» (Prather et al., ICER, 2024). Los estudiantes con mejores habilidades metacognitivas usaron bien la IA, y de ahí viene el título del artículo, «The Widening Gap».

Los desarrolladores con experiencia también se equivocan al valorarlo. En el ensayo de METR de 2025 tardaron un 19 % más con IA mientras creían que eran un 20 % más rápidos (METR, 2025), un resultado que se analiza con más detalle en ¿Todavía deberías escribir código a mano?. Si personas con años de experiencia malinterpretan su propio progreso, un principiante tiene todavía menos en qué apoyarse.

Menos esfuerzo, menos memoria

Investigadores del MIT Media Lab pidieron a 54 personas que escribieran redacciones con un LLM, con un buscador o sin herramientas, mientras registraban su actividad cerebral con EEG. El grupo sin herramientas mostró las redes cerebrales más fuertes y más ampliamente conectadas. Los usuarios del buscador quedaron en medio, y los usuarios del LLM mostraron la conectividad más débil. Los usuarios del LLM también «tuvieron dificultades para citar con precisión su propio trabajo», redacciones que habían escrito minutos antes (Kosmyna et al., MIT Media Lab, 2025). El estudio es un preprint y todavía no ha pasado revisión por pares, así que tómalo como evidencia preliminar. Trataba de redacciones, no de código, pero el mecanismo es el mismo del que habla este artículo: recuerdas menos de lo que no produjiste tú.

Una encuesta más grande encontró algo parecido. Michael Gerlich estudió a 666 personas y encontró «una correlación negativa significativa entre el uso frecuente de herramientas de IA y la capacidad de pensamiento crítico, mediada por una mayor descarga cognitiva». Los participantes más jóvenes dependían más de la IA y obtuvieron puntuaciones más bajas (Gerlich, Societies, 2025). El estudio es correlacional, así que no demuestra que la IA debilite el pensamiento. Sí muestra que las personas que dicen delegar más también puntúan más bajo en pensamiento crítico.

¿Cuándo te pasa factura el atajo?

La comprensión que te saltas no la notas el día que te la saltas. La notas más tarde, cuando la IA no basta o no está disponible.

Depurar un panic que nunca entendiste

Imagina que un asistente escribió la caché en memoria de tu primer servicio en Go, con un constructor NewCache que lo prepara todo, y funcionó en todos los tests. Luego una nueva ruta de código crea el struct directamente:

example.gogo
type Cache struct {
	items map[string]string
}

func (c *Cache) Set(key, value string) {
	c.items[key] = value
}

func main() {
	c := &Cache{}
	c.Set("session:42", "user-1893")
}
example.texttext
panic: assignment to entry in nil map

Si hubieras escrito maps a mano unas cuantas docenas de veces, lo reconocerías al instante. El valor cero de un map es nil, y leer de un map nil funciona mientras que escribir en él provoca un panic. La solución es hacer que el valor cero sea utilizable con una comprobación de nil en Set (c.items = make(map[string]string)) o, si la caché vive en su propio paquete, mantener items sin exportar y documentar que quien la use debe llamar a NewCache. var vs make en Go explica por qué el valor cero se comporta así. Si solo hubieras aceptado código con maps, estarías mirando un panic en una línea que parece completamente normal, sin idea de por dónde empezar.

Una pregunta de code review que no sabes responder

Un revisor te pregunta por qué tu handler usa un receptor de puntero, o por qué pasas un context.Context a una función que nunca lo lee. Si escribiste el código, puedes responder, aunque la respuesta sea «me equivoqué». Si lo aceptaste sin más, no tienes nada que decir. La misma carencia aparece en una entrevista de live coding, donde tienes que explicar tu razonamiento mientras escribes.

Leer un código que no escribiste

Buena parte del tiempo de un desarrollador nuevo se va en leer código de otras personas: seguir una petición a través del middleware, encontrar dónde se asigna un valor de configuración, averiguar por qué un pool de workers tiene el tamaño que tiene. La IA puede resumir un archivo. Saber dónde mirar después viene de haber escrito código parecido y recordar dónde pusiste las cosas.

¿Por qué entender el código importa más ahora para los desarrolladores junior?

Una razón probable es que las tareas que la IA hace bien coinciden con aquellas para las que antes se contrataba a perfiles junior. El Digital Economy Lab de Stanford encontró que el empleo de desarrolladores de software de entre 22 y 25 años cayó casi un 20 % desde su máximo de finales de 2022 hasta septiembre de 2025, mientras que el empleo de los trabajadores con más experiencia se mantuvo estable (Brynjolfsson, Chandar & Chen, Stanford Digital Economy Lab, 2025). La revisión de agosto de 2026 sitúa el empleo de los trabajadores jóvenes en puestos expuestos a la IA un 19 % por debajo de donde estaría en otro caso (Brynjolfsson, Chandar & Chen, 2026).

Los autores advierten que otros factores aparte de la IA pueden influir. Su explicación es que la IA «puede estar automatizando las tareas codificables y verificables que históricamente justificaban la contratación de nivel inicial», y «puede ser menos capaz de sustituir el conocimiento tácito». El conocimiento tácito es la comprensión que solo se obtiene haciendo el trabajo, y saber por qué un código generado está bien o mal entra en esa categoría.

¿Por qué la lucha productiva es el verdadero trabajo?

El modelo mental se construye mientras estás atascado. Estás confundido, formulas una hipótesis, la pruebas y muchas veces falla. Esos minutos parecen perdidos, pero es ahí donde se aprende.

Veámoslo con un bug real. Escribes una función que descarga varias URL de forma concurrente y devuelve el control antes de tiempo si alguna falla:

example.gogo
type result struct {
	body string
	err  error
}

func fetchAll(ctx context.Context, urls []string) ([]string, error) {
	results := make(chan result)
	for _, u := range urls {
		go func() {
			body, err := fetch(ctx, u)
			results <- result{body, err}
		}()
	}

	var bodies []string
	for range urls {
		r := <-results
		if r.err != nil {
			return nil, r.err
		}
		bodies = append(bodies, r.body)
	}
	return bodies, nil
}

Los tests pasan. Una semana después, la memoria del servicio sube poco a poco hasta que se reinicia. Averiguarlo a mano es más o menos así. Compruebas runtime.NumGoroutine() y ves que no para de crecer. Sacas un perfil de goroutines y encuentras cientos de goroutines detenidas en la misma línea, results <- result{body, err}. Te preguntas quién debería recibir de ese channel, y la respuesta es nadie, porque fetchAll retornó con el primer error. El channel no tiene buffer, así que cada emisor que queda se bloquea para siempre.

La solución rápida es una sola línea, results := make(chan result, len(urls)), para que cada goroutine pueda enviar y terminar tanto si alguien lee como si no. Una solución mejor también cancela el contexto para que las demás peticiones se detengan antes. Encontrar esa línea te enseñó más que la línea en sí: un envío a un channel sin buffer espera a un receptor, un return anticipado puede dejar goroutines abandonadas y un perfil de goroutines te muestra dónde están atascadas. Un asistente podría haberte dado la versión corregida al primer intento, y habrías tenido código correcto sin aprender nada de eso. El curso Concurrency Fundamentals te hace escribir y arreglar código con channels que se bloquea así.

¿Cómo aprender a programar con IA sin delegar tu cerebro?

Trata a la IA como a un colega sénior con paciencia. Pídele que te explique cosas o que revise tu razonamiento cuando te atasques, y quédate el ejercicio para ti.

Inténtalo primero, con un límite de tiempo

Date entre 20 y 30 minutos con un problema antes de pedir ayuda. Apunta lo que probaste y dónde te atascaste. Esa nota sirve para dos cosas: te obliga a plantear el problema con claridad y le da a la IA contexto suficiente para ofrecerte una pista en lugar de una solución completa.

Pide pistas, no soluciones

Dile al asistente qué papel debe cumplir. A menudo una sola frase separa un prompt que hace el trabajo por ti de uno que te mantiene trabajando:

Prompt que hace el trabajo por tiPrompt que te mantiene trabajando
«Arregla este panic de nil map.»«Estoy aprendiendo Go. No escribas código. Dame una pista sobre por qué esto provoca un panic y hazme una pregunta que apunte a la causa.»
«Reescribe esta función para que no pierda goroutines.»«Esta es mi función. No la reescribas. Si perdiera goroutines bajo carga, ¿qué línea mirarías primero y por qué?»
«Escribe un worker pool en Go.»«Estoy a punto de escribir un worker pool. ¿Qué debería decidir antes de empezar y qué suele salir mal?»
«Explícame los maps de Go.»«Hazme tres preguntas sobre los maps de Go. Espera a mi respuesta antes de decirme si he acertado.»

En la columna de la derecha la IA explica o pregunta, y el código lo sigues escribiendo tú.

Explica el código con tus propias palabras

Si aceptas código de un asistente, no sigas adelante hasta que puedas explicar cada línea. Escribe la explicación como comentarios o dila en voz alta. La línea que no sabes explicar es la que tienes que ir a aprender. Explicar también es la forma más rápida de saber si entendiste algo o solo lo reconociste.

Reconstrúyelo desde un archivo vacío al día siguiente

Cierra el archivo, abre uno vacío mañana y vuelve a escribir la solución sin mirar. Irás más lento y te atascarás en algunos puntos. Esos puntos son lo que todavía no habías aprendido. Es la misma práctica de recuperación que hace funcionar a las tarjetas de memoria, aplicada al código.

Deja la IA fuera de la fase de fundamentos

Durante tus primeras semanas con un lenguaje, escribe los fundamentos sin asistente: variables, bucles, slices, maps, structs, errores y tus primeras goroutines. Tan al principio, el autocompletado con IA rellena cada línea antes de que hayas tenido ocasión de pensarla tú. Cuando lo básico te salga solo, recupera las herramientas para las partes que ya entiendes. Cómo aprender a programar en 2026 tiene un plan más completo para esa primera etapa, y 13 errores comunes de principiantes en programación cubre los hábitos que hacen que cualquier código, generado o no, sea más difícil de depurar.

LevelUpGo está construido en torno a escribir el código tú mismo. Cada ejercicio pone el concepto junto a un editor de Go real sin autocompletado de IA, y solo cuenta como completado cuando tu código compila y pasa los tests. Empieza con las lecciones gratis de Go Basics, el primer curso de la ruta Go Fundamentals. Después mantén la habilidad en forma con ejercicios sueltos en el Training Ground.

Preguntas frecuentes

¿Es hacer trampa usar ChatGPT para aprender a programar?

No es hacer trampa, salvo que tu curso diga lo contrario. El riesgo es que te saltes lo que el ejercicio pretendía enseñarte. Pedirle a una IA que te explique un error o un concepto es como preguntarle a un tutor. Pedirle que escriba la solución significa que el ejercicio ya no entrena nada.

¿Cómo sé si de verdad entiendo el código que escribió una IA?

Intenta modificarlo sin ayuda. Añade una funcionalidad, gestiona un caso límite nuevo o di qué pasa si se elimina una línea. Si puedes predecir lo que hará el código antes de ejecutarlo, lo entiendes. Si solo puedes ejecutarlo y ver qué pasa, lo has reconocido. Reconocer se siente como entender mientras lo haces, y esa es justo la diferencia que describen Soderstrom y Bjork (Soderstrom & Bjork, 2015).

¿Qué es la descarga cognitiva en programación?

Es dejar que una IA decida la estructura, el algoritmo o la solución en lugar de averiguarlo tú. Eso es eficiente cuando ya tienes la habilidad. Mientras todavía la estás construyendo, delegar sustituye a la práctica, y la investigación relaciona una mayor descarga cognitiva con un pensamiento crítico más débil (Gerlich, 2025).

¿En qué momento puede un principiante usar libremente las herramientas de IA para programar?

Cuando puedas escribir lo básico sin consultar nada: bucles, funciones, maps, structs, gestión de errores y un handler HTTP sencillo. A partir de ahí, la IA te acelera en el trabajo que ya entiendes. Vuelve a escribir a mano cada vez que empieces algo nuevo, como tu primer código concurrente o tu primera capa de base de datos.

¿Reemplazará la IA a los desarrolladores junior?

La investigación apunta a una forma clara de seguir siendo valioso. Los investigadores de Stanford sugieren que la IA está asumiendo las tareas codificables y verificables, y que está peor preparada para sustituir el conocimiento tácito, la comprensión que solo se construye haciendo el trabajo (Stanford Digital Economy Lab, 2025). Esa parte depende de ti. Un junior que sabe depurar, revisar y explicar lo que escribe una IA aporta algo que la herramienta no aporta, y además la IA le hace ir más rápido.

Fuentes

Escribe Go como un ingeniero sénior

Lecciones interactivas en tu navegador. Las primeras son gratis.

Prueba una lección gratisO crea una cuenta gratuita