¿Cómo “consigo” la recursión?

No voy a abordar la recursión en particular, porque no creo que sea un caso especial. Más bien, creo que esta pregunta es un ejemplo cotidiano de “¿Cómo aprendo un concepto difícil que he intentado repetidamente y que no pude aprender?”

Mi “experiencia” no proviene de conocer datos probados sobre la cognición o el aprendizaje, sino de la experiencia en el campo, como alguien que ha sido profesor de forma intermitente durante 20 años, y como persona que ahora trabaja como programador a tiempo completo y tiene que aprender conceptos duros regularmente. Me encantaría saber de un psicólogo sobre la solidez de mis ideas, ya que son, al final, anecdóticas. Mientras tanto, en el peor de los casos, tome lo siguiente como un informe de lo que funciona para mí y lo que he visto que funciona para otros.

Empiezo por esta premisa: si hay un concepto que muchas personas han aprendido en el pasado, cualquier persona con inteligencia promedio es capaz de aprenderlo si sigue ciertos procedimientos y si puede eliminar ciertos obstáculos.

Esto significa que debes comenzar por abandonar la idea (sorprendentemente reconfortante) de que “solo soy una de esas personas que no lo entienden”. ¿Cuántas veces has escuchado eso? “Soy solo una de esas personas que no tienen tecnología”. “Soy solo una de esas personas que no tienen a Shakespeare”. “Soy solo una de esas personas que no obtienen Matemáticas”. Etc.

La verdad es que eres una de esas personas que ha intentado y no ha podido obtener el tema que intentaste dominar. Eso es desmoralizador, pero no significa que seas incapaz de conseguirlo. Solo significa que lo intentaste y fallaste. El beneficio de afirmar que “yo solo soy una de esas personas” es que te deja libre. Para avanzar, tienes que negarte a dejarte caer.

A continuación, debes preguntar si hay algún bloqueo emocional que tengas. Dudo que este sea el caso de tu búsqueda para aprender recursión, pero nunca lo sabes. Los bloqueos emocionales son muchos y variados: “Si aprendo esto, no tendré excusa para postergar una tarea que no quiero hacer” “Si aprendo esto, ya no podré ver el mundo como algo mágico. lugar.” “Si no puedo aprender esto, no podré conseguir el trabajo que quiero”. “Si no puedo aprender esto, me despedirán”. “Si no puedo aprender esto, será una prueba de que soy estúpido”, etc.

Superar los bloqueos emocionales es un tema demasiado grande para que lo cubra aquí, y en el peor de los casos, un bloqueo emocional solo puede eliminarse mediante terapia y / o medicamentos. Pero a menudo ayuda simplemente reconocer que el bloqueo existe y darse cuenta de que es emocional y no intelectual. “No hay nada de lo que sepa que me detenga intelectualmente para aprender este tema. Es más que tengo problemas para concentrarme en eso, porque tengo miedo de …”

(Debo agregar que los bloqueos emocionales a veces no tienen nada que ver con el tema. Es difícil aprender C ++ cuando está preocupado por pagar la renta o por los resultados de una prueba médica. También es difícil aprender cuando está fatiga mental. Si tiene problemas para dormir, es posible que desee abordarlos antes de tratar de superar un tema difícil.)

Diré, una vez más, que si hay un tema que muchos estudiantes universitarios aprenden cada año, y si tiene al menos un promedio de inteligencia, entonces es capaz de aprenderlo. Es posible que le lleve más tiempo que a algunos de ellos, pero puede aprenderlo.

Lo siguiente que debes preguntar es si has hecho la preparación. Cualquiera puede aprender Cálculo si primero ha aprendido las cosas inclinándose hacia él. Algunas personas cometen el error de saltar directamente a Cálculo sin primero aprender aritmética básica. Y al “aprender”, no me refiero simplemente a “obtenerlo”, me refiero a sentirse realmente seguro al respecto. Si obtienes fracciones, pero tienes que buscar constantemente cómo agregarlas, no podrás aprender Cálculo.

Es sorprendente la cantidad de personas que no aprenden a tocar escalas, saltan directamente a los estudios de Chopin y luego declaran: “Soy solo una de esas personas que no pueden tocar el piano”.

