top of page

Yo se programar... pero ¿en qué?


Una de las grandes interrogantes de nuestros futuros programadores es qué lenguaje estudiar para ser exitoso. Pues bien, tal como va la tecnología avanzando, lo que aprendan hoy, en 5 años puede estar obsoleto, por lo que aprender lenguajes de programación no es la mejor forma de convertirse en un buen programador. Aquí quiero contarte algo de experiencia al respecto.


Yo llevo en el mundo de las tecnologías de la información más de 30 años (desde que comencé a estudiar en mi enseñanza media hasta el día de hoy), por lo cual me siento con algo de propiedad respecto al desarrollo tecnológico, en especial en la programación de sistema. Desde programación estructurada, pasando por funcional, orientada a eventos y orientada a objetos hasta orientada a servicios, creo haber visto un montón de lenguajes de programación de los cuales podría hablar. Pero en el fondo, la pregunta del millón, ¿cuál es el mejor lenguaje hoy en día? ¿y en el futuro? ¿qué debo estudiar?. Pues, eso no se puede responder sin entrar en algo en contexto.


Historia de la Programación

Los lenguajes de programación modernos tienen sus inicios en lenguajes más antiguos, conocidos como lenguajes de códigos. En 1801, la máquina del telar de Jacquard utilizaba una tarjetas con orificios para hacer movimientos en un brazo utilizado para tejer. Entre 1842 y 1843, Ada Lovelace desarrolla un método para calcular los números de Bernoulli con la Máquina Analítica de Babbage. En 1890,. Herman Hollerith codificó los datos del censo en tarjetas perforadas. A principios del siglo XX, se realizaban cálculos en "computadoras" a través de código en tarjetas perforadas.


Sin embargo, los primeros lenguajes de programación aparecen cerca de la mitad del siglo XX, en donde una computadora, a través de tarjetas perforadas, podía hacer cálculos más complejos a través de un dialecto descrito en sus orificios. Con las primeras computadoras moderas, aparecen lenguajes como Plankalkül (1943), un lenguaje que nunca fue implementado, ENIAC (1943) y C-10 para BINAC (1949 al 1954). Más tarde aparecen lenguajes modernos como FORTRAN (1955), LISP (1958), COBOL (1959), RPG (1959), APL (1962), Simula (1962), SNOBOL (1962), CPL (1963), BASIC (1964), PL/I (1964), BCPL (1967), Logo (1968), B (1969), Pascal (1970), Forth (1970), C (1972), SmallTalk (1972), Prolog (1972), MK (1973), Scheme (1975), SQL (1978), Modula-2 (1978), C++ (1980), Ada (1983), MATLAB (1984), Eiffel (1985), Objective-C (1986), Perl (1987), Haskell (1990), Python (1991), Visual Basic (1991), HTML (1991), Ruby (1993), Java (1995), Delphi (1995), Javascript (1995), PHP (1995), ActionScript (2000), C# (2001), .NET (2001), F# (2002), Groovy (2003), Scala (2003), Scratch (2005), Go (2009), Dart (2011) y Swift (2014) entre otros que he omitido porque no son tan conocidos (Fuente: Wikipedia).


Como verás, conocer todos los lenguajes de programación es casi imposible, ya que el paradigma y el tipo de sistemas que se pueden hacer con ellos son muy diversos. Si solo consideramos los sistemas web, desde el año 1990 hasta hoy existen demasiados lenguajes de programación, además de frameworks que facilitan su desarrollo (por ejemplo, PHP existen muchos frameworks y los más populares rondan los 10 activos). Por otro lado, si pensamos en el desarrollo mobile, esto también se dispara con los frameworks de desarrollo que existen (Node.js, React Native, Cordova, entre otros).


¿Cómo Capitalizo el Conocimiento?

En los años que llevo haciendo clases de cursos de informática y programación en diferentes instituciones, sumado a la experiencia en el desarrollo de software de diferentes tipos (Web, Desktop y Mobile) creo que es una pérdida de tiempo tratar de aprender un lenguaje de programación específico, ya que rápidamente quedará obsoleto o saldrá un nuevo proyecto en donde requieras capacidades en nuevos desarrollo. En mi experiencia, durante mi carrera aprendí lenguajes Pascal, C, Scheme, C++ y Java principalmente, para luego salir a trabajar en Visual Basic con HTML como mi primer trabajo, algo de lo que "no me había preparado la universidad". Luego salto a Java (JSP y Servlets) nuevamente, pero a esas alturas había evolucionado mucho más de lo que yo conocía del lenguaje. Finalmente mi gran salto fue cuando por necesidad laboral tuve que aprender y reconocer desarrollo móvil nativo (Objective-C y Android, que en el fondo es Java pero con bibliotecas específicas). Ahora utilizo XML, Groovy y un framework de desarrollo muy específico.


Pensarás que entonces fue una pérdida de tiempo aprender los lenguajes vistos en la universidad, y yo digo que no, puesto que el enfoque de las asignaturas fue "resolver problemas de ingeniería a través de soluciones informáticas programadas en ...", lo cual es una ventaja. Cada vez que necesitaba algo en mis trabajos, consultaba documentación para buscar "lo que el algoritmo debía realizar" y así iba avanzando. Ahora me siento capacitado para tomar cualquier lenguaje de programación y solucionar problemas (a pesar que hoy por hoy, el nivel de programación que tengo es más bajo que un programador promedio, ya que tengo otras responsabilidades.


Entonces, lo importante no es el lenguaje. Cuando se tiene la oportunidad de aprender un nuevo lenguaje de programación o estás por aprender el primero, trata de que la forma en que lo aprendas no sea memorizando para qué sirven las instrucciones del lenguaje o la sintaxis, para eso sirven los entornos de desarrollo integrado (IDE), sino que para entender la lógica. No seas de los que "copia código" para que funcionen los programas, para luego no saber por qué funciona. Primero entiéndelo y luego utilízalo de la mejor manera posible en tu solución: no es malo utilizar el conocimiento de otras personas, siempre y cuando seas tú el que tiene la conciencia de "para qué" se hizo un trozo de código específico.


En Resumen

Existen muchos lenguajes de programación, pero no es una "buena inversión" tratar de aprenderlos desde el punto de vista de sintaxis y notación, siempre es mejor aprender a programar utilizando el lenguaje. Cuando haces eso, al final te será muy fácil determinar cómo se programa en un nuevo lenguaje de programación o entorno de desarrollo sin necesidad de que tomes un nuevo curso de desarrollo de sistemas.

65 visualizaciones0 comentarios

Comentarios


bottom of page