<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Damian Demasi (Colo.Codes)</title>
    <description>The latest articles on DEV Community by Damian Demasi (Colo.Codes) (@colocodeses).</description>
    <link>https://dev.to/colocodeses</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F922315%2Ffecde8eb-425b-4415-96d0-9ac9270aaad1.jpg</url>
      <title>DEV Community: Damian Demasi (Colo.Codes)</title>
      <link>https://dev.to/colocodeses</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/colocodeses"/>
    <language>en</language>
    <item>
      <title>Aprender a programar: con la ayuda de Ron</title>
      <dc:creator>Damian Demasi (Colo.Codes)</dc:creator>
      <pubDate>Wed, 05 Oct 2022 09:18:22 +0000</pubDate>
      <link>https://dev.to/colocodeses/aprender-a-programar-con-la-ayuda-de-ron-c10</link>
      <guid>https://dev.to/colocodeses/aprender-a-programar-con-la-ayuda-de-ron-c10</guid>
      <description>&lt;p&gt;Permíteme presentarte a &lt;strong&gt;Ron&lt;/strong&gt;, una persona común como tú y como yo, excepto que nació en un mundo lleno de magia. La vida llevó a Ron a experimentar muchas aventuras cuando era joven. Aun así, de alguna manera terminó trabajando como gerente en un emporio minorista de bromas mágicas, un trabajo del que finalmente se cansó. Como quería comenzar a trabajar en algo más gratificante, comenzó a investigar una posible carrera en programación y, más específicamente, en desarrollo web.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1664918691712%2FzxWerUoVl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1664918691712%2FzxWerUoVl.png" alt="image.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pero Ron sabe que sus técnicas de estudio tienen algunos problemas: &lt;strong&gt;no sabe cómo mejorar sus puntos más débiles&lt;/strong&gt;, suele pensar que &lt;strong&gt;los exámenes son una pérdida de tiempo&lt;/strong&gt; y constantemente &lt;strong&gt;toma los comentarios de retroalimentación de manera negativa&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Si prefieres ver el contenido de este artículo en mi video de YouTube, puedes hacerlo haciendo &lt;a href="https://youtu.be/aZpS3Qd1T-E" rel="noopener noreferrer"&gt;click aquí&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/aZpS3Qd1T-E"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;A lo largo de este post ayudaremos a Ron enseñándole cómo atacar sus puntos más débiles para mejorarlos, cómo puede aprender poniéndose a prueba sobre conceptos de programación y cómo puede permitir que los comentarios de retroalimentación mejoren sus habilidades de programación.&lt;/p&gt;

&lt;p&gt;Este artículo es el segundo que trata sobre los conceptos presentados en el libro &lt;a href="https://amzn.to/3QviJ4K" rel="noopener noreferrer"&gt;Ultralearning de Scott Yong&lt;/a&gt;, y en él aplico estos conceptos al área de aprendizaje de programación, ya que creo que son muy útiles allí. Si deseas saber más sobre estos temas, te recomiendo leer el libro.&lt;/p&gt;

&lt;p&gt;En el próximo post publicaré al menos dos principios de aprendizaje más aplicados a la programación, por lo que es posible que desees &lt;a href="https://twitter.com/DamianDemasiES" rel="noopener noreferrer"&gt;seguirme en Twitter&lt;/a&gt; para recibir una notificación cuando esté publicado.&lt;/p&gt;

&lt;p&gt;Bien, ahora ayudemos a Ron con el primer principio: Entrenamientos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Entrenamientos: ataca tu punto más débil
&lt;/h2&gt;

&lt;p&gt;Tan pronto como Ron se sentó y abrió su curso en línea sobre programación, se sintió abrumado por la complejidad de los temas que quería aprender. Según el libro Ultralearning, aplicar un enfoque de "divide y vencerás" es la mejor manera de superar estos desafíos.&lt;/p&gt;

&lt;p&gt;Ron podría dividir temas complejos en partes más pequeñas, entenderlas, practicarlas y, una vez que domine esas partes pequeñas, volver a armarlas en un todo más complejo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1664919723762%2F1xvYXhK6c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1664919723762%2F1xvYXhK6c.png" alt="Screen Shot 2022-10-05 at 08.10.39.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;La idea clave detrás de este entrenamiento es elegir conceptos críticos y practicarlos. Los ejercicios se desarrollan a partir del principio de Inmediatez, discutido en mi artículo anterior, pero va un poco más profundo, con un enfoque más concentrado.&lt;/p&gt;

&lt;p&gt;A Ron le resulta difícil llevar esta idea a la práctica, así que vamos a darle un par de tácticas que puede usar para diseñar sus ejercicios de entrenamiento.&lt;/p&gt;

&lt;h3&gt;
  
  
  Táctica 1: Componentes
&lt;/h3&gt;

&lt;p&gt;En esta táctica, deberemos encontrar formas de ejercitar (practicar) solo un componente específico del concepto o habilidad que estamos aprendiendo.&lt;/p&gt;

&lt;p&gt;Resulta que Ron tiene problemas para comprender la estructura de los documentos HTML. En este caso, podría practicar pequeñas partes de la estructura HTML, como, por ejemplo, la &lt;a href="https://www.w3.org/TR/html4/struct/global.html" rel="noopener noreferrer"&gt;información de la versión de HTML&lt;/a&gt;. Una vez que haya practicado esta pieza hasta que le resulte natural, puede pasar a practicar otros elementos, aumentando así su conocimiento y experiencia sobre HTML.&lt;/p&gt;

&lt;h3&gt;
  
  
  Táctica 2: Imitador
&lt;/h3&gt;

&lt;p&gt;A veces necesitaremos practicar una parte de un concepto que no es fácil de reproducir por sí misma. En estas situaciones, podríamos copiar las funcionalidades que no queremos practicar y así enfocarnos en las partes que sí nos interesan.&lt;/p&gt;

