Los programadores necesitamos comunicarnos. Mucho.
Hay periodos en la vida de un programador cuando mucha de su comunicación parece ser con la computadora. Más precisamente, con los programas ejecutándose en esa computadora. Esta comunicación es con respecto a expresar ideas en una forma leíble por la máquina. Sigue siendo un prospecto emocionante: los programas son ideas convertidas en realidad, con virtualmente ninguna sustancia física involucrada.
Los programadores deben tener fluidez en el lenguaje de la máquina, ya sea real o virtual, y en las abstracciones que pueden estar relacionadas con el lenguaje vía herramientas de desarrollo. Es importante aprender muchas abstracciones diferentes, de otro modo algunas ideas se vuelven increíblemente difíciles de expresar. Los buenos programadores necesitan ser capaces de pararse fuera de su rutina diaria, de estar al tanto de otros lenguajes que son expresivos para otros propósitos. La hora siempre llega cuando éste vale la pena.
Más allá de la comunicación con las máquinas, los programadores necesitan comunicarse con sus pares. Los grandes proyectos de hoy en día son más emprendimientos sociales que simplemente una aplicación en el arte de la programación. Es importante entender y expresar más de lo que pueden las abstracciones de máquina. La mayoría de los mejores programadores que conozco es muy fluida en su lengua madre y, por lo general, en otros idiomas también. Esto no es sólo sobre la comunicación con otros: hablar bien un lenguaje nos lleva a una claridad de pensamiento que es indispensable cuando se abstrae un problema. Y también de eso se trata la programación.
Más allá de la comunicación con las máquinas, con uno mismo y con los compañeros, un proyecto tiene muchos stakeholders, la mayoría con una formación diferente o no técnica. Ellos viven en las áreas de pruebas, calidad y despliegue, en mercadeo y ventas, son usuarios finales en alguna oficina (o tienda o casa). Necesitas entenderlos y a sus preocupaciones. Esto es casi imposible si no puedes hablar su lenguaje en su mundo, su dominio. Mientras puedes pensar que una conversación con ellos salió bien, ellos probablemente no.
Si puedes hablar con contadores, necesitas un conocimiento básico de contabilidad, de centros, de costos o capital invertido, capital empleado, et al. Si vas a hablar con mercadólogos o abogados, algo de su jerga y lenguaje (y, por lo tanto, su mente) debería serte familiar. Todos estos lenguajes específicos del dominio necesitan ser dominados por alguien en el proyecto; de preferencia los programadores, ya que son los responsables de llevar las ideas a la vida a través de una computadora.
Y, por supuesto, la vida es más que proyectos de software. Como lo nota Charlemagne, el conocer otro lenguaje es tener otra alma. Para tus contactos más allá de la industria del software serás más apreciado al conocer lenguajes extranjeros. Para saber cuándo escucharlos en vez de hablar. Para saber que la mayor parte del lenguaje es sin palabras.
"De lo que no se puede hablar, hay que callar". Ludwig Wittgenstein.