Cómo utilizar la práctica deliberada para aprender a programar de manera más eficiente

Realmente creo que cualquiera puede aprender a codificar.

Al final del día, la programación es una habilidad, y cualquiera puede adquirirla.

A veces, ser bueno en algo parece ser un proceso mágico. Pero, en realidad, hay pasos claros a seguir.

Anders Ericsson, profesor de la Universidad Estatal de Florida, es un destacado investigador de artistas expertos. Estudia el proceso de adquirir una habilidad y lo que se necesita para convertirse en un experto.

A lo largo de sus años de investigación, llega a la conclusión de que lo que separa a los mejores artistas de todos los demás es la cantidad de tiempo que dedican a algo que él llama Práctica Deliberada.

Él cree que “El tipo correcto de práctica durante un período de tiempo suficiente conduce a la mejora. Nada más."

Creo que el marco de práctica deliberada desarrollado por el Dr. Ericsson se puede utilizar para ayudar a las personas a aprender a programar.

La implementación de la práctica deliberada me ha ayudado en mi vida personal y creo que puede ayudarlo a aprender a programar de manera más eficiente.

A continuación, explicaré cada componente de la práctica deliberada y cómo puede incorporar la práctica deliberada en su viaje de codificación.

Deconstrucción

El primer paso de la práctica deliberada es deconstruir y analizar la habilidad deseada.

La deconstrucción requiere que tome una vista de pájaro de su objetivo general y lo divida en pequeños componentes manejables. Estás tratando de encontrar el camino más eficiente desde donde estás hasta donde quieres ir.

Hay dos formas de deconstruir una habilidad. Puede analizar los componentes usted mismo o aprender de alguien que ya haya adquirido la habilidad.

Para alguien que esté aprendiendo a programar, recomendaría aprovechar el conocimiento de otros desarrolladores en lugar de reinventar la rueda.

La mayor parte del material disponible (como freeCodeCamp) fue creado por personas que se han esforzado en deconstruir el proceso de aprendizaje y han repetido el material.

Puede aprovechar su experiencia y esfuerzo cuando esté buscando su propio camino a seguir.

Hojee algunos sitios web de codificación diferentes o lea la Tabla de contenido de varios libros de codificación (puede obtener una vista previa de los libros en Amazon de forma gratuita). Además, lea algunos blogs o pídale su opinión a un amigo desarrollador.

Después de un tiempo, tendrá una idea del mejor camino a seguir.

Además, asegúrese de que sus intereses tengan voto. Es difícil aprender rápidamente si no está interesado en el material.

La ruta más eficiente para aprender a codificar es en la intersección de lo que recomiendan los expertos y lo que le interesa.

No se obsesione con deconstruir perfectamente el camino para convertirse en programador. Nunca encontrará la ruta perfectamente eficiente.

Es mejor investigar un poco, comenzar por algún lado y reajustar sobre la marcha.

Extender los objetivos

El siguiente componente clave de la práctica deliberada es la creación de objetivos ambiciosos.

Una meta amplia es una pequeña tarea que lo empuja fuera de sus habilidades actuales y lo lleva a lo largo de su camino de aprendizaje deconstruido.

Crear metas ambiciosas no se trata tanto de tener una gran lista de tareas que debes completar. La parte más importante es configurar su aprendizaje de una manera que amplíe los límites de sus habilidades de programación.

Los humanos, naturalmente, favorecemos las cosas que son fáciles y automáticas.

Sin embargo, si nos esforzamos fuera de nuestras zonas de confort durante el tiempo suficiente, nuestro cuerpo intentará normalizar el nuevo comportamiento y convertirlo en un hábito.

El objetivo de una meta de estiramiento es ponerte conscientemente fuera de tu zona de confort y esperar a que tu cuerpo se adapte.

El truco para crear una meta amplia es hacer que la tarea sea difícil pero aún alcanzable.

Si el objetivo es demasiado difícil, te perderás y no sabrás cómo avanzar. Si el objetivo es demasiado fácil, no se desarrollará tan rápido como podría (o no lo hará).

Llevará algún tiempo encontrar el punto óptimo.

Al principio, una meta amplia podría ser simplemente una lección sobre freeCodeCamp. A medida que pasa el tiempo, un objetivo ambicioso podría ser implementar un botón en el sitio web de su cartera sin utilizar Google.

La clave para recordar es que si una tarea se siente fácil, probablemente no se esté esforzando lo suficiente.