&lt;p&gt;Ron quiere practicar algunos elementos de formulario HTML, como &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt; y &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt;. Para hacer esto correctamente, necesitará escribir una gran cantidad de código HTML solo para llegar a la sección en la que finalmente puede introducir un elemento &lt;code&gt;&amp;lt;form&amp;gt;&lt;/code&gt; y, una vez allí, practicar sus subelementos: &lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt; y &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;The label element&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;

        &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;
            Click on one of the text labels to toggle the related radio button:
        &lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;

        &lt;span class="nt"&gt;&amp;lt;form&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;"/action_page.php"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"radio"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"html"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"fav_language"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"HTML"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"html"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;HTML&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&amp;lt;br&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"radio"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"css"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"fav_language"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"CSS"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"css"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;CSS&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&amp;lt;br&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt;
                &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"radio"&lt;/span&gt;
                &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"javascript"&lt;/span&gt;
                &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"fav_language"&lt;/span&gt;
                &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"JavaScript"&lt;/span&gt;
            &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;label&lt;/span&gt; &lt;span class="na"&gt;for=&lt;/span&gt;&lt;span class="s"&gt;"javascript"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;JavaScript&lt;span class="nt"&gt;&amp;lt;/label&amp;gt;&amp;lt;br&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&amp;lt;br&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
            &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"submit"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"Submit"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Al usar la táctica del imitador, Ron puede simplemente copiar y pegar el código necesario para crear un formulario vacío y construir sobre eso, practicando los elementos que quiere aprender.&lt;/p&gt;

&lt;p&gt;Sobre la base de este concepto, y una vez que Ron obtenga más conocimiento sobre los sistemas de control de versiones, incluso podría usar &lt;strong&gt;Git&lt;/strong&gt; para crear ramas en su código y practicar partes de él más eficientemente.&lt;/p&gt;

&lt;h3&gt;
  
  
  Táctica 3: El Dojo de Programación
&lt;/h3&gt;

&lt;p&gt;Otra forma de practicar conceptos de programación específicos es trabajar en la resolución de un desafío de programación. Los sitios web como &lt;a href="https://www.codewars.com/" rel="noopener noreferrer"&gt;CodeWars&lt;/a&gt; ofrecen muchos desafíos que podemos usar para practicar nuestras habilidades de programación y así mejorar con el tiempo.&lt;/p&gt;

&lt;p&gt;En sitios web como este, Ron no solo va a escribir código, sino que también encontrará soluciones provistas por otros muggles, quiero decir, por otras personas, algo que le enseñará sobre las diferentes formas en que se puede resolver un mismo problema.&lt;/p&gt;

&lt;p&gt;🧑‍💻 Aquí te dejo un listado de otros sitios similares para practicar programación:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.codewars.com/" rel="noopener noreferrer"&gt;CodeWars&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://leetcode.com/" rel="noopener noreferrer"&gt;LeetCode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coderbyte.com/" rel="noopener noreferrer"&gt;CoderByte&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.codechef.com/" rel="noopener noreferrer"&gt;CodeChef&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.hackerrank.com/" rel="noopener noreferrer"&gt;HackerRank&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ahora ayudemos a Ron a superar sus ideas preconcebidas sobre los exámenes y cómo las puede utilizar como herramientas de aprendizaje.&lt;/p&gt;

&lt;h2&gt;
  
  
  Recuperación de conocimiento: evalúate para aprender
&lt;/h2&gt;

&lt;p&gt;Ron está acostumbrado a pensar acerca de los exámenes como una forma de evaluar el conocimiento cuando, de hecho, también es una forma de crearlo. Debemos ponernos a prueba antes de sentirnos seguros, incluso si no sabemos todas las respuestas, porque al hacerlo prepararemos nuestra mente para prestar atención a la información que luce como una solución cuando la aprendamos más adelante.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/ZaRz2080kt4Yg/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/ZaRz2080kt4Yg/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ron está acostumbrado a pasar largas horas revisando pasivamente sus puntos resaltados en libros y notas, con la esperanza de que algo se quede pegado en su memoria. Esto no es lo que el libro llama “recuperación de conocimiento”. La recuperación de conocimiento es cerrar el libro y tratar de responder preguntas sobre el tema que acabamos de aprender. Por eso es fundamental construir nuestros propios proyectos en programación, porque es aquí cuando descubrimos lo que sabemos y lo que no sabemos.&lt;/p&gt;

&lt;p&gt;Si tenemos las respuestas a lo que queremos recuperar, como las respuestas que figuran al final de un libro, podemos comparar nuestro conocimiento recobrado con las respuestas correctas reales, mejorando así nuestra comprensión y retención.&lt;/p&gt;

&lt;p&gt;Ron está tomando un curso sobre JavaScript, y el instructor dice, después de mostrar cómo se construye algo, "Bueno, ahora intenta construir esta funcionalidad". Ron debería tratar de construirla sin mirar por segunda vez cómo lo hizo el instructor y buscar en Google cosas que no sabe o recuerda. Una vez que termine de crearla, puede continuar viendo el curso y comparar su solución con la solución propuesta por el instructor. Esto desencadenará varios momentos de "¡ajá!" en Ron, manteniéndolo involucrado en las actividades de aprendizaje.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/VwUquCGtIatGg/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/VwUquCGtIatGg/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ron debe evitar hacer una recuperación simple de conocimiento, como responder preguntas de opción múltiple. Debería tratar de hacer una recuperación abierta: escribir todo lo que sabe sobre un tema específico. Este es el mejor método para aprovechar al máximo sus actividades de recuperación de conocimiento. Para obtener más detalles sobre la prueba científica detrás de esto, puedes leer el capítulo 8 del libro Ultralearning.&lt;/p&gt;

&lt;p&gt;Ron necesita algunas tácticas sobre cómo poner en práctica el concepto de recuperación de conocimiento, así que echemos un vistazo a las siguientes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Táctica 1: Recuperación abierta
&lt;/h3&gt;

&lt;p&gt;Después de leer una sección de un libro o aprender un nuevo concepto, podríamos intentar escribir todo lo que recordamos en una hoja de papel en blanco. Hacer esto nos ayudará a recordar estos conceptos más adelante.&lt;/p&gt;

&lt;h3&gt;
  
  
  Táctica 2: Anotar preguntas
&lt;/h3&gt;

&lt;p&gt;A menudo tomamos notas durante nuestro proceso de aprendizaje para resaltar las cosas que consideramos importantes. Una mejor manera de tomar notas es escribirlas en formato de preguntas para responderlas más adelante.&lt;/p&gt;

&lt;p&gt;En mi caso, hice esto cuando estaba haciendo un curso de Udemy sobre JavaScript. A medida que el curso introducía conceptos, los escribía en una base de datos de Notion en forma de preguntas. Así fue como logré escribir 318 preguntas (con sus respuestas) y tenerlas listas para mis sesiones de recuperación de conocimiento.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1664960586267%2Fp3I_uAPTM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1664960586267%2Fp3I_uAPTM.png" alt="Screen Shot 2022-10-05 at 19.32.32.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Por ejemplo, en lugar de escribir &lt;strong&gt;"La coerción de tipo es..."&lt;/strong&gt;, podríamos escribir &lt;strong&gt;"¿Qué es la coerción de tipo?"&lt;/strong&gt; y referirnos a donde podemos encontrar la respuesta. En este ejemplo, será suficiente un enlace a una publicación en FreeCodeCamp: "La coerción de tipos es el proceso de convertir un valor de un tipo a otro (como una cadena a un número)".&lt;/p&gt;

