⟵ Back to Blog

Francisco Veiras

Programmer

Code

Tuesday, October 19th 2021

Tips para aprender a escribir código que a mi me funcionaron

A menudo me encuentro con que mucha gente me dice “Entiendo como funciona, pero no sé hacerlo” y es algo que a todos nos pasó/pasa cuando arrancamos a aprender un lenguaje nuevo (cualquiera sea), pensamos que con entender la sintaxis basta, pero no es así. Por eso en este artículo voy a plasmar todo aquello que a mí me ayudó a ser capaz de escribir código propio.

Introducción

La mayoría de nosotros cuando arrancamos lo primero que hacemos es copiar código que da el instructor de un curso o de un libro. Sin embargo, gran parte de los cursos o libros de programación solo enseñan algo de sintaxis y posterior a eso, cuando queremos arrojarnos a la creación de código propio nos encontramos con la frustración. Esto es totalmente normal, de hecho Anton Spraul en su libro “Think like a programmer” afirma “Learning the syntax and semantics of a programming language is essential, but it's only the first step..” esto significa que entender la sintaxis es solo el primer paso; aprender la lógica y entender como resolver un problema a través del conocimiento de las limitaciones y las reglas del lenguaje, es el segundo paso.

Más proyectos menos cursos

Habiendo entendido la introducción, el primer tip y el más potente es “Más proyectos menos cursos”, esta no es una frase propia, de hecho quien predica esta forma de aprender y entender las cosas es Gonzalo Pozzo (Solution architect at Vercel), persona a quien estimo mucho y cambio mi eje dentro de este mundo. Hacer proyectos y plasmar ideas en código, te lleva a descubrir nuevos problemas que antes no conocías, ya que ibas de la mano con el instructor o instructora casi como “figuras paternales”.

Al principio, en los primeros proyectos es normal encontrarse con miedo e incertidumbre, pero poco a poco, proyecto tras proyecto eso va quedando atrás.

Entender como resolver problemas

El primer paso es entender la sintaxis del lenguaje deseado, a partir de ahí tenemos una serie de reglas y limitaciones con las que podemos trabajar. Un ejemplo de un problema con reglas y limitaciones es “The fox, the Goose, and the Corn”

En este problema se plantea la situación de un granjero que tiene que cruzar el río con un lobo, un ganso y un saco de maíz.

Limitación 1: esta persona solo puede cruzar con un objeto, ya que en el barco entran solo él y un ítem más. Limitación 2: no puede dejar al ganso solo con el lobo, porque éste último se lo comería. Limitación 3: no puede dejar al maíz solo con el ganso, porque éste último se lo comería.

A partir de esta desestructuración del problema nosotros podemos determinar una solución, lo mismo pasa con escribir código, a partir de una análisis correcto podemos llegar al resultado deseado.

Resolver problemas

Hay cientos de páginas acerca de resolución de problemas, a mi me gusta realizar ejercicios de lógica como el ejemplo anterior de “The fox, the Goose, and the Corn”, hay otros como number slide puzzle y demás. En cuanto a código recomiendo aplicar el tip 1 (Más proyectos menos cursos) y además páginas como LeetCode (en mi canal de YouTube tengo videos resolviendo algunos problemas).

Tolerar y canalizar la frustración

No somos máquinas, es normal que fallemos, pero la diferencia radica en cómo aplicamos esa frustración, hay dos opciones, dejar todo y caer derrotados ante el problema o canalizar esa frustración y transformarla en horas de investigación y aprendizaje.

Cambiar la forma de consumir contenido

El último tip y no por eso menos importante es, cambiar la forma de consumir el contenido. De nada sirve copiar y copiar si no se esta entendiendo la lógica y el funcionamiento, por eso recomiendo que a la hora de ver cursos/videos consumas toda la sección y luego intentes aplicarla, hasta que no este incorporada la lógica de ese capítulo, sección o video recomiendo no avanzar.

Por ejemplo, esa sección enseña los estados en React, con esa información hacer un botón que sea capaz de switchear ese estado y cambiar un número.

Gracias por leer hasta el final, no soy profesor, solo escribo sobre cosas que a mi en lo personal me funcionaron.