Enfoque y atención

El enfoque es un componente fundamental de la memoria y la adquisición de habilidades.

Cuando intentas codificar nueva información en tu cerebro, la fuerza de la codificación está directamente relacionada con la intensidad de tu enfoque.

Cuando su enfoque es débil, la nueva información será menos pegajosa, lo que resultará en un aprendizaje más lento y más tiempo de estudio.

Un rasgo común entre las personas que aprenden a programar rápidamente es que tienen la capacidad de concentrarse intensamente en cualquier tarea que estén realizando durante largos períodos de tiempo.

Piense en cómo practica cualquier artista de clase mundial. Probablemente no estén revisando su teléfono cada 5 minutos. Lo más probable es que estén mentalmente bloqueados en cualquier tarea que estén realizando.

Tener un buen enfoque significa eliminar todas las distracciones no deseadas.

Hay dos tipos de distracciones, internas y externas. Disminuir las distracciones externas significa apagar el teléfono, ir a una habitación tranquila y / o colocar un bloqueador de sitios en su computadora.

Controlar las distracciones internas significa no dejar que los pensamientos internos consuman su tiempo. Esto se puede hacer practicando la meditación o teniendo un cuaderno para anotar lo que tenga en mente.

La clave es construir un entorno libre de distracciones y tener un plan cuando inevitablemente surja una distracción. Probablemente ya seas consciente de todas las cosas que te distraen.

(Si desea obtener más información sobre a dónde va su tiempo, le recomiendo usar algo como RescueTime).

Mejorar su enfoque es un proceso. Al principio, trate de concentrarse completamente durante unos minutos. A medida que pasa el tiempo, marque lentamente la duración de su codificación enfocada.

Cuando practique deliberadamente su habilidad de programación, es mejor estar 100% enfocado por un período de tiempo más corto que 70% enfocado por un período de tiempo más largo.

Puede parecer imposible mantener la concentración, ya que vivimos en un mundo que constantemente intenta captar nuestra atención. No obstante, debes encontrar una manera.

Realizar

La única forma de mejorar en algo es haciéndolo.

La gente suele confundir la adquisición de conocimientos con la adquisición de una habilidad. El conocimiento es útil, pero no sustituye a intentar algo.

El conocimiento, de muchas formas, te da una falsa sensación de progreso. Puede ver 100 tutoriales de codificación y sentir que es capaz de codificar su propio sitio web. Sin embargo, una vez que salgas y trates de construirte uno, podrías terminar cayendo de bruces.

Es como la diferencia entre ver béisbol y jugar béisbol. Mirar te ayuda a jugar, pero no puedes convertirte en un buen jugador de béisbol con solo mirar a tu equipo de béisbol profesional favorito.

Adquirir habilidades requiere que salgas al mundo y pruebes tus conocimientos contra la realidad.

Esto no siempre es fácil. Practicar algo nuevo atacará tu ego y te hará sentir incompetente. Querrá dejar de fumar o volver a algo que le resulte más cómodo.

Desafortunadamente, es imposible aprender algo nuevo sin parecer incompetente (al menos al principio). Es mejor que te acostumbres.

Como mencionamos anteriormente, el aprendizaje no ocurre dentro de su zona de confort. No se sorprenda si comienza a sentirse incómodo mientras codifica. La incomodidad suele ser una señal de que va en la dirección correcta.

Asegúrese de poner a prueba constantemente sus conocimientos con el mundo real. No se conforme con leer tutoriales o ver videos. Ponga sus dedos en el teclado y escriba un código que pueda ejecutar.

Retroalimentación

Es imposible mejorar en algo sin comentarios.

Imagínese tratando de mejorar su juego de golf pero no puede ver dónde cae la pelota. No habría forma de saber si estás mejorando.

La retroalimentación es la forma en que la realidad se comunica contigo. Le permite ver la brecha entre lo que cree que sabe y lo que realmente sabe.

Hay dos formas de obtener comentarios. Puede obtenerlo a través del autoestudio o alguien más puede proporcionarlo.

El autoaprendizaje requiere que compare lo que intentó con la solución correcta que otra persona publicó.

Esto sucede naturalmente cuando visita sitios web como Stack Overflow o GitHub para encontrar una respuesta a un problema. La retroalimentación ocurre cuando descubre la brecha entre su respuesta y la respuesta correcta.