&lt;p&gt;Pero tengo que hacer un descargo de responsabilidad, y estoy seguro de que Ron se sentirá identificado con esto: aunque tengo todas estas preguntas, todavía estoy luchando por encontrar tiempo y energía para usarlas en sesiones de recuperación de conocimiento. Entonces, no seas como yo, ¡y encuentra tiempo para responder las preguntas! 😅&lt;/p&gt;

&lt;h3&gt;
  
  
  Táctica 3: Desafíos autogenerados
&lt;/h3&gt;

&lt;p&gt;A medida que avanzamos en nuestro material de aprendizaje, podríamos crear desafíos (proyectos acotados) para nosotros mismos para resolverlos más tarde. Por ejemplo, si estamos aprendiendo sobre las APIs, podríamos crear un desafío para usar una API.&lt;/p&gt;

&lt;p&gt;Podríamos crear una lista de todos estos desafíos para abordarlos más adelante y tener nuestro propio repositorio de ejemplos de código que podríamos usar en el futuro.&lt;/p&gt;

&lt;p&gt;Ahora ayudemos a Ron a superar su tendencia a tomar la retroalimentación de manera negativa.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/rjiRFTZ0NIdi/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/rjiRFTZ0NIdi/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Retroalimentación: no esquives los golpes
&lt;/h2&gt;

&lt;p&gt;Durante nuestro proceso de aprendizaje, vamos a encontrar retroalimentación (feedback). Podría provenir de otras personas expresando sus opiniones, pero la mayoría de las veces provendrá de una computadora: nuestro código no funciona como esperamos.&lt;/p&gt;

&lt;p&gt;No debemos permitir que nuestros egos se interpongan en el camino de esta retroalimentación. Por un lado, podemos pensar que como nuestro programa no funciona, no somos aptos para ser programadores. O, por otro lado, creer que somos grandes programadores porque conseguimos que nuestro código de "Hola, mundo" funcionara al primer intento.&lt;/p&gt;

&lt;p&gt;Por lo general, Ron se siente reacio a compartir su código con otros, ya que enfrentará críticas. La mala noticia es que otros deben revisar nuestro código, ya que esta es una práctica estándar en la industria de la programación. Aquí debemos recordar el concepto de tener una mentalidad de crecimiento (como presenté en el primer post de esta serie) y no tomar comentarios o críticas de manera incorrecta. La retroalimentación es lo que nos hace mejores programadores.&lt;/p&gt;

&lt;p&gt;Démosle a Ron algunas tácticas para mejorar su respuesta a la retroalimentación y usarla de la mejor manera posible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Táctica 1: cancelación de ruido
&lt;/h3&gt;

&lt;p&gt;Cada vez que recibamos una respuesta u opinión sobre nuestro código, veremos que por lo general está compuesta de una parte constructiva y otra ruidosa. Deberíamos aprender a ignorar el ruido y centrarnos en la parte constructiva.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1664959773391%2Fe6EFIRMd_.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1664959773391%2Fe6EFIRMd_.png" alt="Screen Shot 2022-10-05 at 19.18.32.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Por ejemplo, alguien puede comentar sobre el código de Ron: "No eres bueno programando porque olvidaste borrar este timeout en este componente de React. Deberías volver a vender chistes de magia...". La parte constructiva de esta retroalimentación es que Ron debería prestar más atención a la eliminación de timeouts en su código y así evitar memory leaks, por ejemplo. El ruido es la primera y última parte de esta retroalimentación, un juicio subjetivo que alguien hizo sobre las capacidades de Ron como programador, y debería ignorarlo, ya que la persona que da la retroalimentación probablemente no lo conoce bien. No es posible que Ron pueda escribir código sin cometer errores (es por eso que nuestro código debe ser revisado por otros compañeros programadores y pasar pruebas de control de calidad).&lt;/p&gt;

&lt;h3&gt;
  
  
  Táctica 2: Encontrar el punto óptimo de dificultad
&lt;/h3&gt;

&lt;p&gt;La retroalimentación que nos da la computadora cuando escribimos nuestro código es muy necesaria, ya que nos dirá si el código funciona o no. Si Ron comete demasiados errores, o muy pocos, debe disminuir o aumentar la dificultad del proyecto en el que está trabajando para obtener una retroalimentación más útil.&lt;/p&gt;

&lt;h3&gt;
  
  
  Táctica 3: Meta retroalimentación
&lt;/h3&gt;

&lt;p&gt;Este tipo de retroalimentación no se trata del código que estamos escribiendo, sino del éxito general de la estrategia que usamos para aprender a programar.&lt;/p&gt;

&lt;p&gt;Ron podría experimentar con diferentes métodos de estudio, comparándolos y contrastándolos. La mejor manera de hacer esta comparación es evaluándose a sí mismo: ¿Ron aprende más con el método A o con el B? ¿Qué método lleva más tiempo? ¿Qué método es más probable que utilice en sus actividades de estudio?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/FCeqsn7FF2xIQ/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/FCeqsn7FF2xIQ/giphy.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Pensamientos finales
&lt;/h2&gt;

&lt;p&gt;Llegando al final de este artículo, espero le hayamos dado a Ron una buena idea sobre cómo puede mejorar sus puntos más débiles, cómo aprender de manera efectiva evaluándose a sí mismo y cómo recibir comentarios de manera constructiva para mejorar sus habilidades de programación. Estoy seguro de que Ron ahora se siente más seguro para aprender a programar.&lt;/p&gt;

&lt;p&gt;Quiero recordarte que hay al menos dos principios más que cubriré en el próximo post, por lo que es posible que desees &lt;a href="https://twitter.com/DamianDemasiES" rel="noopener noreferrer"&gt;seguirme en Twitter&lt;/a&gt; para recibir una notificación cuando se publique.&lt;/p&gt;

&lt;p&gt;¿Alguna vez te has sentido como Ron? &lt;strong&gt;¿Cuál de los principios cubiertos resonó más contigo?&lt;/strong&gt; Por favor, deja tu respuesta en los comentarios para que podamos discutir más al respecto.&lt;/p&gt;

&lt;p&gt;Muchas gracias por leer este artículo, y ¡nos vemos la próxima! 👋&lt;/p&gt;




