¿Con qué lenguaje debería aprender o empezar a programar?

Seguramente todos los programadores tendremos una respuesta diferente a esta pregunta, pero les voy a dar un análisis en base a mi experiencia para que ustedes puedan comenzar a investigar y tomar su propia decisión.

El primer lenguaje con el que comencé a programar fue C, es un lenguaje muy poderoso, se compila muy eficientemente en código maquina los que nos da una gran performance, digamos que se lleva muy bien con el hardware. Lo más importante de C es que es muy simple, solo tienes que conocer las distintas estructuras de datos para a poder almacenar de forma correcta la información y crear variables para operar. Y crear pequeñas porciones de código que puedes agrupar en funciones, cada función realiza una tarea concreta y un conjunto de funciones nos da un programa en C. Es un lenguaje de propósito general de bajo nivel, lo que quiere decir que está muy cerca del hardware, nos permite realizar operaciones directamente con la memoria y los periféricos, por ejemplo. Es por esto que es el principal lenguaje usado para microcontroladores, puedes ver una vista previa de lenguaje C en la plataforma Arduino aquí.

Ejemplo de código en C++

Si nuestro proyecto en C es muy grande, o el manejo del hardware y la performance del software no es nuestra prioridad C no será nuestro lenguaje definitivo, pero es muy fácil de aprender y muy divertido si puedes utilizar un Arduino por ejemplo y jugar con electrónica también. Cuando tenemos un proyecto muy grande de software y queremos realizar código genérico y reutilizable, el paradigma de programación orientada a objetos es la mejor alternativa. En este caso podemos dar un paso más y pasar a programación en C++, pero mi recomendación saltar a otro bando y optar por comenzar con Java.

Java fue el lenguaje de entrada de mis compañeros cuando estuve estudiando en una de las mejores universidades de informática de Francia. Java es un lenguaje de más alto nivel, con muy pocas funciones de manejo directo de hardware, su principal ventaja es la portabilidad, el código en java se compila para ser ejecutado sobre la plataforma Java, es decir que, para ejecutar un programa en Java, tienes que tener instalado Java y sin importar el hardware este funcionara. Lo que permite utilizar una versión de código para distintos sistemas operativos, agiliza el desarrollo multiplataforma en este sentido. El otro punto que puede ser a favor o en contra, es que la sintaxis de Java es totalmente basada en objetos, todo el código en Java tiene que ser un objeto o deriva de un objeto. Esto al principio resulta algo un poco complejo de entender, pero entender desde el principio de nuestra carrera como funciona la programación orientada a objetos aprendiendo esta desde uno de los lenguajes más denso y popular será una gran ventaja el día de mañana, dado que en la mayoría de las aplicaciones la programación orientada a objetos es la base.

Ejemplo de código en Java.

