Escapando de los Side-Projects

Hace unas semanas escribíamos en el sitio sobre como escapar del tutorial hell y ahora me gustaría ahondar en como escapar de los side-projects 100% técnicos.

Escapando de los Side-Projects
Photo by Lala Azizli / Unsplash

Antes que nada me gustaría hacer notar que estoy hablando desde mi experiencia y que no tienes que compartir mi opinión. Creo que hacer un proyecto por ti mismo es una excelente forma de aprender, pero no es tan importante para tu desarrollo como ingeniero. Déjame que lo explique.

Al principio de mi carrera profesional estaba constantemente aprendiendo nuevas tecnologías, lenguajes y librerías que mejoraran mi caja de herramientas como desarrollador. Dedicaba mis noches enteras en plasmar lo aprendido en "proyectos" que nunca llegaron a ningún lado, y no fue por falta de disciplina... Más bien fue por la motivación de aprender otra tecnología que hacía que cambiara completamente el proyecto(s) anterior(es) por esa nueva forma/tecnología/lenguaje/librería/etc que quería aprender, entrando en un círculo vicioso que nunca me permitía ver mis proyectos terminados.

En mi caso, lo hacía porque quería (al salir de la universidad) encontrar el mejor trabajo posible. No tenía a nadie que me guiara y que me dijera como administrar mi tiempo o como enfocar esas ganas de aprender en otros temas más importantes (como algoritmos, estructuras de datos o soft-skills) en lugar de realizar esas pruebas de concepto sencillas y superficiales con tecnologías muy dispares, lo que me hizo perder mucho tiempo.

Esas experiencias no solo me pasaban a mí, pues conocí personas que se desvelaban demasiado por aprender nuevas tecnologías pero que no lograban pasar entrevistas por falta de soft-skills (ahora con más experiencia puedo verlo) o porque los desarrollos que hacían en esas noches de agonía no eran suficientes para los empleadores.

Photo by Nubelson Fernandes / Unsplash

No tener side-projects no te hace peor ingeniero

Sé de muchas empresas que en sus procesos de selección cuestionan por side-projects y una gran mayoría cree que si no los tienes no sientes pasión por tu trabajo y no es así. La pasión puede ser vista de muchas maneras y en lugar de escribir código para aprender determinada tecnología puedes tener un blog, un podcast, sentarte todas las noches a leer alguna nota/libro relacionado o fomentar la artesanía de software en alguna plática. Y si no haces nada de eso también está bien. Puedes ser un desarrollador/ingeniero de 9 a 5 y tu tiempo libre dedicarlo a estar con tu familia y amigos, a pintar, cocinar o saltar del paracaídas y no por ello entregar código deficiente, siendo el peor de los peores.

Tener side-projects no te hace mejor ingeniero

Este tipo de proyectos solo "enseñan" la parte técnica de un tema en particular y muy superficialmente. No tendrás que enfrentarte a toma de requerimientos, pruebas intensivas o generar documentación. Muy probablemente ni siquiera tengas que interactuar con otros desarrolladores, por lo que pierdes el aprendizaje en comunicación efectiva, flujos de git, revisión de código, hacer y recibir recomendaciones y un largo, pero largo etcétera.

Tal vez puedas sorprender a tu grupo de amigos programadores porque ahora sabes hacer un hola mundo en rust, pero a tu empleador no le importa si tu posición es sobre java. ¿Lo haces por gusto? Bien por ti, pero no lo podrás poner en tu CV y lo sabes.

Si buscas una nueva posición, a esos nuevos empleadores no les interesa saber todos tus side-projects (ni siquiera te pagarán por todo lo que sabes) ni en cuántos lenguajes sabes escribir un requerimiento o si fuiste a tres hackatones el año anterior por "pasión y amor al arte". Es triste, pero cierto. Ellos quieren saber si cumples solo con los requisitos de la posición, como te has comportado en tu trabajo actual y el impacto que has tenido en el mismo.

Coding together
Photo by Lagos Techie / Unsplash

¿Quiere decir que NO debo dedicar mi tiempo en side-projects?

Para nada. Ya comenté que son una excelente forma de aprender. A parte te dan perspectiva sobre a donde va la tecnología y también te ofrecen una primera impresión para poder escoger dicha herramienta en un proyecto real o más prometedor. Pero sin un objetivo más que "añadir una herramienta más" (como en mi antiguo caso) son una pérdida de tiempo abismal (que podrías ocupar en otros tipos de aprendizaje) y por ello deberías de ser más selectivo. Cuestiónate sí aprenderás lo que quieres, si sacarás provecho de hacerlo o si la tecnología vale la pena.

¿Cuándo vale la pena dedicar tiempo a un (y solo un) side-project?

  • Cuando tu empleo actual apesta técnicamente. La mejor forma de aprender algo es practicándolo todos los días y trabajando con personas con más experiencia para que te muestren mejores prácticas o tus errores. Si estás en una empresa que solo desarrolla con FoxPro (y no estás de acuerdo) o las prácticas ágiles son inexistentes: es hora de dedicar tiempo (y mucho) a esa tecnología sexy que usa la empresa de tus sueños.
  • Eres recién egresado. Necesitas un portafolio que mostrar y los proyectos de titulación no siempre son los mejores para encontrar trabajo. Busca una persona que te aconseje, te enseñe buenas prácticas y te acompañe en el path de carrera de tu preferencia con algún proyecto que te motive.
  • Tienes un emprendimiento en puerta. No hay mucho que decir, si hay una oportunidad de negocio que ya está validada y es técnicamente viable: no lo dudes; dedícale tus noches y si todo sale bien, tus días enteros.
  • Es software libre o de código abierto. Si esa herramienta que hiciste para ti le puede servir a los demás y tiene tracción es una excelente forma de obtener esos conocimientos que se dejan fuera cuando se hace un side-project (ver la sección anterior)

Conclusión

Me encanta programar y la tecnología que existe alrededor de dicha actividad pero sin un objetivo claro y real, los side-projects 100% técnicos pueden convertirse en una pérdida de tiempo muy grande. Tiempo que no volverá y que cualquiera pudiera echar en falta en algún momento para cuestiones familiares o para otros métodos de aprendizaje. Dejar de hacerlos me ha funcionado profesionalmente (pues tengo tiempo para aprender cosas mas concretas) y me ha dado paz mental.

Ahí te la dejo, una reflexión más filosófica que técnica.