&lt;p&gt;🐦 &lt;strong&gt;Twitter&lt;/strong&gt; - &lt;a href="https://twitter.com/DamianDemasiES" rel="noopener noreferrer"&gt;Sígueme en Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎥 &lt;strong&gt;YouTube&lt;/strong&gt; -  &lt;a href="https://www.youtube.com/channel/UCFUBlxKVHymA2VVUsf46aUQ" rel="noopener noreferrer"&gt;Visita mi canal de YouTube en español&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
    </item>
    <item>
      <title>Aprender a programar: los primeros 3 pasos</title>
      <dc:creator>Damian Demasi (Colo.Codes)</dc:creator>
      <pubDate>Wed, 14 Sep 2022 22:42:46 +0000</pubDate>
      <link>https://dev.to/colocodeses/aprender-a-programar-los-primeros-3-pasos-27bp</link>
      <guid>https://dev.to/colocodeses/aprender-a-programar-los-primeros-3-pasos-27bp</guid>
      <description>&lt;p&gt;En este post voy a tratar los primeros tres conceptos presentados en el libro “Ultralearning”:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Meta-aprendizaje&lt;/li&gt;
&lt;li&gt;Foco, e&lt;/li&gt;
&lt;li&gt;Inmediatez&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;“Ultralearning” es un libro en el que su autor, Scott Yong, presenta varios principios que podemos aplicar para aprender temas complejos, como la programación. Si quieres ahondar más en estos principios, te recomiendo leas el libro, ya que no tiene desperdicio.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9xlOAgSj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1663193509176/mCSdnngB7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9xlOAgSj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1663193509176/mCSdnngB7.png" alt="image.png" width="880" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Puedes ver el contenido de este post en mi &lt;a href="https://youtu.be/RjGQ0bFpUls"&gt;video en YouTube&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/RjGQ0bFpUls"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;En mis siguientes posts estaré cubriendo al menos cinco principios más, así que quizás te convenga suscribirte mi &lt;a href="https://mailchi.mp/22b236f812b1/subscribe-to-newsletter"&gt;newsletter&lt;/a&gt; para recibir notificaciones de cuando estos posts estén colgados en mi blog.&lt;/p&gt;

&lt;p&gt;Seguramente te estás preguntado qué es todo esto de ultralearning. Básicamente, es una estrategia para adquirir habilidades que es autodirigida e intensa. No es para nada pasiva o entretenida, como podría ser el ver un video sobre programación mientras nos estamos relajando en el sofá. Es sistemática e iterativa. Es la diferencia entre soñar con ser programadores algún día mientras vemos un video en YouTube de cómo es el día a día de un programador, y el tomar masiva acción, como puede ser el hecho de avocarnos por completo, en cuerpo, mente y espíritu, al hecho de aprender a programar.&lt;/p&gt;

&lt;p&gt;Cuando estemos aplicando los conceptos de ultralearning vamos a estar aprendido por medio de la acción (este concepto es llamado “inmediatez”), y comenzando antes de que nos sintamos preparados. Esto significa que estaremos programando desde el primer día. Vamos a ir en busca de una retroalimentación inmediata (como, por ejemplo, el código que escribamos arrojará mensajes de error), y de esta manera vamos a saber qué es lo que debemos corregir o mejorar. Un claro ejemplo de esto puede ser es el tomar un curso de programación en &lt;a href="https://www.freecodecamp.org/espanol/"&gt;freeCodeCamp&lt;/a&gt; (que, por cierto, recomiendo mucho): en él estarás programando desde el comienzo, incluso si no sabes mucho acerca de programación.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oFKeMg7L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1663194206117/cZ6VcEJm5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oFKeMg7L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1663194206117/cZ6VcEJm5.png" alt="image.png" width="880" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pero… ¿Vale la pena invertir tanto esfuerzo en aprender programación? Aprender una nueva habilidad en profundidad como estaremos haciendo si aplicamos estos principios puede generar una sensación de propósito en nuestras vidas, porque el hecho de desarrollar habilidades de esta manera es altamente significativo y gratificante.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/e9naycep2pz7OHQ4n0/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/e9naycep2pz7OHQ4n0/giphy.gif" width="480" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Es conveniente tener en cuenta el hecho de que si algunos de los principios no funcionan en nuestro caso, deberemos reevaluarlos y cambiar lo que sea necesario.&lt;/p&gt;

&lt;p&gt;Bueno, suficiente introducción. Comencemos con el primer principio: meta-aprendizaje.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meta-aprendizaje
&lt;/h2&gt;

&lt;p&gt;Comenzaremos nuestro camino de aprendizaje creando un mapa de cómo luce el aprender programación. Aquí nos interesará saber cómo se adquiere el conocimiento sobre programación y como éste se estructura.&lt;/p&gt;

&lt;p&gt;Pero no te preocupes, porque no tienes que comenzar de cero. Hace un tiempo ya, he armado una plantilla de Notion que resume los conceptos principales involucrados en el desarrollo web, una lista de mapas conceptuales y temas que están relacionados a la programación. Puedes descargar esta plantilla de manera gratuita, y modificarla como quieras, desde &lt;a href="https://mailchi.mp/77b7cbf1b03a/web-development-notion-template"&gt;este enlace&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_RIl_E7S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1663194344182/5KloFCon9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_RIl_E7S--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1663194344182/5KloFCon9.png" alt="image.png" width="880" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Volviendo al principio de meta-aprendizaje, trata de responder estas preguntas lo mejor que puedas: “¿Por qué?”, “¿Qué?”, y “¿Cómo?”.&lt;/p&gt;

&lt;h3&gt;
  
  
  “¿Por qué?”
&lt;/h3&gt;

&lt;p&gt;En el primer post que publiqué en esta serie, hablé de la importancia de tener un claro “por qué”. ¿Cuál es la motivación que tienes para aprender a programar? Para responder esta pregunta, puedes consultar a programadores que ya estén haciendo lo que quieres hacer, y preguntarles que es lo que disfrutan más (y menos) de sus trabajos como programadores.&lt;/p&gt;

&lt;h3&gt;
  
  
  “¿Qué?”
&lt;/h3&gt;

&lt;p&gt;Construye una lista de los conocimientos y habilidades que necesitas adquirir. Puedes comenzar con la &lt;a href="https://mailchi.mp/77b7cbf1b03a/web-development-notion-template"&gt;plantilla de Notion&lt;/a&gt; que compartí anteriormente, y modificarla según tu conveniencia. Crea una lista de conceptos (ideas que necesitas entender, pero no memorizar), hechos (cosas que necesitas memorizar), y procedimientos (todo aquello que necesite ser practicado, acciones a tomar).&lt;/p&gt;

&lt;h3&gt;
  
  
  “¿Cómo?”
