¿Qué lenguaje de programación aprender primero? – 2023

MacBook Air on gray armchair

Este artículo nació de la respuesta a una pregunta que me suelen hacer de forma recurrente y que finalmente decidí plasmar por escrito.

Ante todo, quien escribe, es Desarrollador de Software con muchos años de experiencia. He estado desarrollando activamente, en diversos lenguajes de programación (desde código máquina, hasta lenguajes funcionales), en plataformas de Escritorio, Móvil y Web. Además soy Docente y divulgador en temas de Software y Electrónica. He escrito diversas aplicaciones, librerías, documentos y artículos sobre lenguajes de programación.

Ahora, una vez hecha la aclaración, y sin considerarme un experto, volvamos a la pregunta que nos ocupa.

¿Qué lenguaje de programación debo aprender primero?

La respuesta a esta pregunta no es sencilla. Es muy general, y la respuesta dependerá de:

  • Los objetivos que se estén buscando al aprender un lenguaje. En otras palabras: ¿Para qué demonios quieres aprender un lenguaje de programación?
  • Los mecanismos de aprendizaje más efectivos para cada estudiante. En otras palabras: ¿Cómo demonios aprendes mejor?

Un detalle importante es que no a todas las personas le resultará fácil, aprender a programar, usando el mismo lenguaje. Una respuesta más profesional sería: «Consulte a un docente especializado en pedagogía y programación». Y es que cada persona tiene características particulares que se adaptarán mejor a un lenguaje de programación. Un profesor responsable y preparado haría primero estas evaluaciones antes de recomendar un lenguaje. Porque fácil es decir:

«Aprende primero este o aquel lenguaje, porque a mi me funcionó, o porque me gustan, o porque yo soy el dueño de la verdad y la autoridad máxima en ese tema».

– Pseudoexperto

Hay muchos sitios en internet que van a responder esa pregunta de esa forma, y aunque, pueden no ser tan útiles, es bueno darle un vistazo y sacar nuestras propias conclusiones.

En este artículo, voy a plasmar mi respuesta, siempre basada en mi experiencia y conocimiento, enfocándolo desde el punto de vista de los objetivos.

Si tu objetivo es aprender a programar de forma fácil y rápida.

Si solo te interesa aprender de forma fácil y rápida, sin importar la utilidad de lo aprendido, podríamos optar por elegir uno de los lenguajes con sintaxis natural. Entre ellos están:

  • PSeInt
  • Basic
  • Pascal
  • Python
  • C

Desgraciadamente PSeInt no nos servirá para nada más que para el aprendizaje o la enseñanza, ya que ninguna aplicación seria usa PSeInt. En este sentido Python, aunque puede ser algo más complejo, tiene más futuro en el campo laboral también.

Pascal es un lenguaje que, además, nos enseña buenas prácticas de programación. Hay que notar que Pascal y Basic, son dos lenguajes que se usan muy poco en la actualidad.

En cuanto al Basic, existen además, diversas versiones del lenguaje y de intérpretes. Desde los más básicos para DOS, hasta las versiones más actuales como Visual Basic, o VB.net. También existen versiones para Linux como Gambas.

Ahora si estos lenguajes te parecen un juego de niños, y te sientes capaz, puedes adentrarte con C++, Java, Ruby o Golang.

Si quieres aprender como niño o eres un niño

Hay lenguajes de programación que pueden aprender hasta los niños( o «los que tienen alma de niño»). Entre ellos están:

  • Scratch
  • Google Blockly
  • Tynker
  • Small Basic
  • PSeInt

Estos lenguajes son todos muy fáciles de aprender y hasta entretenidos. La mayoría de ellos tienen una interfaz visual muy llamativa y colorida para niños y muy apropiada para crear juegos.

Excepto por PSeInt, todos los lenguajes listados tienen una interfaz que permite crear programas a modo de bloques, que añade un componente visual muy útil cuando se está empezando.

PSeInt tiene, además, la ventaja de estar en español así que resulta una buena opción para empezar.

Si los niños son un poco mayores (Como 40 años o más) se pueden adentrar también en Python, Basic o C. En general, no hay límites a lo que los niños pueden aprender.

Si quieres aprender a programar aplicaciones de escritorio

