El éxito no es un accidente. Es trabajo duro, perseverancia, aprendizaje, estudio, sacrificio y lo más importante de todo, amor por lo que estás haciendo o aprendiendo a hacer.

Edson Arantes do Nascimento (Pelé) (n. 1940). Jugador de fútbol brasileño, considerado como el mejor jugador de fútbol de todos los tiempos.

Previo al estudio de salarios de TI para 2017, hay un gráfico muy relevante acerca del mismo tema, que vale la pena presentar aquí. Dicho gráfico nos muestra la oferta y demanda de tecnologías, herramientas y lenguajes en el mercado norteamericano. Por obvias razones, no encaja al 100% con nuestra propia realidad, pero nos dará una buena idea de cuáles son algunas de las habilidades y conocimientos más buscados por las áreas de TI hoy en día: gracias a ciertas tecnologías emergentes y nuevos nichos de mercado, nuestros trabajos requieren que aprendamos nuevos lenguajes, o en su defecto, nuevas herramientas que funcionan con tecnología preexistente para resolver las necesidades de nuestros clientes.

A partir de los CVs de dos millones de candidatos y 80,000 ofertas de trabajo publicadas en el portal de búsqueda de empleo Dice, este gráfico interactivo despliega la oferta y demanda de más de 1,400 habilidades; desde las más ofertadas hasta las más demandadas, lo que se traduce directamente en el salario ofertado. La mejor manera de ver el gráfico es mediante la selección de la opción “Beeswarm Plot”, que produce una figura en forma de panel de abejas. En la parte inferior, en azul, podemos encontrar las habilidades de menor demanda, como saber manejar Adobe Dreamweaver. En la parte superior, en rojo, están los conocimientos más demandados, como gestión del talento.

Pic: Skills Heat Graph ~ Dice

Los principales proveedores tecnológicos, empresas de industrias “tradicionales” y hasta startups que apenas se han consolidado, están trabajando en algunas o todas las tecnologías del futuro: inteligencia artificial, realidad aumentada, realidad virtual, robótica y drones, hogares inteligentes, vehículos autónomos y wearables. Esto por supuesto, sin dejar de lado áreas servidas por IT que tampoco han dejado de ser importantes: banca, e-commerce o telco. Esta evolución tecnológica tiene como resultado diferentes skills que el personal IT debe poseer para ser efectivo. En la imagen, la oferta y demanda de habilidades técnicas, para el mercado norteamericano.

(Fuente: Dice)

Como puede apreciarse en el gráfico, un diploma en ciencias de las computadoras es la habilidad más significativa a la hora de buscar un trabajo; por el contrario, incluir Microsoft Front Page en nuestro currículum es sinónimo de escasez de oportunidades y un bajo sueldo: por ello la importancia de contar con un CV cuyo contenido gire en torno a ciertas palabras clave como Alta Disponibilidad, SDLC o Ruby on Rails.

Habilidades de mayor demanda

Si en el gráfico seleccionamos la opción “Split demand/supply”, podremos ver la proporción de oferta contra demanda de estas habilidades. Así, dependiendo de nuestro rol, algunas de las siguientes son palabras clave que debemos incluir obligatoriamente en nuestros respectivos CVs, debido a una fuerte demanda, pero escasa oferta:

• A+. Otorgada por CompTIA (Computing Technology Industry Association), ésta es una certificación para los técnicos en instalación y servicio de sistemas compatibles con IBM. El examen cubre la instalación, mantenimiento, personalización y correcto funcionamiento de computadoras personales. Cada vez más, las posiciones de help desk, así como centros de servicio autorizados, están requiriendo una certificación A+ o experiencia similar como requisito para la contratación.

• Agile. La idea central detrás de Agile es conseguir que los desarrolladores piensen en el software no como algo diseñado o construido, sino como algo que crece y se transforma constantemente; Agile no elimina la necesidad de planificar, analizar o diseñar: el enfoque sólo consiste en lograr que los equipos de desarrollo basen todas sus decisiones en evidencias del mundo real y retroalimentación del cliente. Agile puede tomar tiempo para ser implementado correctamente, pero al entender los retos y poseer la mentalidad correcta, es posible aumentar las probabilidades de terminar exitosamente cualquier proyecto.

• Cloud. Ahora que el cloud computing se ha convertido en un estándar de facto para la operación de una gran variedad de organizaciones, la importancia de soportar aplicaciones en la nube está provocando la demanda de nuevas habilidades para los profesionales de TI. Experiencia comprobable en servicios específicos de proveedores, contenedores y “aprendizaje de máquinas” (machine learning) son las palabras clave en el CV de un ingeniero en la nube. Finalmente, cualquier referencia a la nube debería estar acompañada de otras palabras asociadas a ésta, como Microsoft Azure, Rackspace o Infrastructure As A Service (IaaS).