&lt;/h3&gt;

&lt;p&gt;Para responder esta pregunta, puedes utilizar estos dos métodos: “evaluación comparativa” y “enfatizar y excluir”&lt;/p&gt;

&lt;h4&gt;
  
  
  Método 1: Evaluación comparativa
&lt;/h4&gt;

&lt;p&gt;Encuentra referencias acerca de cómo otras personas están aprendiendo a programar. Estudia los planes de estudios de universidades, o los temarios de cursos online o libros, e investiga que mapas de ruta existen para el tipo de programación que te interesa (como los que he mencionado en la plantilla de Notion). Con este método, es importante que trates de conseguir material de calidad.&lt;/p&gt;

&lt;h4&gt;
  
  
  Método 2: Enfatiza y excluye
&lt;/h4&gt;

&lt;p&gt;Teniendo en consideración por qué quieres aprender programación, redobla tus esfuerzos en las tareas que están en línea con ese por qué. Por ejemplo, podrías querer aprender desarrollo web para construir una aplicación que lleve un registro de los diferentes estados por los que pasa una tarea, similar a como esto es realizado en la metodología Kanban, por lo que deberías enfocarte en estudiar tecnologías web en lugar de lenguajes de bajo nivel, como C, o motores de juegos en 3D.&lt;/p&gt;

&lt;p&gt;Una vez que tienes una clara idea de cómo responder a las preguntas de “¿Por qué?”, “¿Qué?”, y “¿Cómo?”, es momento de enfocarnos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Foco
&lt;/h2&gt;

&lt;p&gt;Este concepto también fue cubierto en cierta medida en mi post anterior cuando hablé sobre el libro Céntrate (Deep Work), pero este concepto es tan importante que nuevamente está presente en este libro, Ultralearning.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/TGROKbWqxXplM7aznn/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/TGROKbWqxXplM7aznn/giphy.gif" width="480" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Necesitamos desarrollar la habilidad de concentración. Debemos ser capaces de establecer porciones de tiempo para realizar nuestras actividades de aprendizaje, y hacer que estas actividades sean sencillas de comenzar.&lt;/p&gt;

&lt;p&gt;Las dificultades más comunes en cuanto a enfocarnos radican en el momento de comenzar a hacerlo (procrastinamos) y cuando debemos mantener el enfoque (nos distraemos).&lt;/p&gt;

&lt;h3&gt;
  
  
  Procrastinación
&lt;/h3&gt;

&lt;p&gt;Para ayudarnos a superar la procrastinación, podemos establecer plazos que nos ayuden a realizar lo que tenemos que hacer. Es importante que seamos capaces de reconocer cuándo estamos procrastinando. Tenemos que recordar que esa sensación desagradable que sentimos se dará sólo al comienzo de la actividad, durante los primeros minutos. Una vez que comencemos a hacer la tarea (estudiar programación), la sensación desagradable irá disminuyendo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/gt3YKSFV3JylpvJk21/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/gt3YKSFV3JylpvJk21/giphy.gif" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Una técnica que funciona muy bien en estos casos es el temporizador Pomodoro: establecemos un temporizador por 25 minutos, comenzamos a hacer la tarea, y nos permitimos descansar por 5 minutos cuando el temporizador termina. Este ciclo lo repetiremos cuantas veces sea necesario hasta que terminemos la tarea.&lt;/p&gt;

&lt;p&gt;Otra técnica muy útil es la de usar pequeños checkpoints (o puntos de control): comenzaremos a estudiar y terminaremos cuando hayamos leído una página, un capítulo, o un tema específico.&lt;/p&gt;

&lt;h3&gt;
  
  
  Distracción
&lt;/h3&gt;

&lt;p&gt;La clave para evitar distraernos con facilidad es entrar en un estado de “flow” (algunas personas se refieren a este estado como “estar en la zona” o “enchufados”). En este estado, nuestra mente es completamente absorbida por la tarea que estamos realizando. Para lograr entrar en estado de “flow” con facilidad, tenemos que asegurarnos que la dificultad de la tarea no sea ni muy alta ni muy baja.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/bAplZhiLAsNnG/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/bAplZhiLAsNnG/giphy.gif" width="500" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pero… no te preocupes demasiado si no logras alcanzar un estado de “flow”. Lo que podemos hacer en su lugar es enfocarnos en alcanzar metas cortas o pequeñas en magnitud. De manera similar a los checkpoints descriptos con anterioridad, esto nos ayudará a mantener la motivación.&lt;/p&gt;

&lt;p&gt;También deberemos mantener un balance entre estudiar programación y descansar. Con dedicarle 50 minutos a 1 hora bastará para aprender algo sobre la mayoría de los temas. Luego de esto, podremos descansar por un tiempo, y repetir el ciclo nuevamente. Utilizar la técnica del temporizador Pomodoro también será de ayuda aquí.&lt;/p&gt;

&lt;p&gt;Adicionalmente, necesitamos asegurarnos de que el ambiente en el cual estudiaremos se encuentra libre de distracciones, como pueden ser nuestros teléfonos celulares, el hecho de mirar videos o jugar a nuestro juego favorito de PC durante la sesión de estudio, ruidos que nos puedan distraer, o una falta de herramientas de estudio (lápices, libros, o una lámpara).&lt;/p&gt;

&lt;p&gt;Deberemos comprometernos con la tarea. Podremos hacer eso por medio de la toma de notas para explicar conceptos difíciles, haciéndole preguntas al libro o curso y tomando notas de ellas para responderlas luego, y tratando de identificar cómo aplicaremos los conceptos que estamos aprendiendo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/3ohc1bNYPZR8gQ5ybS/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/3ohc1bNYPZR8gQ5ybS/giphy.gif" width="480" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finalmente, si nos atascamos, podemos tomar un descanso y dejar que nuestro enfoque se expanda. Podríamos tomar una caminata, comer un tentempié, o tener una charla rápida con alguien. Esto hará que nuestra consciencia atraiga nuevas ideas que pueden servirnos para desatascarnos.&lt;/p&gt;

&lt;p&gt;Ahora pasemos al principio de Inmediatez.&lt;/p&gt;

&lt;h2&gt;
  
  
  Inmediatez
&lt;/h2&gt;

