5 Consejos para quienes dan sus primeros pasos desarrollando software

5 Consejos para quienes dan sus primeros pasos desarrollando software

¡Hola Mundo! 👋

Hay algunas cosas que me suele preguntar la gente que va a comenzar su carrera en desarrollo de software o que llevan uno o dos años dando ya sus primeros pasos.

Como son cosas que os suelen preocupar a la mayoría, he pensado que sería un buen tema para este artículo.

¡Espero que te sea útil!

1️⃣ ¿Cómo priorizar qué tengo que aprender?

Empezar en la industria puede llegar a agobiar bastante. Cada día salen cosas nuevas o formas distintas de trabajar, herramientas, librerías… Parece que todo sea importante. Si sigues a gente activa en redes sociales, puede parecerte que que no les cuesta nada aprender y que todo lo dominan.

Mi primero consejo es que filtres al máximo la información que te llega. Sobre todo si estás empezando. Ignóralo. Dedícate a dominar lo que ya conoces con soltura y - por qué no - con maestría. Céntrate en un lenguaje de programación, un paradigma y domínalo con confianza.

Con el tiempo, llegará el momento de cambiar de proyecto y tal vez de lenguaje. Cuando eso ocurra, si llega a ocurrir algún día, entonces será el momento de aprender cómo se hace lo que ya conoces en ese lenguaje y con esa nueva sintaxis.

Hay un montón de palabras de moda que irás escuchando. Seguro que se te ocurren catorce ejemplos. Ya te llegará el momento de aprenderlas. Si inviertes tiempo al principio de tu carrera a aprender cosas como una escopeta de perdigones, estás desaprovechando la oportunidad de consolidar los fundamentos. En otras palabras, estarás empezando la casa por el tejado.

Espera a que se presente ante ti el problema adecuado y entonces dedica el tiempo a explorar qué formas hay de solucionarlo y aprende una de ellas. En ese momento será la ocasión idónea de aprenderlo, ya que podrás aplicar tus nuevos conocimientos en un problema real y no solo en los ejemplos sencillos que puedes encontrar en Internet, que solo rascan la superficie.

Otro hábito que a mí me funciona para estar al tanto de tendencias pero filtrar al mismo tiempo es leerme los informes que hacen algunas organizaciones a final de año. En ellos verás las tendencias reales de la industria y qué deberías ir priorizando para no quedarte atrás. Y una periodicidad anual es la adecuada para no volvernos locos.

Te dejo algunos enlaces:

2️⃣ ¿Cuál es la mejor forma de aprender?

Todas las personas somos distintas y no hay un método único que funcione para todo el mundo. Por ejemplo: hay personas que prefieren aprender leyendo y otras practicando. También existe un grupo, en el que me incluyo, que aprendemos mejor cuando alguien nos lo explica. Descubrir qué es lo que te funciona mejor es un primer paso muy sólido.

Sin embargo, sí que te puedo dar un consejo: la constancia es mejor que un esfuerzo extra. En otras palabras: es mejor dedicar 20-30 minutos cada día que cuatro horas el fin de semana. Imagina que quieres leerte un libro. Si lo lees solo los sábados, cada sábado habrá pasado demasiado tiempo desde la última vez que lo leíste. Dedicarás cuatro horas, pero seguramente te cansarás más y no aprovecharás el sábado para el ocio. También es fácil que surja algún plan y te saltes la sesión de aprendizaje, dejando pasar dos semanas sin hacer ningún progreso.

Es mejor ser realista con tu tiempo libre y tratar de arañar esa media hora al día. Bloqueártela en el calendario para no quedar con nadie, pedir cita al médico ni para cortarte el pelo. Ese es tu rato de estudio. Son solo 30 minutos diarios. Si algún día pinchas, entonces recupéralo al día siguiente. No será ningún trauma. Al cabo de un mes, mirarás atrás y estoy seguro de que habrás progresado mucho más que haciendo esfuerzos de fin de semana.

Si te interesa saber cómo organizar mejor tu aprendizaje, tengo un artículo en mi blog hablando en detalle del tema.

3️⃣ ¿Debería tener un portfolio?

