Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

Por qué aprender a programar en diferentes lenguajes

Pablo Huet Carrasco
Por qué aprender a programar en diferentes lenguajes

La programación es una disciplina relativamente moderna que, hasta hace poco, no ha estado al alcance de todos los públicos, e inicialmente se hallaba reservado para profesionales que ya tenían una cierta formación en ciencias relacionadas (Matemáticas, física, ingeniería eléctrica…).

Sin embargo, con el desarrollo de la informática de consumo en las últimas décadas, y más aún con el florecimiento de internet, la programación, así como las herramientas para programar y los recursos online han abierto un nuevo mundo de aprendizaje muy accesible para un amplio rango de edades, y parece ser una tendencia en alza que no hará más que aumentar de aquí al futuro.

Qué es programar

Antes de poder discutir las ventajas de programar sería necesario hacernos la pregunta clave: ¿Qué es programar?. Programar en muchos casos ha sido explicado simplificadamente, sobre todo para los profanos, como “la capacidad para seguir una serie de recetas, llamados algoritmos, siendo capaz de transformarlos en un código que una máquina pueda entender y ejecutar”.

Imagen 1 en Por qué aprender a programar en diferentes lenguajes

Sin embargo, programar va mucho más allá, ya que no es el propio acto de escribir código lo que se considera programar, eso podríamos decir que no es más que una simple transcripción, como cuando pasamos un texto de sucio a limpio. Podríamos separar el proceso del programador en cuatro pasos genéricos:

  • Identificar el problema - La parte principal de la programación implica la resolución de una máquina de un problema concreto, dicho problema debe de ser identificado por el programador, creando unos requisitos de forma pormenorizada, en lo que llamamos fase de análisis. Este problema generalmente es abstracto y simplemente resalta una necesidad que necesita cierta automatización.

    “Mis empleados necesitarían alguna forma de llevar sus proyectos y compartir avances” podría ser un problema de este tipo, y podríamos por tanto pormenorizarlo pensando “Además deberán de poder comunicarse, dejar notas en los proyectos, crear tareas para cada proyecto y que puedan ser asignadas a usuarios concretos, con fechas de inicio y finalización”.

  • Subdividir el problema - En la misma fase de análisis debemos de coger el problema principal y utilizando nuestros propios requisitos debemos de subdividir el problema de forma que este sea un conjunto de pequeños problemas que sean resolubles con el mínimo posible de interdependencia y que nos genere un árbol de tareas que sea necesario resolver para obtener nuestro software final.

  • Plantear la tarea - De forma ideal, cada tarea debe de ser planteada, de forma que nosotros seamos quienes creemos la receta, o algoritmo, que nos permita completarla. Evidentemente esta fase no consiste tampoco en volver a inventar la rueda, tener cierto conocimiento de patrones, algoritmia y modelado nos ayudará a crear nuestros algoritmos de una manera más efectiva utilizando los conceptos ya conocidos.

  • Implementar la tarea - Finalmente llegamos a la fase que es más conocida cuando hablamos de programación, esta es la implementación. En esta fase transcribimos a código, intentando respetar reglas de estilo y de eficiencia, el algoritmo que hemos elaborado en la etapa anterior, de forma que esta es generalmente la fase más sencilla de todas, ya que si hemos planteado de forma correcta nuestro algoritmo este paso no será más que una mera aplicación del lenguaje que utilicemos.

Evidentemente, y en muchas ocasiones, no tendremos que seguir todas las fases. Muchas veces, y sobre todo profesionalmente en el mundo laboral, sólo realizaremos ciertas partes de este proceso, pero de manera general siempre tendremos una tarea de análisis por lo menos, ya sea por la subdivisión de tareas para otros programadores (en el rol de analista), o ya sea como implementador de la tarea, donde también tendremos que plantearla previamente.

Las ventajas de la programación en el día a día

Podríamos hablar sin duda de las ventajas de la programación en el entorno tecnológico o de las empresas, sin embargo, estas son bien conocidas, a nadie sorprenderá saber que un programador es generalmente más hábil con las máquinas, los sistemas informáticos y la tecnología ya que pasa media vida entre ellos.

No obstante, no suele hablarse de manera frecuente de las ventajas y añadidos que nos confiere el hecho de programar por el simple impacto mental que supone realizar las fases previamente descritas de manera habitual. De hecho, actualmente estos beneficios son incluso parte importante de estudios de investigación en psicología debido a la enseñanza actualmente de la programación en ciertos centros educativos (como por ejemplo en EEUU donde forma parte del plan de estudios público).

