¿Cuál es el futuro de la ingeniería de software?

Permítanme empezar diciendo que no puedo saber cuál será el futuro. Pero, como director general de una red de desarrolladores de software, parte de mi trabajo consiste en identificar las tendencias crecientes del sector. Entonces puedo asegurarme de que tenemos las habilidades en nuestra red de desarrolladores para mantener el ritmo de la demanda. En otras palabras: ¡Pienso mucho en este tipo de cosas!

Así que me siento capacitado para hablar de las habilidades que deberías aprender para tener una carrera a prueba de futuro en la ingeniería de software.

Antes de ver estas tendencias, déjame cubrir rápidamente los principales lenguajes que aparecerán a lo largo de esta respuesta. Si bien hay un flujo y reflujo natural de los lenguajes (algunos se desvanecerán y otros aparecerán). Entender lo que está en tendencia es clave si quieres pensar a largo plazo.

Las habilidades más antiguas, como HTML y CSS, no van a desaparecer pronto, pero se están convirtiendo en productos básicos. Hay muchos desarrolladores por ahí que pueden hacer un buen trabajo escribiendo HTML. Así que, aunque hay pocas posibilidades de que desaparezca de la noche a la mañana, la competencia ha hecho bajar los precios.

En Scalable Path, trabajamos con miles de desarrolladores, y los puestos más difíciles de cubrir son a menudo para las tecnologías nuevas y de tendencia porque a menudo hay pocas personas con estas habilidades y aún menos que puedan demostrar que tienen experiencia comercial en ellas. Así que es esta escasez la que hace subir el precio de estas habilidades.

Siempre estamos contratando desarrolladores con conocimientos de este lenguaje. Creo que su cuota de mercado aumentará sin duda en la próxima media década. Hay tanto impulso aquí que incluso si la marea cambia, los sistemas heredados significan que JavaScript seguirá siendo dominante en cinco años.

Los frameworks basados en JavaScript también son, lógicamente, muy populares. Tener experiencia en uno de ellos podría duplicar tu tarifa por hora. Sin embargo, a muchos desarrolladores les preocupa dedicar tiempo a aprender un nuevo framework en caso de que no sea ampliamente adoptado comercialmente. Aunque existe un riesgo en este caso -Ember, por ejemplo, parece haber caído en desgracia-, tu tiempo no es ni mucho menos una pérdida de tiempo. Los frameworks tienden a evolucionar de forma iterativa y aprender uno nuevo no es un compromiso drástico.

Python es definitivamente una tendencia al alza y lo ha sido durante años. Es un lenguaje popular para el aprendizaje automático, la IA y el IoT. Tomó el relevo de R como lenguaje principal para la investigación científica hace unos años y ha ido a más. Debido a su flexibilidad y velocidad, espero que se convierta en uno de los lenguajes de mayor crecimiento en los próximos años. Una de las áreas en las que se está utilizando Python es el Internet de las cosas. Así que vamos a echar un vistazo rápido a eso.

Ser fluido en Python y JavaScript te preparará para casi todas las tendencias que discuto a continuación. Pero cuando haya otro lenguaje necesario lo mencionaré.

Veamos algunas de las tendencias que serán impulsadas por los ingenieros de software:

Inteligencia artificial: La IA se está convirtiendo en un término comodín (del mismo modo que lo ha sido "algoritmo" durante los últimos años), pero el uso excesivo (y a menudo inexacto) del término no significa que su impacto no sea real. También englobo el aprendizaje automático bajo este epígrafe, ya que no es más que una forma de lograr la IA.

La Inteligencia Artificial seguirá introduciéndose a cuentagotas en todo lo que hacemos. Un área que me fascina es cómo es probable que llegue a ser lo suficientemente buena como para que usted sea capaz de "hablar" de una idea de diseño vagamente definida a una herramienta de interfaz de usuario, y generará las pantallas diseñadas simuladas a partir de esas solicitudes.

Lo que debe aprender para desarrollar la IA:

  • Python
  • R
  • Prolog
  • Java/ul>

