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.

Introducción

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 para mejorar 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.

Ahora pensándolo detenidamente me doy cuenta que por la motivación de aprender otra tecnología. Esto dio como resultado que cambiara completamente el proyecto anterior por otro hecho en esa nueva tecnología que quería aprender.

El círculo vicioso

Como podrás intuir, estaba en un círculo vicioso que nunca me permitía ver mis proyectos terminados. Literalmente gastaba mi tiempo en pruebas de concepto sencillas y superficiales con tecnologías muy dispares. Creía que conociendo muchas tecnologías podría encontrar el mejor trabajo posible saliendo de la universidad.

No tenía a nadie que me guiara y que me dijera como administrar mi tiempo y como enfocar esas ganas de aprender en otros temas más importantes (como algoritmos, estructuras de datos o similares) o simplemente que me diera consejos para mi, como recién egresado.

Por desgracia, esas experiencias no solo me pasaban a mí. Conocí ingenieros que se desvelaban por aprender nuevas tecnologías pero que no lograban pasar procesos de reclutamiento 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. Si no haces nada de eso también está bien. Puedes ser un ingeniero de software 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 la vacante es sobre Python. ¿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 hackathones 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 anterior y el impacto que has tenido en el mismo.

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 caso) son una pérdida de tiempo abismal (que podrías ocupar en otras cosas) 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. Siempre y cuando tenga tracción y ayude a una gran cantidad de personas.

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.

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