Jan 6, 2012

El programador y su tiempo

Hace algunos meses estuve pensando en la diferencia que genera el que un programador se de el tiempo para poder programar cualquier otra cosa por la cual no le van a pagar y me hizo reflexionar sobre el asunto, a mi parecer los programadores que "capitalizan económicamente" todo su tiempo en una empresa a largo plazo serán los menos hábiles en términos generales, y por lo tanto menos valioso, desde un punto de vista muy capitalista, aquí me refiero a la capacidad analítica y de razonamiento, simplemente se esta invirtiendo mal, uno tiene que estar consciente de muchos factores que limitan las capacidades de una manera implícita y a veces sutil haciendo creer que se es mejor programador por que gana mas que antes, son dos cosas muy distintas.

Las tecnologías que se usan en una empresa siempre son mucho más limitadas en comparación con toda la gama de posibilidades que hay haya afuera, si todo el tiempo se le dedica a la empresa sin duda alguna tu código estará completamente viciado por las empresas donde trabajaste, limitado en su alcance, uno no puede nada mas conformare con eso, lo importante es crecer como persona, no crecer como "mono que programa", se necesita experimentar y tratar de ampliar los horizontes que se tienen sobre el campo, simplemente es necesario tener la capacidad de escoger sus herramientas no que las herramientas nos escojan a nosotros, no se puede permitir que el trabajo dicte lo que aprendes solo por que por eso te van a pagar mas, no es cuestión de dinero, es el aprendizaje personal.

Cuando se esta implementando algo en software, usualmente se tienen la noción de "iteración de desarrollo", que es un concepto importante para el líder de proyecto el cual se interesa por todo el proyecto no por algún asunto en concreto, su visión es completamente valida dentro de su rol en la empresa, pero esto genera que en función de las limitantes del tiempo (y malos programadores) el código muchas veces queda liberado e implementado de una manera que no es la adecuada, pero para fines de el proyecto es justo lo necesario en relación de la ganancia que se espera obtener del proyecto lo antes posible.

En la empresa sucede algo grave que se debe de estar muy consciente, a todo el mundo solo le importa el proyecto, no si tu aprendes o no (al menos no mas haya de lo que necesitas para ser productivo), esto genera un efecto secundario muy desagradable para los nuevos programadores que se ven impuestos por tiempos y malas practicas adquiridas por implementaciones a medias que se han realizado en iteraciones pasadas, se ven inmersos en un pequeño infierno de código muy mal escrito que tienen que mantener, por lo tanto las impresiones en general que se van generando son malas, y se crea la falsa idea de que el software es aburrido y tedioso.

Cada quien debe de hacerse responsable de su aprendizaje, el que tengas muchas horas escribiendo código no significa que ese código va a estar mejorando, la escuela no es garantía de nada y personalmente no otorgo mayor respeto a alguien por sus títulos académicos así que es deber de cada quien el hacerse completamente responsable de el desarrollo de uno mismo, se debe cultivar el conocimiento personal, aprender de los buenos libros, analizar código sin ataduras de tiempo, las cosas no llegan así de la nada.

Al final del día uno no es la empresa en la que trabaja, pero siempre prevalece lo que se aprende, en la actualidad puedo decir que la mayor inversión a mediano plazo es el tiempo que le dediques a tu crecimiento personal, no existe recurso mas escaso que los buenos cerebros y sinceramente los programadores estamos en una posición muy privilegiada por la dependencia que la sociedad tiene hacia el software y que sin duda va en incremento.

Reserva tiempo para tu código, dedicate a mejorarlo solo por diversión, una buena forma de incursionar es apoyando a proyectos de software libre o haciendo algún buen ejercicio para innovar con una pieza de software salida de la nada, a la larga esas experiencias son las que te permiten crecer, deja el dinero fuera de la cabeza, por un rato al menos.

¿Cómo escribir buen código, cuando el tiempo presiona?, es como hacer el amor mirando el reloj, la capacidad de un ser humano llega a sus mejores puntos en los que se pierde el tiempo, el factor desaparece el potencial se maximiza, ¿Como se imagina alguien que puede ser realmente bueno en algo, cuando todo el tiempo lo hace contra-reloj?.

El aprendizaje profundo es muy sutil y se adquiere de una manera suave y constante conforme uno realiza alguna actividad con dedicación, el buen código no es la excepción.

Tags: consejo