El coste oculto del copy&paste™️

por Ricardo Vega el 10/10/2019

Hola. Hoy quería hacer contigo una breve reflexión sobre una de esas historias que ocurren en el día a día de cualquier programador.

Estás programando una nueva funcionalidad que te permita obtener los 10 ficheros más antiguos dentro de un árbol de directorios. Necesitas tenerlo lo antes posible y te presionan para ello porque el cliente necesita desplegar la funcionalidad antes del viernes.

Así que abres tu navegador web y tecleas unas palabras clave en la caja de búsqueda de StackOverflow. Tras unos minutos, encuentras en las primeras respuestas unas 20 líneas de código que te solucionan la papeleta empleando una funcionalidad añadida en la última versión de la API del lenguaje / framework que empleas.

Es la primera vez que ves usar esa API pero la persona que lo ha propuesto en StackOverflow tiene casi 50.000 puntos de reputación así que, ¿por qué desconfiar? Además, tú lo necesitas tan pronto como sea posible...

Simetría

Pegas las partes relevantes del código en tu editor de código, lo pruebas y ¡funciona! Refactorizas un poco el código, unos cambios de nombre y puedes dar el trabajo por terminado y prepararte otra taza de café. ¡Gran trabajo!

Así es como se supone que se programa actualmente, ¿verdad?

No estoy del todo seguro...

Bloquearse de vez en cuando y necesitar tiempo para buscar información que te "ilumine" es sin duda una tarea que forma parte de la jornada de cualquier programador que conozco (yo mismo incluido). Eso sí, cada vez que esto ocurre, tienes la opción de decidir qué quieres hacer:

  • Saltas a la primera solución que te brinde StackOverflow para solucionar tu problema

  • o puedes usar esas respuestas como "inspiración" y te tomas el tiempo para aprender un concepto nuevo desde la base que te permita solucionar ese y otros problemas futuros con tu propio código.

Ambas soluciones resuelven el problema y ambas tienen sus implicaciones prácticas.

Cada vez que te tomas el tiempo para pensar sobre el problema es como si mejorases tu vocabulario en un idioma extranjero, estás ampliando tu base de conocimiento, pudiéndote aprovechar de ello en el largo plazo.

Copiar y pegar la primera respuesta que parezca razonable es, por contra, como contratar a un traductor. Sí, resuelve el problema inmediatamente, pero generas una dependencia de él constante.

Existe una gran predominancia del estilo "contrata un traductor" en el actual mundo del software que creo no está beneficiando al desarrollo a largo plazo del programador.

Ojo, no estoy, ni mucho menos, en contra de StackOverflow, lo uso prácticamente a diario.

Lo que quiero decir es que si miramos la foto completa, la conveniencia siempre tiene unos costes ocultos asociados. En el largo plazo, "construir un vocabulario sólido" es mucho mejor estrategia para conseguir dominar el lenguaje.

Mi consejo, por tanto, es que te tomes unos minutos siempre para aprender la base que subyace de las respuestas "listas-para-copiar" para reforzar tu conocimiento sobre tu lenguaje, framework o herramienta. Tu yo programador del futuro te lo agradecerá.

¡Un saludo!

Apoya al blog


Si te ha gustado este artículo, valora apoyarme económicamente a través de Patreon, una plataforma de Micro-mecenazgo con la que puedes hacerme un donativo que ayude a la continuidad del blog. Una pequeña ayuda significa mucho. 😃

Permanezcamos en contacto!


¿Quieres enterarte de todas las novedades del sector? ¿Te gustaría trabajar conmigo? ¡Puedes contactar conmigo de forma muy sencilla!