&lt;p&gt;Aprenderemos mejor por medio de hacer lo que queremos hacer. ¿Quieres construir un sitio web? Comienza a construirlo mientras vas aprendiendo lo necesario para hacerlo. Hacer esto se sentirá difícil, frustrante, e incluso doloroso, así que es muy probable que quieras evitarlo. Pero lo que debemos hacer es enfocarnos en resolver problemas de manera práctica en lugar de cargarnos con conocimientos teóricos. El autor del libro dice: “El aprendizaje toma lugar haciendo la cosa en la que quieres ser bueno o buena”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/87xihBthJ1DkA/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/87xihBthJ1DkA/giphy.gif" width="299" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Podemos aplicar diferentes tácticas para aprender por medio de lo que queremos hacer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Táctica 1: Aprendizaje basado en proyectos
&lt;/h3&gt;

&lt;p&gt;Podemos organizar nuestro aprendizaje alrededor de un proyecto. Por ejemplo, podríamos decidir construir un sitio web para un restaurante, lo que implicará dividir este proyecto en partes más pequeñas: el componente de inicio de sesión para usuarios, las barras de menú, la base de datos para las órdenes, etc. Entonces, podríamos ir aprendiendo lo necesario para ir completando estos sub-proyectos. Si nos encontramos en una situación en la que no sabemos qué es lo que tenemos que aprender, podemos visitar foros especializados en programación (como algunos sub-Reddits), o preguntarles a desarrolladores más experimentados por medio de Twitter o canales de Discord.&lt;/p&gt;

&lt;h3&gt;
  
  
  Táctica 2: Aprendizaje inmersivo
&lt;/h3&gt;

&lt;p&gt;Rodéate de un ambiente en el cual la programación esté siempre presente. Únete a grupos de Meetup, participa en proyectos open-source, explora diferentes canales de Discord, y participa en foros, “hackathons” o “coding challenges”. El objetivo de esta táctica es buscar actividades que te puedan acercar a aprender cosas nuevas.&lt;/p&gt;

&lt;h3&gt;
  
  
  Táctica 3: Overkill (exageración)
&lt;/h3&gt;

&lt;p&gt;Decide hacer algo que sea mucho más complejo de lo que realmente quieres aprender. Por ejemplo, en lugar de aprender JavaScript para construir un sitio interactivo, decide que dictarás un curso sobre JavaScript, el cual será publicado en formato de video. Al hacer esto, incluso si no logras entregar el curso de la manera que habías pensado, estarás aprendiendo mucho más de lo que inicialmente imaginaste acerca de JavaScript si sólo te hubieses dedicado a construir una simple aplicación.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pensamientos finales
&lt;/h2&gt;

&lt;p&gt;Llegando al final de este post, quiero recordarte que todavía existen al menos 5 principios más que estaré tratando en mis próximos posts, así que quizás quieras suscribirte a mi &lt;a href="https://mailchi.mp/22b236f812b1/subscribe-to-newsletter"&gt;newsletter&lt;/a&gt; para enterarte cuando estén publicados.&lt;/p&gt;

&lt;p&gt;¿Cuáles de estos principios te ha interesado más? Deja tu respuesta en los comentarios así podemos discutirlo en mayor profundidad.&lt;/p&gt;

&lt;p&gt;Muchas gracias por leer este post, y ¡nos vemos la próxima! 👋&lt;/p&gt;




&lt;p&gt;🐦 &lt;strong&gt;Twitter&lt;/strong&gt; - &lt;a href="https://twitter.com/DamianDemasiES"&gt;Sígueme en Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎥 &lt;strong&gt;YouTube&lt;/strong&gt; -  &lt;a href="https://www.youtube.com/channel/UCFUBlxKVHymA2VVUsf46aUQ"&gt;Visita mi canal de YouTube en español&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Aprender a Programar - Lo Que Debes Saber Primero</title>
      <dc:creator>Damian Demasi (Colo.Codes)</dc:creator>
      <pubDate>Wed, 07 Sep 2022 10:15:40 +0000</pubDate>
      <link>https://dev.to/colocodeses/aprender-a-programar-lo-que-debes-saber-primero-4f4g</link>
      <guid>https://dev.to/colocodeses/aprender-a-programar-lo-que-debes-saber-primero-4f4g</guid>
      <description>&lt;p&gt;¿Estás pensando en aprender programación? Creo que hay algo que deberías saber primero…&lt;/p&gt;

&lt;p&gt;Este post abordará los temas de:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Tener claro el por qué queremos aprender a programar&lt;/li&gt;
&lt;li&gt;La construcción de la Pasión&lt;/li&gt;
&lt;li&gt;La importancia de mantener una Mentalidad de Crecimiento&lt;/li&gt;
&lt;li&gt;No depender de la Motivación&lt;/li&gt;
&lt;li&gt;Objetivos vs Sistemas&lt;/li&gt;
&lt;li&gt;La importancia de tener Grit (aguante)&lt;/li&gt;
&lt;li&gt;Buenos Hábitos&lt;/li&gt;
&lt;li&gt;Realizar trabajo sin distracciones&lt;/li&gt;
&lt;li&gt;Poner cuidado y atención en tu oficio&lt;/li&gt;
&lt;li&gt;La comparación con otras personas&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Uno tiende a enfocarse en los lenguajes a aprender, los cursos a tomar y libros a leer. Pero lo más importante es desarrollar una mentalidad y actitud que nos permita afrontar el desafío de aprender a programar de la mejor manera posible.&lt;/p&gt;

&lt;p&gt;Si quieres ver el contenido de este artículo en video, &lt;a href="https://youtu.be/PDp5Y1HznYo"&gt;mira lo que he publicado en YouTube&lt;/a&gt;:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/PDp5Y1HznYo"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Tener claro el por qué queremos aprender a programar
&lt;/h2&gt;

&lt;p&gt;Nuestro por qué nos ayudará a seguir avanzando cuando nos falte motivación o las cosas se pongan difíciles. Nuestro por qué le dará sentido al esfuerzo que invertiremos en este camino de aprendizaje. Para aprender más sobre este tema, recomiendo leer el libro &lt;a href="https://amzn.to/3K03HBA"&gt;El Hombre en Busca de Sentido&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;En mi caso particular, tengo impreso mi “por qué” y colgado encima de mi monitor. Lo uso como una herramienta cuando no me siento con ganas de estudiar o afrontar algún problema con el código que me resulta difícil de resolver, o cuando la confianza en mí mismo flaquea. Me recuerda la importancia de lo que he elegido hacer, y las razones por las que tengo que continuar a pesar de la incomodidad o la falta de ganas.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lvcvrdA6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gjy1htmgrl8404khbygr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lvcvrdA6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gjy1htmgrl8404khbygr.png" alt="Image description" width="880" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;También uso mi “por qué” para recordar que al haber elegido la programación  como mi actividad principal, elijo tener una mejor calidad de problemas, ya que problemas vamos a tener no importa lo que hagamos. Para ahondar en este tema, recomiendo leer el libro &lt;a href="https://amzn.to/3dABo04"&gt;El Sutil Arte de que te Importe un Carajo&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pasión
&lt;/h2&gt;