Esto es algo comprensible, porque cuando vemos al pianista de concierto haciendo magia con sus manos sobre el teclado, no podemos ver las horas de trabajo que pone en las escalas de masterización. Parece que eso no es parte de su historia.

También quiero destacar, una vez más, la diferencia entre obtener un concepto fundamental y realmente aprenderlo : una vez cometí el error de intentar aprender algunos conceptos matemáticos superiores leyendo todo lo fundamental primero, solo leyendo eso Leí un libro de álgebra, ” lo entendí” (realmente lo entendí), no pensé que era necesario hacer ningún problema de práctica, y seguí directo a Cálculo. Fue un desastre. Estaba claro para mí que habría progresado si hubiera disminuido la velocidad y hubiera dominado las cosas fundamentales, pero no lo hice. Sobre todo porque estaba impaciente.

Con el aprendizaje, no hay atajos. O bien aprendes, realmente aprendes, o no. Algo es una segunda naturaleza o no lo es. Y si entiendes una idea fundamental en teoría, lo único que evita que se convierta en una segunda naturaleza es la práctica. Así que no hay excusa más que “yo era demasiado perezosa e impaciente para hacerlo”. Eso es cierto de mi parte todo el tiempo, pero ahora sé que es mejor culpar a “Soy solo una de esas personas …”. Lo que yo soy es una de esas personas que es perezosa.

Está bien, has aceptado que puedes aprender el tema; has lidiado con cualquier bloqueo emocional y has estudiado los requisitos previos hasta que los conoces como la palma de tu mano. Tu último obstáculo es el sesgo de optimismo. http://en.wikipedia.org/wiki/Opt…

La mayoría de las personas esperan poder aprender cosas al intentarlo dos veces. Si lo intentan una vez y fracasan, se ponen un poco nerviosos, pero están dispuestos a darle otra oportunidad. Si lo intentan dos veces y fracasan, eso les demuestra que “yo soy una de esas personas …” Unas cuantas almas valientes lo intentarán tres veces, fracasarán y luego se retirarán, llevándose el premio de consolación de “Bueno, al menos yo”. He aprendido algo sobre mí “.

El sesgo de optimismo (que, paradójicamente, termina haciéndonos sentir miserables) es la creencia de que es probable que algo funcione cuando no es probable que funcione. Lo que probablemente no funcione es esto: aprender un tema realmente difícil en unos pocos intentos.

Así que este es mi consejo: no puedes decir “Soy una de esas personas” hasta que lo hayas intentado y fallado diez veces. Se le permite decir: “Sabe, tal vez pueda aprenderlo, pero no estoy dispuesto a hacer esa cantidad de trabajo” o “No quiero aprenderlo tan mal”. Esta bien. Pero no se le permite reclamar, incluso si ha intentado y fallado seis veces, que tiene algún tipo de discapacidad de aprendizaje en lo que respecta al tema. Espera fallar nueve veces.

En realidad, puedes aprenderlo después del cuarto intento. Puedes aprenderlo después del segundo o del octavo. ¿Quién sabe? Por supuesto, puede llevarle 40 intentos para aprenderlo, pero en algún momento debe declarar: “¡La vida es demasiado corta!” Mi insistencia en diez veces es algo arbitraria, pero es un intento de instalar una corrección para el sesgo de optimismo.

Está bien, estás listo para intentarlo diez veces. ¡No los pruebes todos en una fila! Realmente intente duro la primera vez, falle, y luego tome un descanso. Luego inténtalo de nuevo, falla y toma otro descanso. Cada descanso debe ser al menos durante la noche, y probablemente debería ser más largo. Debe sentir que cada nuevo intento es un comienzo totalmente nuevo. El intento cuatro necesita sentirse como un intento cuatro, no como una continuación del intento tres. Cada vez que vuelve a la tarea, necesita volver completamente renovado, como si fuera la primera vez. (Entonces, realmente, intentar cuatro necesita sentirse como intentar uno).

He tenido mucho éxito al intentarlo, al volver a intentarlo (después de un par de días), dejar de lado el tema durante un par de semanas y luego intentarlo por tercera vez. Sé que es demasiado pronto para volver a intentarlo cuando todavía me siento mentalmente fatigado por el último intento.

