backspace

historias aleatorias de un programador

Nuestro cerebro. El órgano regidor de nuestro cuerpo. Lugar dónde residimos cada uno de nosotros. Intérprete de estímulos. Fuente de nuestro intelecto. Entre las innumerables funciones que realiza nos encontramos con el llamado Sistema de recompensa. Este sistema es el que nos hace sentirnos plenos cuando logramos algún hito en nuestro día a día para que así tengamos una motivación para volver a hacer lo que fuera que hubieramos hecho.

El problema viene cuando nuestro cerebro de más de dos cientos mil años se encuentra en un entorno en el que no hay que salir a cazar, ni a recolectar frutos, ni tampoco hay que migrar en busca de agua… Pero nuestro cerebro sigue funcionando igual porque no le ha dado tiempo a evolucionar ante este nuevo entorno.

Aquí entra en acción el marketing y, usando el Sistema de recompensa como germen, se aprovecha de esta debilidad innata para vendernos cosas que no necesitamos para cubrir necesidades que no son reales.

El siguiente problema viene cuando esto se arraiga en la sociedad y todo empieza a fluir innecesariamente rápido. Cada año sale un iPhone nuevo al mercado y la gente se lo compra aunque su terminal funcione perfectamente. Este ejempo se puede extrapolar a casi cualquier cosa que se venda. El resultado de esta dinámica es la bien conocida Sociedad de consumo en la que estamos inmersos.

Cuando esto pasa a estar instaurado, se viene otro problema que es el de vivir en el futuro ya que se tiende a vivir el día a día pensando en lo próximo, pasando a ser en lo que se basa muchos de los actos que se realizan en la vida cotidiana. El cerebro se habitúa a esta estructura de discernimiento lógico, se realizan nuevos enlaces sinápticos siguiendo este patrón y lo más eficiente a nivel energético es seguirlo cuanto más veces se pueda mejor.

Y, ahora sí, esto provoca que a la hora de afrontar un determinado problema en nuestro trabajo tendamos a no fijarnos bien en lo que tenemos delante, pasar por alto ciertos aspectos cruciales para llegar a una solución óptima o tomar malas decisiones debido a que nuestro juicio está nublado por todo lo que he explicado anteriormente. Estamos inmersos en terminar la tarea más que en el código que tenemos delante y eso es un gran error.

¿Cuántos hotfix hemos subido de rapidez por que había un error a producción solo para darnos cuenta de que tenemos que hacer otro para arreglar un bug introducido por las prisas? ¿Cuántas veces hemos implementado algo sin haber realizado un análisis más en profundidad motivado por un deadline demasiado próximo?

El trabajo de un desarrollador no se basa exclusivamente en picar código, también hay una parte muy importante de análisis y creatividad. Todo tiempo invertido en la parte previa a codificar es, válgame la redundancia, una inversión que dará sus frutos en forma de menos deuda técnica, código más estable y mejor testeado.

Dejadnos pensar… 😜

No sé muy bien cómo contestar a esa pregunta… Creo que todo empezó cuando descubrí el Reddit de UnixPorn. Entre captura y captura, encontraba que algunos usuarios se configuraban entornos de escritorio preciosos usando gestores de ventanas como dwm, openBox, i3wm entre otros.

Estos usuarios seleccionan un fondo de pantalla cuidadosamente para luego extraer una paleta de colores que usan para configurar de una manera elegante todo su entorno de trabajo centrándose en personalizar la terminal: sin bordes, con margen interior, resaltando la ventana activa coloreando el contorno y, llevando la elegancia al extremo, personalizaban aplicaciones de todo tipo diseñadas para ser ejecutadas en una terminal.

Aquellas capturas me llegaron a fascinar tanto que no tardé en imitar a estos usuarios. Cogí mi viejo ThinkPad y me propuse instalar ArchLinux que era la distribución que estaba de moda en ese momento en UnixPorn. ArchLinux se basaba en el principio KISS y esto derivaba en que una instalación estándar no trae mucho más que las herramientas GNU y el gestor de paquete dejándote a ti la tarea de instalar todo lo demás. Por si esto fuera poco, tampoco viene con un asistente de instalación y tienes que hacer la instalación a mano tú mismo. Aprendí nuevos comandos y a usar mejor los que ya conocía. Actualicé conceptos sobre la administración de sistemas GNU/Linux. Volví a usar el único editor de texto que todo programador debería usar: VIM.

Durante este proceso hubo un hecho que cambió para siempre mi forma de ver no solo mi profesión sino la vida misma: descubrí la filosofía UNIX.

No exagero; este concepto fue el catalizador de una nueva etapa donde el minimalismo lo abarcaría todo. No pienses en el minimalismo como algo referente a modas, arte o decoración. El minimalismo trata de eliminar lo superfluo para centrarte en lo importante. Mirar todas las cosas que nos rodean bajo ese prisma es lo que me ha llevado a cuestionarme mis hábitos y a motivarme para cambiarlos. No te lo creerás pero al eliminar las cosas innecesarias de tu vida tienes más margen para la concentración porque hay menos cosas que te puedan distraer.

Pero volviendo al tema que nos atañe… ¿Cómo aplica esto del minimalismo a programar? El concepto es el mismo. No hace mucho escuché a mi jefe decir una frase que se me grabó a fuego:

“Si usas SourceTree, aprenderás a usar SourceTree, no git” – Churri

Si extrapolamos esto a un IDE como PHPStorm pasa igual. Si lo extrapolas a un cliente gráfico de base de datos pasa igual.

Al no usar SourceTree, acabas dominando git. Al no usar un IDE, acabas dominando XDebug y un editor de texto (preferiblemente VIM, gracias…). Al no usar un cliente gráfico de base de datos, acabas dominando el cliente de mysql. Al final, teniéndote que enfrentar a todas estas herramientas sin decoraciones, cara a cara, sin interfaces que te distraigan, centrándote en una sola tarea acabas sintiéndote como en casa mientras usas una terminal.

Pero el viaje no termina aquí, tratar con tu entorno de desarrollo a más bajo nivel despierta una curiosidad por entender más en profundidad cómo funcionan las cosas y te hace querer saber más y más para saciarla haciendo que comiences a bichear cosas que antes pensabas que era imposible de entender como el código fuente de PHP o las llamadas al kernel de Linux.

Al final, te das cuenta que todo va de aprender, de adquirir conocimiento… de cultivar el intelecto.

El ser humano se caracteriza por tener el mejor raciocinio del mundo animal. Ahora mismo me encuentro en un punto en el que día a día intento ser mejor ser humano, es decir, cultivar el intelecto. 😉