«Buying books would be a good thing if one could also buy the time to read them in, but as a rule the purchase of books is mistaken for the appropriation of their contents»— Arthur Schopenhauer
Por dónde empezar
Cuando las posibilidades son infinitas, ¿Cómo elegir por dónde empezar? ¿Cuál es el camino que te llevará más rápido a la meta? ¿Y el más sencillo? ¿Y el más desafiante?
¿Es que hay alguna meta a la que llegar o solo el camino que queramos recorrer?
Hace menos de un año yo estaba en un puesto de trabajo cómodo, fijo y que no suponía un gran reto. Aventurarme en el mundo de la programación era, en gran parte, un salto al vacío; pero también uno que necesitaba dar. Me sentía estancado sin saber cuál era mi verdadero potencial, sin haber recorrido otras rutas en la vida, que siempre me habían llamado pero que veía desde lejos, envidiando a los que sí las habían elegido.
Pero llegó un punto en el que ser el friki de los ordenadores sin tener conocimientos reales pasó a ser más frustrante que satisfactorio. Era ahora o nunca. No quería seguir cumpliendo años ni acumular compromisos personales que acabaran por impedirme dar el paso; así que decidí darme una oportunidad a mí mismo y saltar.
Tomar el control
Para una persona que necesita tener el control de la situación en todo momento como yo, adentrarme en lo desconocido suponía un doble reto. Me había acostumbrado a hacer mi trabajo de forma automática, conociendo a la perfección los entresijos de cada una de mis tareas; y empezar a programar, en cambio, era tantear con pasos torpes un camino lleno de obstáculos.
La única manera que encontré de recuperar ese control fue acumular toda la información posible a mi alcance, aunque fuera infinita. Porque, si lo que yo quería —lo que quiero— era aprenderlo todo, ¿cómo voy a desaprovechar cualquier oportunidad de conseguirlo?
Antes de escribir este artículo he ido a comprobar cuántos cursos de Udemy tengo actualmente en mi cuenta, y no me ha sorprendido pasar ya de los mil. Uso otras plataformas de cursos online, e intento aprovechar cualquiera que esté gratuito por tiempo limitado. Mis marcadores de Chrome son carpetas dentro de carpetas con decenas de enlaces a vídeos, artículos, y publicaciones de todo tipo. ¿Os suena? Es la necesidad de saber más, aprender más, de tener el recurso perfecto en el momento adecuado.
Para mí no es la codicia, o eso espero, lo que me motiva para acumular tanta información (la mayoría seguirá siendo gratis en el momento en que la pueda necesitar en el futuro) sino el miedo a estar dejando pasar una oportunidad. ¿Y si esa pieza es justo la necesaria para que todas las demás encajen? ¿Y si resulta ser la piedra angular para encontrar trabajo? ¿Cómo voy a rechazarla?
Y es justo ese miedo el que nos puede llevar al lado oscuro de la Fuerza.
Cuando decimos que quien mucho abarca poco aprieta, dejamos fuera una parte, quizá más silenciosa, pero no menos cierta: cuando intentas abarcar mucho y, sin embargo, se te escapa entre los dedos, el primer sitio donde buscas qué es lo que está fallando es en ti mismo. Yo no soy suficiente. Yo no soy capaz. Tengo los recursos y, sin embargo, yo no puedo abarcar todo ese basto conocimiento.
La mezcla de este sentimiento de indefensión, propio de cualquier aprendizaje, con un mundo que se basa en avanzar a la velocidad de la luz, puede ser una bomba de relojería si no encontramos la manera de verlo en su equilibrio.
Subir la montaña
Para alguien que todo lo que sabe sobre programación es lo que sale en las series de hackers (con un actor encapuchado golpeando el teclado frente a una pantalla llena de números) pasar de cero a uno, escribiendo un «Hello world», se convierte en lo mejor que ha hecho en la vida. Los primeros pasos, aunque torpes, abren el camino a un mundo nuevo.
Mi caso no distaba mucho de eso y, para mí, comenzar el proceso fue como empezar a subir una montaña. En la base, cada paso fue una zancada de gigante, pero, según iba escalando, el terreno se fue haciendo más escarpado y cada vez hacía falta más trabajo para ir arañando pocos metros. Hubo incluso días en los que resbalé y retrocedí un tanto. Levantarme supuso aún más esfuerzo, pero sirvió para pisar más en firme y seguir avanzando.
Al echar la vista atrás y reflexionar sobre estos últimos meses, me doy cuenta de todo lo que he aprendido y que solo puedo apreciar desde la distancia.
Por ejemplo, he descubierto que no estoy solo y que, al parecer, un programador tiene únicamente dos estados de ánimo: sentirse el rey del mundo en la cima de todo, o hundirse en el desánimo, convencido de que no sirve para esto.
Pero también he aprendido que ninguno de los dos casos es en realidad cierto, que hay días mejores y peores, y que lo importante es seguir hacia adelante, cada vez con mejores herramientas, aprovechando la ayuda de los compañeros de escalada que siempre nos vamos a encontrar por el camino.
Ahora que ya veo la cima de esta montaña, me doy cuenta de que detrás hay una aún mayor, una que estoy deseando afrontar. Y sé que, si yo puedo, vosotros también.
Consejos
Aunque apenas han pasado unos meses, si pudiera hablar con mi yo del pasado justo antes de iniciar este reto, me gustaría haberle podido dar algunos consejos:
- Programar no es memorizar. Una grandísima ventaja de nuestro sector es que no necesitamos recordar todas las herramientas y opciones que más tarde vamos a poner en práctica. Comprender bien las funcionalidades y saber qué tipo de recursos podemos usar es más importante que recordar todos los métodos que podemos aplicar en nuestro código. Céntrate en entender bien la base, y acude a la documentación tan a menudo como lo necesites.
- No tengas prisa… Antes de ponerte a escribir código, piensa bien qué quieres obtener. ¿Cuál es el objetivo de esa función que quieres preparar? ¿Por qué vas a usar ese nombre de variable? Razona antes de lanzarte y procura que lo que escribas sea tan limpio como sea posible. Desde el futuro te aseguro que ese código aseado y comprensible es el mejor regalo que puedes hacerte. ¡Pero que no te venza el miedo! Por suerte, vas a hacer decenas de proyectos de prueba. Irás mejorando poco a poco, y para eso necesitas escribir mucho código. Aunque las buenas prácticas son imprescindibles, no hace falta que tus primeras líneas tengan la mejor sintaxis del mundo. Primero piensa y, después, ¡lánzate!
- … pero no te detengas. Algo que juega a tu favor es la acumulación. Si cada día mejoras un poco y avanzas en esa montaña tan escarpada, antes de que te des cuenta la habrás escalado y estarás fijándote nuevos objetivos. Márcate pequeñas metas, ya sean diarias o semanales, y céntrate en ellas. Mejor que querer desarrollar como primer ejercicio un proyecto fullstack con un design system propio, empleando el último framework del momento, busca una funcionalidad sencilla, ponla en práctica y así, en la siguiente ocasión, te será mucho más sencillo avanzar.
- No te fustigues por los proyectos a medias. Es mejor dejar un proyecto a medias que obcecarte con algo que no está funcionando para ti en ese momento. Podrás volver a ello más tarde, empezar de cero y con nuevos ojos, y sacarlo mucho más fácilmente de lo que esperas. Eso no quiere decir que abandones a las primeras de cambio, pero que ese afán perfeccionista no te haga perder el tiempo.
- Aprende a usar Git tan pronto y tan bien como te sea posible. No, usar «–force» no es buena idea si no sabes lo que estás haciendo. Invierte tiempo en saber cómo funciona el control de versiones. Tú (tu yo del futuro) y el equipo en el que empieces a trabajar el día de mañana, te darán las gracias cada día. Como recurso extra para saber por dónde empezar, te dejo a mano este libro que puede serte muy útil: https://leanpub.com/aprendiendo-git
- Pide ayuda. La nuestra es una comunidad increíble, y de una forma u otra podrás contar con personas a las que acudir si te bloqueas. Tanto quienes escriben artículos, publican vídeos en YouTube o escriben en foros o en plataformas como StackOverflow han pasado por el punto en el que estás tú ahora y están deseando poder ayudarte si les das la oportunidad.
- Pon en duda lo que te enseñen. Que un programador a quien tengas aprecio o en quien confíes diga algo, no lo convierte en la verdad absoluta. Puede equivocarse, puede ser un comentario desactualizado o, simplemente, puede que para tu proyecto no sea la mejor opción. Cuestiona lo que aprendas, busca otras fuentes y, siempre que te sea posible, intenta hacer por ti mismo aquello que aprendas de otros. Lo que me lleva a…
- Copia un día, rehaz al siguiente. No hay nada de malo en seguir un tutorial paso a paso, escribiendo el mismo código que ves en pantalla. El proyecto que acabes no será por entero tuyo, pero en el proceso habrás aprendido más de lo que crees. Si en algún momento optas por esta opción, el mejor consejo que puedo darte es que el primer día sigas paso a paso la explicación del código, pero al día siguiente seas tú, a tu manera y con tus recursos, quien implemente de cero esa solución. Volverás a consultar la guía, pero irás haciendo tuya la solución hasta que ya no necesites ese apoyo.
- No uses Copilot, ni otras herramientas similares, cuando estés empezando. Obviamente son sistemas muy útiles y el día de mañana te ahorrarán muchísimo tiempo; pero, en mi opinión, todo tiene su momento. En una etapa temprana del proceso de estudio, confiar en el autocompletado de una IA puede ponerte en más de un aprieto. Y, sobre todo, darte una sensación irreal de aprendizaje.
- Rodéate de gente que esté cerca de tu nivel. Como te decía antes, tienes muchas opciones para acercarte a gente de esta comunidad. Muchos estarán muy por encima de tu nivel, pero, si te es posible, busca a un grupo de personas que estén en un punto parecido al tuyo. ¡Ojo! Eso significa que estén tanto un poco por detrás, como un poco por delante o a tu misma altura. Aprenderás tanto de quienes están practicando las mismas cosas que tú como de aquellos que pronto llegarán ahí.
- Intenta explicar algo a uno de tus compañeros. Hilando con lo anterior, algo que me ha parecido muy útil es que, cuando creas que ya manejas con soltura nuevos conceptos, intentes explicar estas ideas a otras personas. Aprenderás más enseñando durante quince minutos a alguien que leyendo una documentación durante horas.
- Caerás… y volverás a levantarte. En todo este proceso va a haber grandes altibajos. Confía en ti lo suficiente como para, cuando estés en el peor momento, saber que llegará pronto otro donde te sientas mucho mejor con tu trabajo.
Igual que a mí me hubiera gustado leer un artículo como este hace unos meses, ojalá mi experiencia personal y estos consejos puedan aportar algo positivo a quienes estáis empezando. Si lees estas líneas antes de embarcarte en esta aventura, espero que te sirvan para recordar que hay que mantener la mente ágil y despierta, pero también calmada cuando las cosas se tuercen.
Si quieres contarme tu opinión sobre este artículo o puedo ayudarte con cualquier cosa, puedes encontrarme en LinkedIn. Estaré encantado de hablar contigo. Por lo demás, avanza con calma, que el camino se hace día a día.
Texto escrito por Carlos Velilla, Full Stack Developer & Tech Assistant de Assembler Institute of Technology
Excelente!
¡Hola! Sin duda alguna este artículo ayudará a mucha gente en la cual me incluyo, motiva, aclara y te hace pensar. ¡Muchas gracias!