Menú de navegaciónMenú
Categorías

La mejor forma de Aprender Programación online y en español www.campusmvp.es

?id=237eb682-c79e-4c4c-8739-6b447ac30a3f

Por qué debes aprender más lenguajes de programación (incluso si no los vas a utilizar)

Este artículo es una traducción del artículo "Learn more programming languages, even if you won't use them" de Thorsten Ball en su blog personal, con su permiso expreso. El énfasis en negrita es nuestro.

Imagina que te han entregado una tarea y eres libre de elegir el lenguaje de programación. La asignación implica todo tipo de manipulación de cadenas: leer cadenas, dividir cadenas, recortar, unir y ejecutar expresiones regulares sobre cadenas, todo en UTF-8 y, por supuesto, los emojis deben funcionar. ¿Qué lenguaje elegirías? ¿C? Oh, por favor no.

Otro trabajo, esta vez en una institución financiera. Necesitas realizar decenas de miles de cálculos concurrentes. Tener alto rendimiento es un requisito irrenunciable. ¿Deberías usar... Ruby? Venga. A continuación te cae: crear un script único que cambie el nombre de un grupo de archivos ... ¿lo escribirías en Java? ¿Hacer un descargador de datos de la web... en Python? Programar un controlador para un dispositivo médico con... ¿C#? ¿Swift? ¿Lua? ¿Ves por dónde voy?.

Los diferentes lenguajes de programación son buenos para algunas cosas y malos para otras. Cada uno hace ciertas cosas más fáciles y, a su vez, otras más difíciles. Dependiendo de lo que queramos hacer, podemos ahorrar mucho trabajo si elegimos el lenguaje de programación apropiado, el que hace que resolver el tipo de problema al cual nos enfrentamos sea más sencillo.

Ese es uno de los beneficios tangibles y sensatos de aprender varios lenguajes: añades otra herramienta a tu caja de herramientas y, cuando llegue el momento, podrás elegir la mejor. Pero yo iría un paso más allá.

Creo que es valioso aprender nuevos lenguajes de programación incluso si -aquí viene el golpe- nunca los sacas de la caja.

Imagen ornamental por Tim Mossholder en UnSplash

Las lenguas moldean nuestra forma de pensar*, y cada una lo hace de su propia forma. Eso es cierto también para los lenguajes de programación. Cada lenguaje contiene un modelo mental diferente, una perspectiva distinta sobre cómo pensar acerca de la computación y sobre cómo escribir programas.

Toma el lenguaje SQL, por ejemplo, y piensa cómo moldea tus pensamientos sobre el flujo y la forma de los datos en tu programa. Ahora considera cómo se vería en un lenguaje imperativo y orientado a objetos como Java, o en un lenguaje funcional como Haskell. O en C. Imagina cómo sería un servidor de juegos multijugador si lo programases en Python, en Haskell o en Erlang. O la transmisión y el procesamiento de terabytes de datos en C, en Go, en Clojure. O una interfaz de usuario en Tcl, en Lua, o en JavaScript.

Cada lenguaje de programación es una lente a través de la cual podemos ver el problema que intentamos resolver. A través de algunos de ellos el problema parece complicado, agotador. A través de otros, ni siquiera parece un problema en absoluto, apenas se ve la diferencia con cualquier otra cosa mundana que uno pueda hacer en este lenguaje.

Al aprender un nuevo lenguaje, incluso si lo dejas en tu caja de herramientas para toda la eternidad, obtienes una nueva perspectiva y una manera diferente de pensar en los problemas. Una vez que hayas implementado un servidor de juegos en Erlang, verás los servidores de juegos desde otra perspectiva. Después de haber procesado datos con Lisp, al aprender a pensar en los datos como un conjunto de listas que puedes moldear enviándolas a través de una serie de pequeñas funciones que se pueden componer para formar tuberías de funciones, verás como aparecen por todas partes sombras de este patrón. En cuanto hayas probado por primera vez la administración de la memoria en C, empezarás a apreciar lo que Python, Ruby y Go están haciendo por ti, mientras valoras el esfuerzo de su trabajo. Y si alguna vez has construido una interfaz de usuario en JavaScript con React.js, sabes que estás pensando en usar componentes para la UI, cambiando el modelo de manera fundamental.

Estas nuevas perspectivas, estas ideas y patrones, persisten, permanecen contigo, incluso si terminas por escoger otro lenguaje. Y eso es algo lo suficientemente poderoso como para seguir aprendiendo nuevos lenguajes, porque una de las mejores cosas que pueden sucederte cuando intentas resolver un problema es un cambio de perspectiva.

*Esto es lo que se conoce como relatividad lingüística o hipótesis de Sapir-Whorf. En el contexto de este artículo apoyo la tesis en cierto modo, pero debes saber que entre la comunidad científica su validez aún está muy abierta al debate. Lee este artículo para una introducción a los problemas con esta tesis.

campusMVP campusMVP es la mejor forma de aprender a programar online y en español. En nuestros cursos solamente encontrarás contenidos propios de alta calidad (teoría+vídeos+prácticas) creados y tutelados por los principales expertos del sector. Nosotros vamos mucho más allá de una simple colección de vídeos colgados en Internet porque nuestro principal objetivo es que tú aprendas. Ver todos los posts de campusMVP
Archivado en: General

¿Te ha gustado este post?
Pues espera a ver nuestro boletín mensual...

Suscríbete a la newsletter

La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.