&lt;p&gt;La pasión no es algo que se encuentra a la vuelta de alguna esquina mientras vamos caminando por la calle, sino que se construye día a día. Uno puede elegir una actividad que despierte cierto interés, pero el hecho de que ese interés se convierta en pasión llevará tiempo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/ItvHXpVnqGffddbNBA/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/ItvHXpVnqGffddbNBA/giphy.gif" width="480" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Es por todo esto que no le debemos dar mucha importancia a la pasión cuando recién estamos comenzando este camino, y tendríamos que darle tiempo a que se desarolle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mentalidad de crecimiento
&lt;/h2&gt;

&lt;p&gt;La mentalidad de crecimiento es un concepto desarrollado por la psicóloga Carol Dweck y tratado en su libro &lt;a href="https://amzn.to/3w2cvRu"&gt;Mindset&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;La manera en la que nos vemos a nosotros mismos afecta profundamente como nos manejamos en la vida. Si nos percibimos como alguien que no es inteligente, o poco capaz, tomaremos decisiones que reforzarán esa mentalidad y nos jugará en contra cuando decidamos convertirnos en programadores.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/d3mlE7uhX8KFgEmY/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/d3mlE7uhX8KFgEmY/giphy.gif" width="480" height="264"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Por el contrario, si entendemos que la inteligencia es algo que se puede desarrollar, al igual que nuestras habilidades, estaremos en una posición más saludable para enfrentar los desafíos. La mentalidad de crecimiento se basa en la creencia de que nuestras cualidades son cosas que se pueden cultivar a través de nuestro esfuerzo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Motivación
&lt;/h2&gt;

&lt;p&gt;Según Steven Pressfield (autor de The War of Art), la motivación es el empuje que sentimos cuando el dolor por no hacer algo es superior al dolor de hacerlo. Por ejemplo: el dolor de trabajar en una actividad que no nos gusta, es mayor al dolor de sentarnos a estudiar programación para cambiar nuestra carrera, por lo que decidimos invertir nuestro tiempo libre en leer libros o tomar cursos sobre programación.&lt;/p&gt;

&lt;p&gt;Existen dos tipos de motivación: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Externa (extrínseca): proviene de afuera de nuestra área de control y no depende de nosotros mismos. Por ejemplo, podríamos elegir trabajar como desarrolladores de software porque queremos ganar buen dinero, o crear un programa para que los demás nos vean como alguien inteligente.&lt;/li&gt;
&lt;li&gt;Interna (intrínseca): está ubicada en nuestra área de control y depende de nosotros mismos. Por ejemplo, podríamos elegir trabajar como desarrolladores de software porque nos interesa la tecnología y lograr maestría en esta actividad, o crear un programa por el hecho de que nos guste generar algo de la nada misma.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/J7jsbfcJ2O5eo/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/J7jsbfcJ2O5eo/giphy.gif" width="268" height="200"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Deberíamos hacer foco en la motivación interna, porque es la única que podemos controlar. &lt;/p&gt;

&lt;p&gt;Por otro lado, es conveniente recordar que la motivación por lo general es el resultado de una acción, y no la causa de ella. Esto significa que la motivación aparecerá después de que comencemos a hacer algo, y no antes. Si quieres ahondar más en este tema, te recomiendo leas el libro &lt;a href="https://amzn.to/3w2cHQI"&gt;Hábitos Atómicos&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Debido a que la motivación no siempre está presente antes de comenzar una tarea, como la de sentarnos a estudiar programación, una de las claves para mantenernos motivados es hacer que sea fácil comenzar a hacer aquello que necesitemos hacer: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Podríamos armar un calendario para que podamos dejar el proceso de toma de decisiones en piloto automático.&lt;/li&gt;
&lt;li&gt;También podríamos seguir el mismo ritual o patrón cada vez que nos pongamos a estudiar, para así condicionarnos a realizar esta actividad. Por ejemplo, podemos elegir el mismo lugar, la misma hora, y la misma música cada vez que nos sentamos a estudiar para que nos resulte más fácil hacerlo.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Objetivos vs Sistemas
&lt;/h2&gt;

&lt;p&gt;Es importante tener un objetivo claro, pero también es importante no enfocarnos mucho en él. Mantener el foco en el sistema que utilizaremos para alcanzar ese objetivo será más apropiado, ya que los que ganan y los que pierden tienen los mismos objetivos y metas.&lt;/p&gt;

&lt;p&gt;El hecho de enfocarnos en sistemas (y en nuestros “por qué”) nos ayuda a evitar la procrastinación. Por ejemplo, nuestro sistema puede ser: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Despertarnos temprano&lt;/li&gt;
&lt;li&gt;Ducharnos/bañarnos para asegurarnos de que estamos realmente despiertos&lt;/li&gt;
&lt;li&gt;Preparar el desayuno&lt;/li&gt;
&lt;li&gt;Sentarnos en frente de la computadora con nuestro desayuno&lt;/li&gt;
&lt;li&gt;Abrir nuestro libro de estudio o curso online&lt;/li&gt;
&lt;li&gt;Comenzar a estudiar mientras desayunamos, y hacerlo por un mínimo de 1 hora&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/1FMaabePDEfgk/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/1FMaabePDEfgk/giphy.gif" width="250" height="231"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enfocándonos en realizar este proceso, estaremos haciendo hincapié en el día a día, en lo inmediato, sin preocuparnos tanto en un objetivo futuro, disminuyendo así nuestra ansiedad. Si continuamos aplicando este sistema, inevitablemente alcanzaremos nuestro objetivo de convertirnos en programadores.&lt;/p&gt;

&lt;h2&gt;
  
  
  Grit (aguante)
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://amzn.to/3w2u0kv"&gt;Grit&lt;/a&gt; (o aguante) puede definirse como una determinación feroz de realizar nuestro trabajo. El ser capaz de resistir los contratiempos y trabajar duro. Es por esto por lo que es muy importante saber qué es lo que queremos.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/WRQBXSCnEFJIuxktnw/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/WRQBXSCnEFJIuxktnw/giphy.gif" width="504" height="322"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Podemos tener mucho potencial (o casi nada), pero lo que hacemos con él es lo más importante. Una persona que entiende rápidamente conceptos de programación, pero que no tiene el aguante suficiente para estudiar el tiempo que es necesario, o perseverar en busca de la solución a algún bug, no conseguirá explotar ese potencial.&lt;/p&gt;