El desarrollo de aplicaciones para escritorio es un arte que está en declive pero que aún sobrevivirá por mucho tiempo, Hay todavía muchas aplicaciones que por tema de seguridad, conectividad, control o velocidad, conviene mantener todavía en el escritorio. Si este es tu objetivo, aquí hay un grupo de lenguajes que conviene aprender:

  • C++
  • C#
  • Visual Basic
  • Delphi/ Object Pascal
  • Java

Todos esto lenguajes, incluyen entornos de desarrollo rápido (RAD) para entornos con GUI gráfica. También podemos incluir al mismo C, Python, Go, Ruby, pero son más apropiados para aplicaciones de consola que de tipo GUI.

C++, es probablemente el más desarrollado, y el del ejecutable más eficiente, pero el desarrollo puede ser penoso. Visual Basic es el más fácil de aprender y manejar. Pero actualmente solo sobrevive su versión .Net. Object Pascal combina la facilidad del Visual Basic y la eficiencia del C++, pero no es muy difundido.

Si tu objetivo es aprender a programar para convertirte en desarrollador Web

El desarrollo web es una de los campos del desarrollo de software que requiere un conocimiento mayor de lenguajes, pero es también el que tiene más futuro.

Entre los lenguajes que se debe aprender están:

  • Javascript.
  • PHP.
  • Java
  • Python
  • TypeScript
  • HTML y CSS (No son lenguajes de programación)

En el mundo Web, es casi obligatorio tener un buen dominio de HTML y CSS, además de JavaScript. Sin embargo, como el desarrollo Web es tan amplio; existen especialidades, como el «Back end» o el «Front end». Y cada una de estas especialidades requiere el conocimiento de unos lenguajes particulares y también el manejo de bases de datos (Back-end), diversos preprocesadores, librerías, frameworks o «plugins».

Se puede decir que el mundo del desarrollo Web no es solo programación, sino que es un campo bastante amplio, que requiere diversas aptitudes y conocimientos.

Si quieres aprender a programar para dispositivos móviles

El desarrollo de aplicaciones para dispositivos móviles está teniendo mucha demanda actualmente. Y si quieres tener futuro en este nicho, te recomendaría:

  • Java
  • Kotlin
  • Swift
  • Javascript

El lenguaje que ha dominado el desarrollo móvil es Java, y es bueno tener un conocimiento, aunque sea superficial, de él. En tiempos actuales, sin embargo, existen más opciones, entre las que Kotlin se perfila con un buen futuro.

Para dispositivos con sistema operativo iOS, es conveniente conocer algo de Swift u Objective-C.

Una opción al desarrollo móvil clásico (aplicaciones de escritorio) es el desarrollo Web con frameworks que pueden convertir un desarrollo Web en escritorio, así que si se opta por esta opción (que tiene sus desventajas también) nos sirven también los lenguajes de desarrollo Web.

Si quieres aprender a programar para hacer juegos

El desarrollo de juegos es también un campo bastante especializado y existe una diversidad de lenguajes que se pueden aprender para iniciar en este apasionante mundo, desde los más básicos a los más avanzados.

  • C/C++
  • C#
  • Java
  • Javascript
  • Lua

En principio, se pueden crear juegos en casi cualquier lenguaje, si solo se quiere experimentar. Los listados aquí son solo algunos de los más usados a nivel profesional. JavaScript vendría a ser el lenguaje ideal para el desarrollo de juegos para la Web.

Como los videojuegos son tan variados (de tipo «solo texto», con gráficos 2D/3D, de escritorio, móvil, o web, …) no existe un único lenguaje que se pueda aplicar a todos. Lo conveniente sería usar el(los) lenguaje(s) que se adapte mejor al tipo de juego que se piense desarrollar. Los primeros videojuegos se tuvieron que crear en ensamblador porque era lo más adecuado para la época.

La industria de videojuegos es también un campo extenso y con diversas áreas de especialización, que incluye no solo la programación sino también el diseño visual, los efectos, la historia, los personajes y la música. Además, no solo basta con saber programar sino, conocer también las librerías y recursos disponibles.

Si tu objetivo es ser un Hacker

En este caso estamos hablando de palabras serias.

En cualquier caso, no existe un programa de estudio único para convertirse en Hacker. Lo que sí queda claro es que se requiere un nivel de conocimientos muy alto, que va más allá de solo dominar un par de lenguajes de programación. Un hacker es un EXPERTO en tecnologías que no se forma en poco tiempo o con poco estudio.