Cuando intente nuevamente, no intente conectar el nuevo intento con los anteriores. Deja que tu cerebro haga eso por ti, si así lo desea. Tu trabajo es enfrentar el problema con una mente completamente nueva, como si nunca lo hayas estudiado antes.

Asegúrate de no volver a leer el mismo libro las diez veces. Recomiendo nunca usar el mismo recurso dos veces seguidas, incluso si está bien escrito (bien enseñado, bien grabado en video, etc.) Puede repetir recursos durante sus diez intentos, pero nunca el mismo dos veces seguidas. Incluso si usas dos libros que cubren el mismo terreno, lo harán desde ángulos ligeramente diferentes, y tu cerebro prosperará con las pequeñas diferencias. Eres un animal social, y los muchos libros diferentes dirán a tu cerebro: “¡Múltiples personas me están diciendo lo mismo! ¡Debe ser importante!”

La recursión para mí siempre es muy visual.

Por ejemplo, imagine que tiene una caja que puede contener otras cajas más pequeñas. Esas cajas pueden a su vez contener cajas incluso más pequeñas. Quieres encontrar la caja más pequeña.

Para mí, este es un candidato perfecto para la recursión, porque cada paso en el camino es el mismo. Abres la tapa y buscas la caja más pequeña. Luego abres la tapa de esa caja y buscas la caja más pequeña que hay dentro, etcétera. Sigues haciendo eso hasta que encuentres la caja vacía más pequeña.

Las soluciones recursivas generalmente siguen este formulario. Tiene una función que toma una entrada y devuelve un resultado que es similar a la entrada original.

Asi que:

caja de clase {
tamaño del flotador
Lista de contenidos;

// obtener la caja más pequeña dentro de la caja, que puede contener otras cajas
Cuadro estático público GetSmallestBox (Cuadro de cuadro) {
List listBoxes = new ArrayList <> ();
listBoxes.add (cuadro);
devuelve GetSmallestBox (listBoxes);
}

caja estática pública GetSmallestBox (List listBoxes) {
// determina el cuadro en listBoxes con el tamaño más pequeño
Caja más pequeña =… // TODO

if (smallest.contents.isEmpty ()) {
retorno más pequeño; // ¡Encontramos la caja más pequeña!
}
else {
// una de las cajas dentro de las más pequeñas tiene que ser aún más pequeña,
// así que consigue la caja más pequeña dentro de esa caja
devuelve GetSmallestBox (el más pequeño);
}
}

}

La recursión es a veces usada en exceso. Creo que algunos problemas lo exigen, especialmente cuando se trata de datos auto-similares que tienen un anidamiento arbitrariamente complejo.

Por cierto, el sistema circulatorio humano puede ser descrito como recursivo. Arterias, venas, capilares … todos son auto-similares. Nuestro ADN no codifica cada capilar individual, parece codificar una fórmula recursiva para construir todo el sistema. ¿Qué tan elegante es eso?

La recursión puede ser pensada de dos maneras. La primera es una forma muy simple de “divide y vencerás”. El segundo es un modo fractal más complicado.

Divide y vencerás es simple. Tomas un todo. Si el conjunto es de tamaño mínimo, haz algo. Si no lo es, lo divides en dos partes (no necesariamente iguales) y el comienzo desde el principio en cada una de ellas. (Si es de tamaño mínimo, haces algo, de lo contrario, lo divides en dos partes …) Eventualmente, todas las partes serán de tamaño mínimo y habrías realizado ese “Algo” en todas las partes de tamaño mínimo.

Si observas los fractales, verás que tienen características diminutas que son idénticas o muy similares a las características mucho más grandes. De hecho, las características más grandes generalmente contienen muchas características más pequeñas. Debido a esto, cualquier operación que realice en las funciones más grandes que también puede realizar en las más pequeñas si se escala correctamente. Una operación recursiva realizaría esa operación en todas las funciones más pequeñas dentro de la función grande. Cuando lo realiza en las funciones más pequeñas, las examina para ver si contienen funciones aún más pequeñas, en el infinito, hasta la escala más pequeña.