Cuando visite sitios web como Stack Overflow, asegúrese de dedicar tiempo a comprender por qué funciona un fragmento de código y en qué se diferencia. Copiar y pegar sin comprender la diferencia le quitará información importante que le ayudará a mejorar y actualizar sus habilidades.

También puede leer el código de alguien en Github y compararlo con su propio código (o compararlo con su comprensión actual de cómo codificar).

Ben Franklin utilizó una estrategia similar cuando estaba mejorando sus habilidades de escritura.

Leía un artículo de su periódico favorito un par de veces. Luego, deconstruiría las técnicas que utilizó el autor. Guardaba el artículo e intentaba reproducirlo de manera similar. Después de escribir su versión, compararía los resultados y analizaría su ejecución.

La otra forma de obtener comentarios es permitir que un desarrollador con más experiencia vea y comente su código.

Tener un par de ojos nuevos puede ayudarlo a resolver problemas individuales y también puede ayudarlo a volver al camino si va en la dirección equivocada.

Puede ser aterrador que otra persona mire su código (o incluso tener una conversación con un desarrollador experimentado). Ninguno de nosotros quiere parecer tonto. Si puede superar su miedo, recibir comentarios de los demás puede tener un gran impacto.

Uno de mis mayores arrepentimientos cuando me estaba enseñando a codificar fue que no recibí suficientes comentarios. Mi código era un desastre y estaba perdiendo mucho tiempo en cosas sin importancia.

Obtener comentarios de un desarrollador más experimentado me habría ahorrado mucho tiempo y esfuerzo. Al instante habrían visto lo que estaba haciendo mal y me hubieran puesto en un camino más recto.

Piense en los comentarios de un desarrollador experimentado como una brújula. No lo llevarán físicamente a su destino, pero se asegurarán de que vaya en la dirección correcta.

Ajustar

La retroalimentación es inútil si no la usas.

Aprender a codificar es como moverse por una habitación oscura. Empieza a caminar, choca con algunos muebles, ajusta su ruta y vuelve a intentarlo.

Según los comentarios que reciba, es importante que se tome un tiempo para pensar en la brecha entre lo que quería hacer y lo que realmente sucedió. Basándose en esa brecha, haga ajustes a medida que avanza.

Si no hace ajustes, no mejorará.

Deberá ajustar líneas específicas al código para que su programa funcione. A veces, también necesitará ajustar su enfoque a un nivel macro.

Nuestro instinto inicial cuando no estamos progresando es esforzarnos más. Esto solo es efectivo hasta cierto punto.

Si no obtiene los resultados que desea, intente atacar las cosas desde diferentes ángulos. Puede que se necesite algo de experimentación para hacerlo bien.

Repetir

Realizar una tarea una vez no es suficiente.

Nuestras mentes no almacenan información como las computadoras. Tendemos a olvidar la información nueva tan rápido como la aprendemos.

Aprender algo nuevo requiere que repitas una tarea varias veces antes de que se mantenga.

La repetición es una señal para nuestro cerebro de que una nueva información o un nuevo comportamiento es valioso y no debe olvidarse.

La etapa de repetición para adquirir habilidad no es fácil. No se supone que sea así. Está tratando conscientemente de reprogramar su cerebro y su cuerpo naturalmente querrá hacer lo que le es familiar.

Deberá esforzarse constantemente para aprender a ser competente.

La única forma infalible de no aprender a codificar es saliendo. Si no se rinde y mantiene la coherencia, podrá repetir el material de codificación importante y todo comenzará a tener sentido.

No importa lo difícil que se sienta, asegúrese de desarrollar un hábito de estudio constante. Es casi imposible aprender a codificar sin uno.

Para profundizar en cómo puedes ser más consistente, escribí un artículo sobre técnicas específicas que puedes usar.

Conclusión

El proceso de adquirir habilidad es simple, pero no es fácil. Eres tu mayor enemigo en el proceso.

Los viejos hábitos son difíciles de romper. Cada nueva habilidad es su propia batalla por ganar.

Manténgase concentrado, asegúrese de esforzarse, ajústese en función de los comentarios, enjuague y repita.

Si sigue el marco de práctica deliberada, creo que se sorprenderá con la velocidad a la que aprende la programación.

La mejor de las suertes.

Si desea conocer otras ideas que he aprendido a lo largo del camino, siga mi cuenta Zero to Programmer en Twitter. El objetivo de la cuenta es ayudarlo a aprender a programar de manera más eficiente.