Si tan solo quisiéramos hablar de lenguajes de programación en general, podríamos sugerir aprender:

  • Lenguaje ensamblador, de varias arquitecturas.
  • C
  • C++
  • C#
  • PHP
  • HTML/CSS (No son lenguajes de programación)
  • SQL (Lenguaje de consultas)
  • JavaScript
  • Python
  • Java
  • Swift

En realidad, dependiendo de hacia donde se oriente el hacker, puede especializarse en uno u otro lenguaje. Los lenguajes Web (PHP, Java, Javascript, SQL) son los favoritos de los hacker que trabajan en esa línea, mientras que los lenguaje de bajo nivel como C o ensamblador son ideales para la creación de virus o similares.

Si quieres aprender a programar para IoT o dispositivos electrónicos

El mundo de los sistemas embebidos es también un campo que esta creciendo considerablemente en los últimos años. Aquí el rey de los lenguajes es el lenguaje C, pero cada vez van apareciendo nuevas alternativas.

Entre los lenguajes recomendados para quien quera desenvolverse en esta área tenemos:

  • Ensamblador
  • C
  • C++
  • Python
  • Golang
  • Lua

El lenguaje ensamblador se usa en los dispositivos más pequeños o de recursos muy limitados, mientras que Python trabaja solo en sistemas con recursos suficientes.

Para el desarrollo en IoT es conveniente, además de saber programar, tener sólidos conocimientos de electrónica (microprocesadores, sensores, arquitectura de computadoras) y comunicaciones.

Si quieres aprender a programar para IA

Para quienes piensen aprender pensando en desarrollar aplicaciones de Inteligencia Artificial, este es un grupo de lenguajes que les vendría a bien aprender:

  • Pyhton
  • C++
  • R
  • Prolog
  • SQL (Lenguaje de consultas)

Sorprendentemente, Python es también uno de los lenguajes más fáciles de aprender, con la ventaja de que existe una gran variedad de bibliotecas ya desarrolladas para su uso con Inteligencia Artificial.

Pero, como suele pasar con las tecnologías más complejas, aparte de saber programar en algún lenguaje adecuado, hace falta también conocer de Algoritmos, Big data, Redes Neuronales, Aprendizaje Automático, Algebra Lineal, Ingeniería, Estadística, lingüística y tal vez otras disciplinas, dependiendo de hacia donde se oriente el campo de estudio de la IA, que es cada vez más amplio.

Si tu objetivo es aprender a programar para conseguir trabajo

Si tenemos en mente aprender a programar pensando en que ese será nuestro campo laboral, hay que tener en consideración que existen diversas especialidades en este campo laboral.

Para cada campo de especialización, existe un grupo de lenguajes que se adaptan mejor. Entre los campos mencionados, tenemos:

  • Desarrollo para Escritorio
  • Desarrollo Web
  • Desarrollo para Dispositivos móviles
  • Desarrollo de Videojuegos
  • Desarrollo para IoT

Para todos estos campos, ya se ha mencionado un listado de lenguajes, en las secciones anteriores.

Como consejo final, para mejorar nuestras posibilidades laborales, es altamente recomendable, además de tener los conocimientos de programación, manejar diversos gestores de bases de datos, tener un buen nivel de inglés y contar también con un buen catálogo de proyectos realizados.

Conclusión

Saber un lenguaje de programación no lo es todo para desarrollar aplicaciones, juegos o sitios web. Es necesario tener otras habilidades y conocer un número grande de librerías, entornos de trabajo y herramientas complementarias.

No existe un lenguaje de programación que sea bueno para todas las aplicaciones y todas las personas. Pero se podría mencionar un conjunto de habilidades que son de mucha ayuda, como:

  • Conocimientos de lógica y matemáticas.
  • Capacidad de abstracción.
  • Manejo del pensamiento algorítmico (Secuencia de pasos).
  • Trabajo ordenado y metódico.

Y como en toda habilidad nueva que se desea aprender, conviene tener buena actitud para el aprendizaje, constancia, tolerancia al fracaso y bastante perseverancia. No olvidar el dicho «Tarde o temprano, la disciplina vencerá a la inteligencia».


Sé el primero en comentar

Dejar una contestacion

Tu dirección de correo electrónico no será publicada.


*