¿Qué lenguaje de programación aprender?

Escribo este artículo tras una coincidencia, primero llegana mis manos los resultados de un análisis sobre una encuesta que cubre la demanda de trabajo en el sector de la programación para acto seguido, ni transcurrida media hora, ser interpelado por un amigo sobre como iniciarse en el aprendizaje de la programación enfocado desde un punto de vista laboral.

Así que vista la coincidencia me lanzo al desarrollo de este artículo que podría servir como un primer paso para aquellos que necesiten ese tipo de orientación.

Volviendo al análisis vertebrador de este artículo, se trata de una encuesta sobre tendencias en programación publicada en StackOverflow.com, siendo esta una web que habitualmente visitan y consultan una y otra vez los programadores web de todo el mundo. Así que vamos a dar un pequeño re análisis a lo publicado por StackOverflow desde un punto de vista puramente laboral. El enlace al análisis original, en inglés, os lo ubico al final del artículo.

Los programadores en el mundo

Lo primero a comentar que desde mi punto de vista hay que tener en cuenta es que el ámbito geográfico de efecto de esta web de encuestas, me refiero a StackOverflow, no está ubicado principalmente en España, ni tan siquiera en Europa.

Según se lee en el mapa que aquí al lado acompaño y que refleja la cantidad de programadores del mundo, destaca que principalmente son USA y la India donde se concentra el mayor número de programadores del planeta, al menos en la actualidad. Así que sin ser exclusivamente una encuesta focalizada en esos lugares si que tiñe sus resultados en base a lo que fundamentalmente utilizan allí, sus lenguajes de programación y herramientas.

Así que la aplicación de estos datos de la encuesta, aún resultando bastante válidos para nuestro viejo continente, ya que según la encuentas y el mapa seríamos el tercero, quizá no sea de tanta aplicación para una específica España donde tan sólo han participado un 1,7% del total de los encuestados. Lógico porque según el mismo medio nos informa que en España tenemos un reducido 1,9% de los programadores de todo el mundo. Y es que esto de la programación siempre andamos algo a la zaga, ojo… no todas las empresas, y ni mucho menos todos los programadores, pero si la inmensa mayoría de empresas que tejen nuestro entramado laboral.

Precisamente por ello, por ese escaso 1,9% este sector es un sector donde encontrar trabajo puede resultar más fácil que cualquier otro ya que el número de programadores disponibles es realmente más bajo que en otros países de tamaño y economía más o menos parecido, por ejemplo Francia es el 3,1%. Siendo los países europeos que cuentan con más programadores Reino unido y Alemania ya que cada uno atesora un 5% del total de programadores del mundo.

Fuera del viejo continente a destacar un país como la India que cuenta con el 14%, y por el otro lado destacar a China y Rusia, que serían unos buenos destinos para un programador que busque trabajo al contar tan sólo con el 3,12% y 2,08% del total de programadores del mundo respectivamente.

Front-End y Back-End

Por el tipo de programadores tenemos que de el total del 100% el 57,09% son aquellos denominados “Desarrolladores de Back-end” que crean y programan aplicaciones y webs desde dentro, es decir programan los procesos internos de cada solución, siendo tan sólo un 37,80% el de los denominados “Desarrolladores de Front-end”  los que se dedican a crear las partes externas, siendo estas partes externas las partes con las que interactúan los usuarios de esas webs y aplicaciones.

Para los más neófitos en el tema os daré un sencillo ejemplo, imagina un ascensor. El programador o desarrollador de backend es el que inventa e instala los mecanismos para que el ascensor suba, baje y se pare en cada planta, en cambio el programador de “Front-end” es el que crea diseña e integra los botones de la cabina así como cualquier pieza visible por aquellas personas que utilicen el ascensor.

Obviamente existen los que dominan ambas partes, los denominados “Full-stack” así como otras muchas clases de programadores más especializados, como los que se dedican sólo a entornos móviles y no de escritorio o los administradores de sistema que aún no siendo específicamente programadores si que deben desarrollar e integrar algo de programación para un correcto funcionamiento de los sistemas.

España y los tipos de empresas que pueden demandar programadores