Entre estos beneficios podríamos destacar:

  • Aumento de la creatividad - Un programador no sólo desgrana los problemas, sino que los identifica, y con el tiempo suficiente es capaz de crear un problema de cada necesidad, y una solución original para cada problema. Además, como estas fases forman parte del desarrollo, no es infrecuente que muchos programadores suelan tener hobbies creativos que impliquen pensar y/o crear, ya que un verdadero adepto de la programación suele tener un cierto apego a la ideación y la creación de la nada y suele terminar desarrollando un pensamiento lateral avanzado que es altamente adaptativo para su profesión.
  • Mayor capacidad de organización y atención - Como la programación implica una necesidad de orden, no sólo creatividad, esto obliga a que el cerebro organice de manera adecuada y secuencial los pasos necesarios para la consecución de las soluciones de las tareas. Acostumbrado a utilizar el cerebro de esta manera, finalmente esto termina extendiéndose al día a día, de manera que ayuda a estructurar mejor todas las tareas diarias y termina volviendo organizada incluso a la persona más despistada. De hecho, ya hay profesionales que recomiendan la programación para ciertos casos en jóvenes con problemas de déficit de atención.
  • Desarrollo de la versatilidad y la capacidad de adaptación - Dado que la programación es un mundo que requiere reinventarse continuamente y en ocasiones adaptarnos a una serie de requisitos impuestos, los programadores suelen terminar desarrollando una capacidad para adaptarse que les permite estar siempre preparados para aprender nuevas tecnologías y conceptos, así como de buscar soluciones alternativas con lo disponible. Esto evidentemente también se termina extendiendo al mundo real, y los desarrolladores suelen terminar siendo personas resolutas capaces de inventar soluciones ingeniosas en situaciones de necesidad, y no suelen temer a aprender un nuevo conocimiento y aplicarlo si es necesario.

Qué ventaja obtenemos de conocer varios lenguajes

Al igual que programar nos ofrece todas estas ventajas, programar en varios lenguajes nos permite expandir nuestras capacidades y nos hace más versátiles, al igual que nos permite entender la programación no como el desarrollo en un lenguaje concreto, sino como una metodología abstracta que implica la transcripción de ideas estructuradas a una sintaxis concreta definida por una serie de restricciones o flujos.

Imagen 3 en Por qué aprender a programar en diferentes lenguajes

Un lenguaje generalmente está delimitado por una sintaxis concreta, un propósito, y una cierta filosofía. Es decir, el lenguaje no es exclusivamente la sintaxis o una variación de las estructuras, sino que implica también una orientación y una serie de buenas prácticas y hábitos que mejoran el flujo de desarrollo.

