Programar está de moda, pero eso no lo hace fácil.

Hace tiempo decía de mi mismo que era un diseñador que sabía programar, pero en los últimos seis años de mi carrera, el orden de los factores se ha ido invirtiendo poco a poco. Ahora soy un programador –la mayor parte del tiempo– que también diseña.

Esto no quiere decir que me guste una carrera más que la otra, pero desafortunadamente el diseño gráfico es una de las carreras peor pagadas en México mientras que los ingenieros de software se encuentran en gran demanda gracias al boom tecnológico que vivimos. Dólares contra dólares, es fácil elegir.

Los bolsillos profundos de los inversionistas que nutren al sector tecnológico han provocado una guerra entre las compañías para conseguir el mejor talento, así haya que encontrarlo en el rincón más remoto del planeta. Ésto, por consecuencia, ha hecho que cambiar de carrera, desde cualquier carrera, hacia la ingeniería de software tenga mucho sentido económico.

Y el mundo lo ha notado. Por eso ahora el internet está lleno de escuelas y academias y cursos que enseñan a programar, porque programar es la habilidad del futuro. Programar va a sacar al mundo de pobre. Programar empodera a las minorías. Programar es el nuevo alfabetísmo.

Programar se puso de moda.

No estoy tratando ser cínico, nade de eso. Habiendo pasado personalmente por este cambio de carrera, puedo atestiguar en carne propia sus beneficios. Lo que no me late, es que parece que se minimizara el esfuerzo requerido para ser un buen programador1. Es como si, luego de mirar los éxitos obtenidos por J.K. Rowling y George R.R. Martin, de repente el mundo decidiera que el camino al éxito termina en saber leer y escribir. Para hacer un best seller, hace falta mucho más que conocer el abecedario.

El camino del coder.

Para mi han sido más de diez años y todavía tengo un fuerte caso de síndrome del impostor. Cada año trato de remembrar lo que he aprendido en los últimos doce meses y cada vez me sorprende mi audacia de haber pensado que sabía algo. Me avergüenzo terriblemente de el código que escribí hace 5 años y casi siento que debería regresar lo que me pagaron por él (not really). Lo que quiero decir es que es un proceso de aprendizaje que no termina, es como correr un maratón donde la meta no deja de moverse, es una tortura para quien quiere una profesión fácil y estable.

Y no se trata solo de tener amor al arte y desear superarse a uno mismo, además la industria nos cambia el juego cada poco tiempo, volviendo obsoleto gran parte de nuestro conocimiento. Me cuesta pensar en otra profesión donde la necesidad de actualizarse sea tan tiránica como en programación de software. Tratándose de campos que están en constante movimiento, como el desarrollo de front-end, no es poco común que el zeitgeist cambie por completo cada seis meses.

Si la industria decide colectivamente que hay una mejor forma de hacer las cosas, se moverá, sin importarle el tiempo y esfuerzo que hayas invertido en el status quo. O tus sentimientos.

Esos locos que programan.

Mientras que aplaudo los esfuerzos por enseñarle a programar a la mayor cantidad de personas posible, dudo que un futuro en el que todos programemos sea realista. Mucho menos uno en el que todos estén ganando sueldos competitivos de Silicon Valley. La realidad es que solo algunas personas –algún tipo de personas— pueden ser programadores.

Es fácil pensar que esta distinción tiene que ver con la inteligencia, pero no necesariamente. Probablemente la mayoría de las personas podrían aprender a programar, es decir: aprender los conceptos, si su enseñanza fuera obligatoria en las escuelas. Pero no todos pueden ser programadores.

En mi opinión, para ser un buen programador que además se siente feliz y realizado con su trabajo, se requiere cierto tipo de personalidad. Hay que tener una curiosidad natural, un deseo insano de aprender todo el tiempo. Hay que tener una gran paciencia Se requiere tener una curiosidad natural, unas ganas de aprender, una enorme paciencia y una resistencia inhumana al aburrimiento.

La motivación económica ayuda, pero no es suficiente. Para ser programador hay que amar el código. Y no todos pueden.


[1]: Donde para definir bueno uso los crecientes requerimientos de la industria.


Disclaimer: Como experimento, publiqué este post también en Medium.