Podes programar C++, Python, JavaScript con un paradigma orientado a objetos, pero estos no son lenguajes puramente con esta orientación como Java, teniendo los conocimientos de Java, cualquier programa orientado a objetos será una tarea sencilla. Nota que puede ser importante, los videojuegos se programan con lenguaje orientado a objetos (C#, C++, Java).

Ahora analizaremos el lenguaje por excelencia de la comunidad científica, Python. Se trata de un lenguaje multiparadigma, podemos escribir código orientado a funciones u orientado a objetos u otros paradigmas. La diferencia principal de Python es que está enfocado en crear una sintaxis muy fácil de leer, y este código no se compila, se interpreta. Que sea un lenguaje interpretado nos trae 2 problemas, al principio no tendremos la mejor performance, hasta que podamos sacarle el jugo a las librerías que aprovechen mejor los recursos. Y luego Python al ser un código interpretado, lee una porción de código y la ejecuta, como si estuviera leyendo un texto y haciendo lo que se le pide, esto en proyectos grandes de software nos hace que tengamos que tener en cuenta esto a la hora de escribir y agregar las excepciones correspondientes para evitar que el programa se detenga por un error. Pero la principal ventaja de Python es su poderosísima biblioteca de librerías open source que nos permitirán desde procesar videos hasta escribir nuestras propias redes neuronales en menos de 30 líneas de código. Las principales aplicaciones de redes neuronales, deep learning, machine learning o resumiendo lo que en marketing dicen inteligencia artificial, están desarrolladas en Python de forma casi totalmente abierta. Junto a un montón de librerías que resolverán grandes problemas, como leer archivos enormes o ejecutar código directamente en la GPU, en pocas líneas de código. La simpleza del código en Python yace en que sus programas pueden ser muy poderosos, pero con poco código escrito.

Ejemplo de código en Python.

Conclusión v1.0

Si no está seguro aun de con que lenguaje comenzar tu carrera hasta aquí, puedes seguir buscando en internet aunque estoy seguro de que una buena respuesta es JavaScript. Es un lenguaje que tiene la sencillez de Python, nos permite escribir código orientado a objetos, es interpretado, pero puede ser compilado si usamos Node.js y es el lenguaje que usan todas las aplicaciones y páginas web. Es un lenguaje de muy alto nivel, no podremos manejar el hardware o desarrollar una gran performance, pero tiene muchas librerías y biblioteca de librerías de las cuales nos podremos hacer para desarrollar un proyecto fácilmente. Además, al tener tanta importancia en el mercado, seguramente uno de los lenguajes más demandados en ofertas de empleo, la mayoría de los problemas que tengamos que resolver ya estarán escritos en alguna Liberia que podamos usar o en alguna consulta en Stack Overflow. La principal ventaja de JavaScript es que supongamos que programamos un algoritmo muy útil para resolver un problema, el código corre en el navegador, por lo cual agregando un poco de HTML y CSS (los cuales no llegan a ser lenguajes de programación así que los tendrás que aprender por tu cuenta ya que es una tarea muy fácil), ya tendremos una página web, y con esto tenemos nuestro código disponible para utilizar por todo el mundo, y lo más importante podremos obtener ingresos o tener algo que mostrar en nuestro portafolio. Lo mejor del código en JavaScript es que transformar nuestro código en una app web es algo muy sencillo y transparente. Con la introducción de Node.js que nos permite escribir backend en JavaScript para luego compilarlo en C y tener un gran poder, nos da como resultado que con JavaScript en el frontend y en el backend el cielo es el límite para desarrollar cualquier idea que tengamos.

Los frameworks modernos

Si bien hay muchos frameworks de los distintos lenguajes, citare como ejemplo JavaScript, hay un mundo de diferencia entre ser un maestro en JavaScript y ser un maestro en un framework moderno en JavaScript. Las empresas buscan principalmente JavaScript y especifican para que framework, los cuales pueden ser entre los más populares, Angular, React, Vue, Ember y literalmente cada un par de meses sale un nuevo y muy popular framework en JavaScript, ni hablar de librerías de las cuales tenemos miles para poder agregar a nuestro proyecto. Los frameworks serán el futuro de tu desarrollo quizás si estas, si programas en Python puede ser Django, si programas en JavaScript puede ser React, pero no es el momento ahora, solo tienes que tener en cuenta que no solo es aprender un lenguaje y programar en ese, esto es un proceso constante de mantenerse al día con las nuevas tecnologías. Al igual que surgió C y luego C++, en lenguajes más modernos como JavaScript este fue sucedido por Typescript y en este caso lo mismo con Node.js que será remplazado en el futuro por Deno.ts.

Conclusión v2.0

No importa cuál sea tu futuro, lo importante es tener una base lo suficientemente sólida que te permita desenvolverte bien a la hora de enfrentar cualquier problema de software que aparezca. El cielo es el límite, y lo más importante es que puedes crear tu propio negocio programando desde tu casa con una cerveza en la mano o trabajar para Google o Facebook si ese es tu objetivo.

Algo de mi experiencia

¿Con que comencé?
C/C++ en los primeros años de la universidad

¿Como siguió?
Python en mi grupo de investigación en la universidad

¿En qué programo todos los días?
Vanilla JavaScript para frontend y JavaScript con Node.js para el backend

¿Un lenguaje que odie programar?
CLIPS.

¿Qué me gustaría programar?
Definitivamente Rust, un multiparadigma moderno, muy completo y con gran performance. Y comenzar con TypeScript para luego hacer la transición de Node.js a Deno.ts.

Gracias por haber llegado hasta aquí!

Ariel Ivan Diaz
arielivandiaz.com

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store