Que lenguaje de programación aprender primero

No te pongas tan rojo hombre
Si andas con prisa, tienes la conclusión al final del artículo.

Uno de los dilemas más extendidos cuando uno quiere aprender a programar es elegir el lenguaje apropiado para ello.

Buscamos en internet pero cada recurso (incluido este en el que te encuentras) te dice cosas diferentes.

El lenguaje con el que comiences puede ser decisivo pues si tiene una curva de aprendizaje más alta que el resto puede llevarte a frustración y desesperación, pero tampoco quieres aprender un lenguaje que no vayas a usar en el futuro, puesto que, si estas aprendiendo a programar es para a la larga hacer programas.

Es por esto que prima encontrar un lenguaje amigable con un desarrollador en ciernes pero que a la vez te permita escribir aplicaciones y verlas funcionar.

Es aquí cuando comienzas la búsqueda y encuentras cientos de sitios que se contradicen unos con otros, las lineas que vienen a continuación son una opinión personal y por lo tanto no sientan cátedra, podría aderezar mis deducciones con datos objetivos pero prefiero que hagas las búsquedas si lo ves necesario, por ti mismo.

Veamos características de los lenguajes más comunes que se suelen recomendar para programar:

  • Python:

Python es un gran lenguaje con el que empezar, su sintaxis elegante te ayudará a ser un buen programador de hecho se utiliza para enseñar a programar en algunas universidades.

Tiene una gran comunidad, cantidad de tutoriales y un sin fin de librerías.

Si planeas dedicarte a la inteligencia artificial o al big data sin duda es el candidato.

Puede que en tu búsqueda hayas encontrado que Python no es un lenguaje excesivamente rápido o escalable, pero simplemente con saber que youtube en gran medida está escrito en python te puede dar una idea de su poder.

Como contra te diré, que no vas a tener resultados “bonitos” rápidamente, te costará crear una interfaz gráfica para tu programa, pero si eso no es un impedimento para ti y lo que más te motiva es solucionar algoritmos y almacenarlos en un fichero para ser utilizados luego por otros. Python debería ser tu elección.

Python puede ser usado tanto para realizar programación web como aplicaciones de escritorio.

  • Javascript

Javascript o como reza Carlos Azaustre “Un lenguaje para dominarlos a todos”.

Para mi gusto Javascript es el lenguaje que mejor resultado te va a dar a corto plazo, combinado con <html> y css podrás crear páginas web en días, y aplicaciones web sencillas en semanas. (Dedicándole tiempo cada día)

Esto lo hace un gran candidato para aprender a programar pues la motivación se mantiene alta.

No precisa de instalación, solo un editor de texto y un navegador web.

Desde que Nodejs existe, además puedes utilizar Javascript no solo para hacer webs dinámicas sino para escribir la parte del back-end, la lógica de programación que el usuario no puede/debe ver, hablar con una base de datos y en definitiva hacer que la magia ocurra.

Además con Javascript, puedes escribir código no solo para web, sino para dispositivos móviles y aplicaciones de escritorio, usando ciertos programas que lo “convierten”.

Pero no todo es miel sobre hojuelas , Javascript tiene el peligro de no forzarte a escribir un código bien estructurado, indentado y legible, por lo que las prisas porque tu programa funcione puede acabar con lo que se conoce como “Spaghetti code”, un código ininteligible e insostenible a la larga.

Además Javascript es un lenguaje asíncrono, concepto que te conviene asimilar bien y aprender a trabajar con el, puesto que es lo que le da la “magia” al lenguaje.

En definitiva si quieres ver un resultado rápido y empezar a hacer cosas cuanto antes, Javascript es tu lenguaje. Simplemente ten cuidado de comprender bien el concepto de asincronía e intenta tener un código limpio y debidamente indentado (los editores de texto como Sublime text o Atom pueden ayudarte enormemente con esta tarea).

  • PHP

El clásico lenguaje de la web, cuando javascript todavía no había pegado el subidón actual PHP se encargaba de hacer las páginas web dinámicas.

Un gran porcentaje de la web está escrito en PHP, por no hablar que Wordpress está escrito en este lenguaje.

Necesitaras un servidor apache (lo puedes instalar en tu máquina), PHP “mezcla” el concepto de back-end y front-end, pues cuando fue pensado estos dos conceptos eran uno.

Toda la información se “renderiza” desde el back-end mostrándose al usuario.

Desconozco si existe la posibilidad de portabilizar una aplicación hecha en php a escritorio o móvil, si existe no se debe usar mucho, pues no he encontrado demasiada información al respecto.

No recomiendo PHP, porque es un código metido dentro de un html, y lo vuelve todo un poco turbio, además tiene la desventaja al igual que javascript de no obligarte a escribir un código legible con lo que puedes acabar también con un “Spaghetti code”.

En definitiva no tiene tantos pros como su primo Javascript.

No obstante, páginas como Facebook aún lo usan y hay bastante trabajo con PHP o Wordpress. (si tu objetivo es encontrar trabajo…)

  • Más lenguajes:

Existen una gran cantidad de lenguajes en los que no voy a entrar puesto que tienen una curva de aprendizaje bastante mayor que los ya mencionados.

Mención especial a Java lenguaje nativo para escribir aplicaciones móviles, aunque también sirve en escritorio y en web.

Ruby y Ruby on rails (framework) famoso por poder crear prototipos en mucho menos tiempo que con otros lenguajes, creo en mi humilde opinión que hace demasiado por el desarrollador no dejando que este aprenda los entresijos de la programación.

Conclusión:

Aunque peque de excesivamente subjetivo, mi recomendación es Javascript.

  • Pensado para la web.
  • Funciona perfecto para el front.
  • Funciona muy bien para el back.
  • Puedes crear aplicaciones de escritorio.
  • Puedes crear aplicaciones móviles.
  • Es altamente escalable.
  • La asincronía una vez comprendida no es para tanto.
  • Si no andas con ojo, toca comer “Spaghetti”.

#SPOILER

Junto con el gran equipo de Open Source Weekends (El mejor lugar para aprender contribuyendo con la comunidad haciendo proyectos)

Estamos creando un lenguaje de Pseudo-codigo al que hemos bautizado como “gingercode”.

Pretende ser un lenguaje que enseñe la sintaxis más habitual de los lenguajes de programación de una forma mucho más cercana al lenguaje natural que hablamos.

Además estamos en proceso de crear con este lenguaje un “curso” para que la barrera de entrada en el mundo de la programación sea mucho más liviana e introduciros poco a poco a lenguajes más utilizados.

Por supuesto, todo el código estará disponible en github y para nosotros el mejor pago que existe es introducir al maravilloso mundo de la programación a cuanta más gente mejor, ayudando a entender las tareas más comunes que se realizan en el día a día del desarrollo.

Próximamente:

https://github.com/OSWeekends/GingerCode