&lt;p&gt;Por otro lado, alguien que tiene que leer varias veces los conceptos de programación para entenderlos, pero que es capaz de aguantar un régimen duro de estudio, o la frustración al no encontrar soluciones a su código problemático, explotará su potencial al máximo.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hábitos
&lt;/h2&gt;

&lt;p&gt;Necesitamos definir nuestra identidad como programadores y crear hábitos que sustenten esa identidad. Nuestros hábitos le darán forma a nuestra identidad, y viceversa. ¿Qué tipo de persona quieres ser? ¿Un/a programador/a? ¿Cuáles son los hábitos que un programador debe tener?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/13HgwGsXF0aiGY/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/13HgwGsXF0aiGY/giphy.gif" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Podemos definir nuestra identidad como “soy un programador/a que se preocupa por dar lo mejor de sí mismo/a”. Entonces, cuando estemos por hacer algo que choca con esa identidad (como, por ejemplo, decidir entre programar una aplicación o ver una serie en Netflix), tendremos una manera clara para decidir qué es lo que deberíamos hacer: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“¿Un programador que se preocupa por dar lo mejor de sí mismo elegiría ver una serie de Netflix en lugar de programar una aplicación para aprender un nuevo lenguaje?”&lt;/li&gt;
&lt;li&gt;“¿Una programadora que se preocupa por dar lo mejor de sí misma elegiría programar sin descanso en lugar de salir a la naturaleza para recargar sus energías?”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La clave aquí es no mentirnos o engañarnos a nosotros mismos.&lt;/p&gt;

&lt;h2&gt;
  
  
  Realizar trabajo sin distracciones
&lt;/h2&gt;

&lt;p&gt;De acuerdo con el libro &lt;a href="https://amzn.to/3w6hQaF"&gt;Céntrate (Deep Work)&lt;/a&gt;, trabajar sin distracciones significa tener la habilidad de realizar actividades en un estado de concentración que empuje nuestras capacidades cognitivas a su límite.&lt;/p&gt;

&lt;p&gt;Una de las claves para lograr esto es minimizar las distracciones y distanciarnos de las redes sociales (Facebook, TikTok, Reddit, Twitter, etc.) durante el tiempo que estemos realizando nuestras tareas relacionadas a la programación.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/aDan8Uo90usaCu2Z26/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/aDan8Uo90usaCu2Z26/giphy.gif" width="480" height="271"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El libro recomienda que nos demos un período estricto de tiempo en el que pasaremos estudiando, por ejemplo, definiendo los días y horarios en los que lo haremos. Esto nos ayudará a: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;evitar el burnout (quemarnos),&lt;/li&gt;
&lt;li&gt;que se nos junte demasiado por aprender o practicar, y&lt;/li&gt;
&lt;li&gt;nos mantendrá enfocados en la actividad de estudiar.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Según mi experiencia, las horas de nuestro día no nos rinden de igual manera. Hay momentos del día en los que seremos más productivos para estudiar que otros. Queda en nosotros identificarlos. Por ejemplo, en mi caso, lo que yo hago es asignarles un valor relativo a las diferentes partes de un día. Las horas más valiosas se dan bien temprano por la mañana, ya que estoy lleno de energía, nadie me molesta o interrumpe, y puedo usar este momento para estudiar independientemente del día de la semana que sea.&lt;/p&gt;

&lt;h2&gt;
  
  
  Pon cuidado y atención en tu oficio
&lt;/h2&gt;

&lt;p&gt;Lo que hagamos profesionalmente (incluido el hecho de estudiar) será un reflejo del profesional que queramos ser. Por lo tanto, sería conveniente hacer las cosas de la mejor manera que podamos, ya que esto hablará de la calidad del profesional que somos: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No estudiar programación de manera desganada o descuidando temas importantes.&lt;/li&gt;
&lt;li&gt;Prestar detallada atención y cuidado al código que escribimos.&lt;/li&gt;
&lt;li&gt;En definitiva, preocuparnos y ocuparnos por hacer las cosas lo mejor que nos salgan en ese momento.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A veces encuentro útil el hecho de preguntarme si mi yo futuro (y no otra persona, alguien externo) estaría orgulloso de cómo estoy haciendo las cosas en este momento.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/aDcvK946SC3GwCqLk8/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/aDcvK946SC3GwCqLk8/giphy.gif" width="480" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Si quieres leer más al respecto de este tema, recomiendo leas el libro &lt;a href="https://amzn.to/3SW3m74"&gt;The Pragmatic Programmer&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  No te compares con otras personas
&lt;/h2&gt;

&lt;p&gt;Todos somos diferentes, y tú no sabes los caminos que han llevado a otras personas al punto en donde están hoy, por lo que compararnos con alguien más no tiene sentido.&lt;/p&gt;

&lt;p&gt;En lugar de compararnos con otros, elijamos compararnos con nosotros mismos. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;¿En dónde estabas hace 5 o 10 años en cuanto a tus conocimientos de programación? ¿Estás mejor hoy, o estás tomando acciones para estar mejor mañana/en el futuro?&lt;/li&gt;
&lt;li&gt;¿Sientes que aprendiste poco? ¿Cuánto sabías de este tema particular hace 1, 2 o 5 años atrás? Si sigues estudiando este tema, ¿cuánto aprenderás en 1, 2 o 5 años en el futuro?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/LMhuP91QIPo52/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/LMhuP91QIPo52/giphy.gif" width="245" height="184"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Para terminar…
&lt;/h2&gt;

&lt;p&gt;Recordemos que esta es sólo una guía de las mejores maneras (según mi criterio) de cómo podemos encarar el estudio de la programación incluso antes de tocar un libro o curso que hable de ella. &lt;/p&gt;

&lt;h2&gt;
  
  
  Próximamente
&lt;/h2&gt;

&lt;p&gt;Los siguientes posts abordarán los conceptos y técnicas, desde la perspectiva de aprender programación, descriptas en el libro [Ultralearning(&lt;a href="https://amzn.to/3QviJ4K"&gt;https://amzn.to/3QviJ4K&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;¡Gracias por leer este post, y hasta la próxima! 👋&lt;/p&gt;




&lt;p&gt;🐦 &lt;strong&gt;Twitter&lt;/strong&gt; - &lt;a href="https://twitter.com/DamianDemasiES"&gt;Sígueme en Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎥 &lt;strong&gt;YouTube&lt;/strong&gt; -  &lt;a href="https://www.youtube.com/channel/UCFUBlxKVHymA2VVUsf46aUQ"&gt;Visita mi canal de YouTube en español&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