Si tienes poca experiencia o ninguna, creo que está bien tener un par de proyectos completos de código abierto. Para aprender y para demostrar que puedes hacerlo a la empresa que te va a dar tu primera oportunidad. Pero a medida que vas adquiriendo experiencia, es menos importante. Los mejores profesionales con los que he trabajado no tienen Github ni son activos en redes sociales.

Tampoco te comas la cabeza con el mosaico de contribuciones (el de cuadraditos verdes de Github). Primero, porque es muy fácil de hackear. Segundo, porque no todo el mundo usa Github. Existe Bitbucket, Gitlab o Github enterprise. Si en tu empresa utilizan una de estas alternativas, es muy difícil que seas capaz de contribuir diariamente, a no ser que seas muy activo en proyectos Open Source.

¿Deberías ser activo en proyectos Open Source? Si es algo que te gusta y te motiva, claro. Pero no lo hagas para conseguir un trabajo, porque no es importante. Lo mismo sirve para tener una web o un portfolio. ¿Deberías tenerlo? Si lo utilizas para aprender e ir probando cosas, está bien. De lo contrario, céntrate en aprender bien los fundamentos 😉.

4️⃣ ¿Debería hacer un proyecto personal?

Si tienes tiempo y te hace ilusión, adelante. Es una buena forma de aprender varias cosas a la vez, pero también es fácil distraerse y perder el tiempo si lo que quieres es aprender algo concreto. Por ejemplo: imagina que quieres aprender cómo hacer autenticación de usuarios. Decides hacer una aplicación y empiezas a descargarte la última versión de React, luego miras la documentación de Webpack desde la última vez que lo tocaste, descubres que ahora hay una cosa que se llama Neutrino que parece interesante… Luego te dedicas a decidir la librería perfecta de CSS, pasa un día entero y no has hecho nada de autenticación.

Cuando quieres aprender algo concreto, es mejor hacer algo muy sencillo y dominarlo a la perfección. Una cosa que me funciona muy bien es realizar katas de programación. La **kata **es una palabra japonesa (型 o 形) que significa “forma” y que describe una serie, forma o secuencia de movimientos establecidos que se pueden practicar tanto en solitario como en parejas. Es un concepto que viene de las artes marciales, pero el concepto también se hizo popular en programación como un sistema de aprendizaje basado en la práctica y repetición de ejercicios para desarrollar habilidades.

Así que si quieres aprender algo concreto, piensa en un ejercicio lo más sencillo posible, complétalo y practícalo varias veces. Entiende sus detalles y peculiaridades y prueba nuevas formas de resolverlo cada vez sin fijarte en la anterior.

En mis sesiones de mentoría para personas que se preparan para una entrevista, suelo hacer una versión simplificada del ejercicio que explico en este artículo de mi blog. Puedes usarlo como ejemplo para practicar, aunque si se te ocurren otros, compártelos 😄

5️⃣ ¿Tengo que aprender a hacer testing?

Respuesta corta: Sí.

Respuesta larga: A pesar de que muchas empresas te van a contratar sin saber cómo escribir pruebas unitarias automáticas o incluso puedes llegar bastante lejos en tu carrera sin aprenderlo, es difícil que subas de nivel si no adquieres el hábito de escribir tests.

Aprender a escribir tests hará que tu código tenga más calidad y se pueda desplegar en producción de forma sostenible. Otras personas podrán colaborar en el proyecto y hacer modificaciones, asegurándose de que no rompen nada. Incluso tú, dentro de un tiempo, agradecerás el momento en el que escribiste aquel test… porque ya no te acordabas de ese caso límite.

El siguiente nivel es aprender a escribir tests automáticos primero, antes de desarrollar. Hacerlo desarrollo guiado por tests (Test Driven Development o TDD) no solo te ayuda a testear, sino a pensar y a diseñar software. Ayuda a pensar primero en cómo tiene que funcionar el software en caso de éxito y cómo puede fallar. A controlarte e implementar solamente el código mínimo para que pase el test. Y a intentar hacerlo más limpio antes de realizar la siguiente iteración.

Si no sabes escribir pruebas automáticas y sólo puedes aprender una cosa en 2021, que sea esta.

Conclusiones

Espero haberte ayudado, inspirado y que se la lectura haya sido amena. No dudes en escribirme o mencionarme en mis redes sociales y comentarme qué te ha parecido.

Foto de cabecera de David Brooke Martin en Unsplash