• Java. ¿Acaso Java está muriendo como lenguaje de programación? La respuesta es NO: mientras que los nuevos lenguajes siguen acaparando todos los titulares, TIOBE clasifica a Java como el lenguaje de mayor uso durante los últimos años. Adicionalmente, el índice PYPL, que clasifica a los lenguajes según la frecuencia con la que se buscan sus tutoriales en Google, muestra claramente a Java a la cabeza, con 22.7% del volumen total de búsquedas. Java podrá tener sus detractores, y algunos de sus argumentos son bastante válidos, pero también tiene sus beneficios, como excelentes herramientas para su despliegue, capacidad de perfilar y optimizar la JVM, o una vasta biblioteca de frameworks.

• JavaScript. Habiéndose iniciado como un humilde código que se ejecuta del lado del cliente, JavaScript se ha transformado en un lenguaje serio durante los últimos años; ahora es tanto una plataforma para el código del servidor, así como una plataforma para ejecutar otros lenguajes. Por ejemplo, CoffeeScript o ClojureScript permiten compilar otros lenguajes en la máquina virtual del lado del servidor. Además, el principal impulsor para otras tecnologías exitosas como Node.js ha sido el hecho de que JavaScript ofrece la posibilidad de tener el mismo lenguaje en el front-end, así como en los sistemas back-end.

• Liderazgo. Para asegurar el éxito de cualquier proyecto, es necesario contar con un buen líder. Éste debe ser un programador senior que cuente con varios años de experiencia en su haber, y que pueda coordinarse con los diferentes stakeholders para proteger al equipo de distracciones innecesarias, así como ayudar a remover problemas que bloqueen el trabajo. Finalmente, él o ella debe ser una persona creativa que pueda entrenar, motivar y a veces hasta reprimir a los demás integrantes para maximizar la efectividad del equipo.

• Linux. Claramente, Linux y sus diferentes distribuciones (RedHat, CentOS o Android) es el campeón de los sistemas operativos en el mundo móvil y de servidores. No tanto en ambientes de escritorio, debido principalmente a que su interfaz gráfica es poco user-friendly. Sin embargo, su versatilidad, omnipresencia y enorme comunidad garantizan que este sistema operativo seguirá siendo uno de los más populares en las décadas por venir.

• RESTful. REST define un conjunto de principios mediante los cuales se diseñan servicios Web que se centran en los recursos de un sistema. Cada URL en el servidor representa un recurso; ya sea una colección o un elemento; diferentes métodos HTTP (POST, GET) se utilizan para diferentes operaciones CRUD. Finalmente, el estado no se almacena en el servidor; éste se encuentra en las representaciones enviadas de ida y vuelta por las peticiones del cliente y las respuestas del servidor. Aunque suena más confuso de lo que realmente es, la programación orientada a REST (o RESTful programming) permite construir los bloques mediante los cuales se puede obtener funcionalidad más compleja, como microservicios o multitenancy.

• SQL. Aunque no es tan glamoroso como otras entradas de esta lista, se espera que SQL dure otros 20 o 30 años como el principal lenguaje usado para explotar bases de datos. En realidad, no existe otra tecnología que pueda tomar su lugar: nadie toma en serio a NoSQL en los entornos transaccionales, y aunque hay muchos lenguajes y herramientas que han aparecido en el análisis de datos y
BI
, ninguno de ellos va a reemplazar completamente a SQL; de hecho, en su mayoría, lo complementan.

• Verificación y Validación. Esta es una ardua tarea cuyo objetivo consiste en comprobar que un sistema cumple con las especificaciones y propósito definidos durante el ciclo de desarrollo de software. Usualmente es responsabilidad de los testers realizar esta labor, y en entornos maduros como CMMI, implica no sólo “probar y anotar los defectos resultantes”, sino que también se debe documentar la causa raíz así como alternativas para su solución.

Conclusiones

El futuro de la programación es cada vez más difícil de predecir. Pero hay cosas que se pueden extraer del panorama tecnológico actual, tales como el creciente dolor de cabeza que representa la seguridad – ejemplificado hace un par de semanas con el gusano/ransomware WannaCry – haciendo de las certificaciones de seguridad uno de los logros más rentables actualmente; nuevas maneras de gestionar el desarrollo de software, como Disciplined Agile Delivery (DAD, por sus siglas en Inglés) y el Scaled Agile Framework (SAFe), serán cada vez más adoptadas a medida que esta disciplina se generalice entre nuestras organizaciones; finalmente, en la medida que nuestras economías nacionales continúen con su actual crecimiento, la nube y Big Data se convertirán en tecnologías omnipresentes. Y si podemos alcanzar un buen ingreso y buenos prospectos de crecimiento laboral al conocer estas herramientas, mucho mejor.

Anuncios