Si bien los resultados de la encuesta me resultan algo dispares con lo que yo creo, y es que la localización de los programadores que han participado creo que definitivamente ha teñidos sus resultados, así que aunque me pueda equivocar creo que soy algo conocedor de primera mano de que es lo que piden y necesitan las empresas al menos las empresas de corte general y no tan sólo las específicas de desarrollo.

Es en este punto donde quiero dividir el tipo de empresas que te pueden querer ofrecer trabajo como programador y es que aunque pueda parecer que empiezo queriendo liar la cosa, es que es así, cuando uno busca trabajo de programador o orientación para ser programador a ¿qué se refiere exactamente? ¿A desarrollar una serie de habilidades para enfocarles a qué? ¿A una empresa desarrolladora de webs? o ¿A una empresa en líneas generales?

Y es que hoy son muchas, por no decir casi todas, las empresas que ya cuentan con su propia web, de entre todas estas empresas las habrá que actualicen sus webs de una forma muy periódica diaria, incluyendo por ejemplo las tiendas online que catalogan nuevos productos casi a diarios, esas empresas, que no dejan de ser empresas de comercio en general, especializadas en uno u otro sector, como por ejemplo empresas vendedoras de vino, de material deportivo, escolar o de muebles, no requieren un programador a tiempo completo muy especializado si no que requieren un tipo de puesto más dinámico, alguien que les sepa “llevar la web” entonces en esos ámbitos dudo que lo más buscado sea lo que dicen esos resultados, especialistas en UX con conocimientos en React y Angular.

La mayoría de esas empresas utilizarán webs basadas en código abierto como el famoso gestor de tiendas online PrestaShop, o Magento o el famosísimo WordPress si no se trata de una tienda puramente dicha, ahí lo que se necesita es otro tipo de conocimientos relativos a programación, y estos no son otros que CSS, HTML, PHP y MySQL lenguajes que aparecen entre los demandados por las empresas, pero curiosamente escalones más abajo que esos tan especializados.

Según la encuestas lo que resulta indispensable es el conocimiento del lenguaje JavaScript, en esto puedo estar de acuerdo, seguido de Python que ha desbancado a C# en lo que no estoy realmente de acuerdo.

Pero yendo al primer lenguaje aparentemente más demandado, me refiero al JavaScript, pienso que un entorno de empresa generalista y no especializada esto no es así pues el conocimiento de JavaScript no provee a la empresa de una solución generalmente válida o completa como si que te lo da el conocimiento por ejemplo de HML.

Si bien en el tipo de empresa “desarrolladora de webs” o “desarrolladora de apps” si que JavasScript puede ser un lenguaje vital, aunque también con ciertos matices ya que seguro que te van a solicitar dichas aptitudes acompañadas de lo que se denomina un “framework” de “marco de trabajo” más completo como puede ser Angular JS, React u otros similares además como es obvio de MySQL o MariaDB que son los lenguajes mayormente utilizados en la empresa media en lo relativo a base de datos, bases con las que como programador tendrás que lidiar una y otra vez.

Node.js es también un nicho de mercado pues con él se pueden realizar un sin fin de aplicaciones que se ejecutan a toda velocidad, es sumamente flexible y tiene un futuro más que prometedor pues es ya una herramienta demandada por empresas desarrolladoras.

Por tanto y a modo de resumen te aconsejaría que si empiezas de cero aprendieses la base útil, esto es, lenguaje HTML + CSS + PHP + MYSQL, y acto seguido o bien te lanzase a JavaScript de forma nativa o mediante un framework como Angular JS.

Resulta también obvio señalar que si te especializas mucho en un único tipo de lenguaje o framework concreto te resultará más difícil encontrar un puesto de trabajo ya que las ofertas concretas se dan siempre en menor número, un consejo, aprende a programar, intentando ver la funcionalidad, indistintamente del lenguaje, de los comandos de la gramática, aprende a visualizar el código en un lenguaje mental más natural, desde donde puedes imaginar pequeños módulos que hagan tareas específicas para después juntarlos en tu mente y afrontar grandes retos con muchas pero pequeñas soluciones que conforman entre sí un gran conjunto.

Enlace a la encuesta: https://insights.stackoverflow.com/survey/2018/