Esta es una buena pregunta para saber, a nivel laboral, qué
aprender para conseguir trabajo. Sin embargo, yo veo otras cuestión que habría
que hacerse antes de ésta. ¿A qué campo de la programación deseo dedicarme
profesionalmente? ¿Cuál es la tendencia para dicho campo?
Voy a dar mi opinión basada en la experiencia y a mi olfato
sobre éstas tres opciones que citas, pero antes vamos a ver dónde está el
mercado y hacia donde va.
Desde hace más de 10 años la web ha vivido un crecimiento
importante y desde el lanzamiento del primer iPhone se abrió un nuevo campo muy
importante también que es el desarrollo de aplicaciones móviles.
Bien, pues resulta que a día de hoy las tecnologías web han
avanzado muchísimo, no solo para el frontend de las aplicaciones web, también
en el backend. Esto último es importante porque Ryan Dahl en 2009 creó un
entorno de ejecución de JavaScript en el servidor (más concretamente, para ser
ejecutado fuera de un entorno web), que tiene una naturaleza asíncrona, cosa
importante para depende qué tareas. Esto es una revolución sin duda alguna que
ha cambiado el interés de las empresas a la hora de ver JavaScript (para bien).
Voy a citar opiniones de la respuesta de Heriberto Torrado
González con quien comparto opiniones y en otras discrepo un poco, con el
objetivo de compartir opiniones y reforzar nuestros puntos en común y hacer una
respuesta colaborativa.
Java es el “Cobol” de nuestros días
Esto es totalmente cierto y por ello hay que tenerlo muy en
cuenta como lenguaje para aprender. Se usa para muchas áreas como el desarrollo
de aplicaciones móviles para Android, servidores web, etc. La tendencia laboral
de Java creo que se mantendrá estable o puede que decaiga pero lenta y
paulatinamente por lo que tiene futuro. No es para nada negativo aprenderlo,
pero ya te digo de antemano que hay mucha competencia y eso es una cosa a tener
muy en cuenta. En mi Universidad se usa Java para casi todo, por lo que salen
muchos ingenieros que saben manejar bien este lenguaje. Depende para quien esto
es un problema. Sin embargo, suelen no estar mal pagados.
Escápate de JavaScript a no ser que seas un diseñador Web.
JavaScript es un lenguaje con muchas carencias, francamente malo y con un
ecosistema de Frameworks y Toolkits demencial.
Para nada de acuerdo. JavaScript está evolucionando
muchísimo y seguirá haciéndolo. recomiendo mirar las estadísticas de este año
en distintos rankings como los que elabora StackOverflow cada año.
JavaScript no está solo en la web, está en aplicaciones
móviles usando tecnologías como React Native, NativeScript o Ionic, que no
tienen el rendimiento de una aplicación nativa pero si que generan aplicaciones
multiplataforma, lo cual es muy importante para empresas que están emergiendo y
necesitan reducir costes y tiempo obteniendo productos de calidad. Empresas
importantes que hagan uso de React Native como Facebook (empresa creadora) usan
en producción esta tecnología. Puedes ver más en la web oficial de React
Native.
Las posibles carencias que pudiera tener JavaScript se
pueden superar haciendo uso de Babel o TypeScript que compila a JavaScript
compatible con navegadores (y versiones de Node) más obsoletos.
Tecnologías como Webassembly van a hacer que JavaScript se
utilice mucho menos en el futuro.
Puede comerse un porcentaje de uso de JavaScript pero eso no
significa que se vaya a usar mucho menos.
Si vas a trabajar en web, tanto en backend como en frontend,
y luego quieres pasarte al mundo de aplicaciones móviles reutilizando
conocimiento, mi opinión es que aprendas JavaScript y alguno de sus frameworks
como React, Express, etc. Son fáciles de aprender y tienen (y tendrán) una
fuerte demanda y en crecimiento.
Vete a por Python. Es un lenguaje elegante, sencillo y
divertido.
Eso es muy cierto. Yo como programador que uso Python casi a
diario te puedo decir que estoy contento con éste y es ideal si estás
aprendiendo a programar. No genera frustración para el programador novato y eso
es fundamental para empezar.
Python es muy versátil
Opino lo mismo. Te vale para hacer muchísimas cosas y tiene
una cantidad de librerías y frameworks con una calidad muy buena. Entre ellas
las que cita (Django, Flask, Scrapy, NLTK, Numpy, etc.). Con Python puedes
hacer muchas cosas tanto para web como para inteligencia artificial.
Una vez que domines bien Python aprende lenguaje C. El C es
la base de todos los lenguajes modernos y te permitirá escribir tus propias
librerías para Python y además te hará comprender como funciona un ordenador
por dentro.
Además añado que es mucho más fácil integrar C con Python
para escribir librerías que en otros lenguajes como PHP.
En definitiva. Te recomiendo las tres y en especial
JavaScript. Tienen un gran futuro para los próximos años y te recomiendo que
elijas cualquiera de esos tres lenguajes. Si decides aprender todos
¡fantástico! más oportunidades laborales tendrás. Pero dominar la sintaxis de
Java, JavaScript y Python es sencillo y lo veo muy sobrevalorado (saber la
sintaxis de un lenguaje), pues puedes aprender todos los lenguajes que quieras
pero si no sabes resolver problemas (que al final de esto es lo que se trata)
correctamente y de forma elegante serás un programador más.
Termino con una analogía: puedes ser un escritor que sepa
escribir en inglés, chino mandarín y español pero si no tienes creatividad y
lógica, un buen vocabulario, técnicas de expresión y narración no vas a vender
muchos libros, por mucha demanda que haya para esos idiomas.
Siro
Díaz Palazón
Licenciatura Ingeniería informática