Por tanto, no es de extrañar que conocer ciertos lenguajes pueda causarle a nuestro cerebro una cierta “expansión”, ya que nos proporciona una imagen de mayor magnitud de lo que significa programar. Algunos lenguajes y las ventajas que pueden ofrecernos son:

  • Python - El caso de Python es interesante. Generalmente se define como un buen lenguaje de entrada, ya que su filosofía se basa en la simplicidad, y hay multitud de convenciones para realizar prácticamente cualquier cosa. Es un lenguaje tipado fuerte, es decir el tipo de una variable no puede cambiar una vez asignado, pero de tipado dinámico, esto es que el tipo es determinado por el primer valor que reciba, lo que significa que es posible aprender lo que son los tipos de forma efectiva pero no es necesario establecer dichos tipos a priori. La velocidad, la búsqueda de sencillez y conceptos como los módulos (Introducidos de forma muy intuitiva), hacen de Python un lenguaje genial para aprender, y una delicia para un programador avanzado que quiera buscar formas efectivas, rápidas y reducidas para implementar sus algoritmos.

  • Java - Aprender a programar con Java es sinónimo de aprender programación orientada a objetos (POO o OOP en inglés), ya que es un lenguaje orientado a objetos y absolutamente todas sus clases internas siguen esta filosofía. Viniendo de cualquier otro lenguaje, Java puede resultar un shock, ya que es necesario en ocasiones invertir más tiempo para ciertas tareas, pero su orientación a objetos suele forzar que exista un flujo ordenado para las implementaciones, y favorece la estructuración del código con conceptos de POO como interfaces o herencia.

  • Haskell - En el otro extremo respecto a Java tenemos a Haskell. Este lenguaje está orientado a la programación funcional y es considerado un lenguaje cien por cien funcional. Sólo es posible utilizar funciones puras, esto es, no es posible tener efectos secundarios en nuestro código, como por ejemplo el uso de números generados aleatoriamente, ya que los programas en Haskell son transformados en ecuaciones matemáticas. Tampoco es posible mutar ninguna variable, una variable es una constante y siempre tiene el primer valor asignado, la única manera de generar un nuevo valor es generar una nueva variable.

    Programar en Haskell es un reto, ya que nos obliga a pensar no sólo en términos funcionales, sino que nos restringe cualquiera de los flujos de programación a los que estamos acostumbrados, e incluso a los efectos secundarios que estamos acostumbrados a introducir en nuestro código.

  • Javascript - En el caso de Javascript tendremos el otro lado de la moneda de muchos lenguajes. Es un lenguaje que tiene un tipado dinámico, pero además débil, lo que significa que las variables pueden almacenar cualquier valor con cualquier tipo en cualquier momento, y estos valores y tipos pueden cambiar. De igual manera tiene particularidades como que las funciones pasan por un proceso de hoisting, esto es, se establecen antes de la ejecución, por lo que no es necesario llamarlas en el orden de definición y tienen visibilidad en el código completo.

    Igualmente, otros conceptos como la coerción de tipos, en la que Javascript realiza transformaciones automáticas entre tipos para comparar entre tipos distintos, nos obliga a desarrollar estrategias de control para asegurarnos que nuestro código se ejecuta de manera controlada, y nos enseña a usar estas transformaciones a nuestro favor para procesos como la validación en nuestras aplicaciones, ya sean web o móviles.

  • PHP - PHP es un lenguaje estructurado de servidor que permite crear versiones compiladas en HTML usando estructuras de control. La ventaja principal de PHP para cualquier desarrollador es que es un lenguaje rápido en implementaciones, que devuelve algo comprensible directamente para el navegador y que permite realizar soluciones rápidas para la web.

    La principal ventaja de PHP es que, usado sin ningún framework, proporciona una comprensión muy amplia de cómo funciona un servidor web, cómo se procesa una petición HTTP y cuáles son los procesos internos de un servidor como podría ser por ejemplo Apache. PHP es un lenguaje de tipado dinámico, pero fuerte, y es un gran punto de entrada al desarrollo web, ya que existen multitud de recursos incluyendo los de los propios creadores de PHP.

Lo importante es programar

Cada lenguaje nos ofrecerá una serie de ventajas, nos introducirá nuevos conceptos, nos proporcionará un nuevo reto y lo que es más importante, nos volverá más adaptables como profesionales. Pero no es el lenguaje el que importa, es la programación, y cualquier nuevo lenguaje que se aprenda, cualquier nuevo software que se desarrolle, nos hará más hábiles, más confiados en nuestras capacidades.

No importa si aprendemos lenguajes populares como C# o lenguajes más minoritarios como Lua, cada lenguaje aprendido nos hará más sencillo aprender el siguiente, y cada concepto acumulado será un nuevo recurso que podremos aplicar a nuestros problemas.

Si os habéis quedado con ganas de más, aquí en OpenWebinars os tenemos cubiertos con numerosos cursos, ya sea para que aprendáis Java con nuestro Curso de Java 8 desde cero, para que podáis dominar la simpleza y potencia de Python con el Curso de Python 3 desde cero, para aprender más sobre el desarrollo backend en web con PHP gracias a nuestro Curso de PHP para principiantes o para que os podáis introducir en el ordenado pero útil caos de JavaScript con un excelente Curso de JavaScript para principiantes.

Relacionado

Te dejamos una selección de cursos, carreras y artículos

Curso de Programación en Kotlin para Android

Curso de Programación en Kotlin para Android

curso

Aprende a desarrollar aplicaciones para Android programando mediante Kotlin, el nuevo lenguaje de programación oficial de Android que te ahorrará tiempo en la creación de tus apps.

Duración: 6 horas y 43 minutos

Tipos de lenguajes de programación

Tipos de lenguajes de programación

Lenguajes de Programación

08 de Agosto de 2020

Si quieres conocer los diferentes tipos de leguajes de programación que existen, cómo han ido evolucionando y las diferentes generaciones que han ido surgiendo a lo largo de los años, en este compl...

Más de 300 empresas confían en nosotros

Oesia
Vass
Everis
Ayesa
Altran
Ibermatica
Atmira
GFI
Accenture
GMV
Concatel
Telefonica
Caser
Banco de España
kpmg
Mapfre
Randstad