Realidad Aumentada: Hablando del espacio UX/UI, esto ha sido realmente estático durante mucho tiempo. En realidad, desde la revolución de las pantallas táctiles. El futuro próximo debería ser fascinante para los diseñadores de interfaces de usuario, ya que la RA está pasando con éxito de la ciencia ficción a la realidad. Esto está ocurriendo en parte porque los costes están bajando. Lo que generalmente es una señal de que estamos cerca de la adopción generalizada. Es probable que los móviles adopten cada vez más la RA, ya que ambas cosas encajan de forma natural. Por eso veo que la RA se está haciendo más popular que la RV (véase la siguiente sección): los usuarios finales no necesitan nueva tecnología. Eso y que tanto Apple como Google han lanzado su propio desarrollador de RA.

Lo que deberías aprender para desarrollar RA:

  • Marco de trabajo ARCore con Java
  • Marco de trabajo ARKit con Swift u Objective-C

RV: Aunque todavía no estamos viendo muchos proyectos de RV, es, sin duda, un área fascinante. Si se pone de moda entre el público en general, esta tecnología podría impulsar algunos cambios muy innovadores en nuestra vida cotidiana. Predecir estos cambios es difícil, por supuesto. Al igual que la RA, no podemos imaginar a dónde nos llevará, ni sabemos si madurará o cómo lo hará. Lo que sí sabemos es que empezará por los auriculares. Los auriculares, ahora más ligeros y de menor coste (menos de 200 dólares), están a punto de convertirse en la corriente principal. Suponiendo que no corran la misma suerte que las Google Glass, puede que estemos a pocos años de que se produzcan cambios sociales similares a los que trajo el iPhone/la tienda de aplicaciones.

Lo que debes aprender para desarrollar RV:

  • JavaScript
  • Java
  • C++
  • C#

El IoT apenas está empezando a entrar en el lenguaje común. Su objetivo es crear una red de dispositivos conectados, desde llaveros hasta electrodomésticos, que recojan y analicen datos para que se comporten de forma más inteligente. Nest es un ejemplo común de dispositivo IoT. El despliegue ha sido más lento de lo esperado debido a los problemas de comercialización de los datos de la IO. Pero a medida que se vayan superando estos obstáculos, espero ver cómo se utiliza la tecnología de muchas maneras similares a las de Jetsons. For example:

  • Doors that recognize you and unock
  • Fridges that order your favorite food before you run out, or encourage you to eat healthier.
  • Gardens that water themselves
  • Devices that won’t let you forget them

The 1st gen devices like Alexa are going to evolve and become ubiquitous. But they will certainly extend beyond the home into:

  • Cars
  • Cities and Public Spaces
  • Healthcare

It’s definitely a growing sector. We don’t see many IoT projects yet. I think this is because a lot of it is sitting within Google and Amazon and there is little startup work out there.

What you should learn to develop AoT:

  • Python
  • JavaScript

Blockchain: Whether or not you buy into the long-term blockchain and crypto space, there is no denying it is a huge and growing sector. You just need to look at the $100 million VC’s just pumped into CoinBase to know there are a lot more developer roles in this area. Este es, sin duda, el espacio de más rápido crecimiento para nosotros.

Lo que deberías aprender para desarrollar en la Blockchain:

  • Python
  • C++
  • JavaScript
  • Solidity

Sin embargo, no todos los cambios serán tan visibles como la RA y la RV. Gran parte de la "magia" ocurrirá entre bastidores.

Big Data: No todo es Python y JavaScript. Otra escasez de habilidades radica en los desarrolladores de Hadoop. De nuevo, esto se debe al rápido aumento de su demanda. Lo que a su vez indica que jugará un gran papel en los próximos años. Está estrechamente relacionado con el aumento de las tendencias de análisis de big data. Las empresas querrán analizar más y más rápido. Así que estas tendencias seguirán creciendo, ya que prácticamente todo lo que estoy comentando en esta respuesta trata de recopilar y analizar datos para vender mejor sus bienes y servicios.

Desarrolladores cuánticos: Si bien es fascinante, el desarrollo en el mundo de la computación cuántica es poco probable que resulte en muchos roles para los "desarrolladores de algoritmos cuánticos" en el corto plazo. Dicho esto, tanto Google como IBM creen que alcanzarán el hito de la "supremacía cuántica" este año. Esto es cuando un ordenador cuántico procesa un algoritmo que un ordenador tradicional no podría en el transcurso de una vida humana. El tiempo que se tardará en salvar la brecha entre ese logro y la corrección total de errores es todavía muy incierto.

Esperemos que esta respuesta le ayude a ver las tendencias en la ingeniería de software, que es una gran guía para seguir el cambio evolutivo en la industria.