Las 10 habilidades más importantes para los programadores del futuro

    Es importante asegurarse que nos estamos beneficiando lo más posible cuando invertimos tiempo y esfuerzo en capacitarnos y aprender cosas nuevas. En la siguiente lista veremos las 10 habilidades que deberíamos aprender para que nuestro currículum sea relevante por los siguientes 5 años. Esta lista no es completa ni cubre algunos nichos de mercado (como ser los mainframes). Sin embargo, si aprendés al menos siete elementos de esta lista no te vas a equivocar. 1. Uno de los "3 Grandes" (Java, .NET, PHP) A menos que ocurra algún cambio radical en el mundo del desarrollo (como ser un asteroide que caiga sobre Redmond), la mayoría de los desarrolladores van a necesitar conocer alguno de los Tres Grandes sistemas de desarrollo: Java , .NET (VB.NET o C#), o PHP. Y tampoco alcanza con conocer al lenguaje principal. A medida que los proyectos crecen y van acaparando más funcionalidad, vamos a necesitar conocer los frameworks y librerías asociadas con profundidad.

    2. Aplicaciones Ricas de Internet (RIA - Rich Internet Applications) Lo pueden amar u odiar, pero en los últimos años Flash se está usando para algo más que animaciones graciosas. Flash también obtuvo funcionalidad adicional en la forma de Flex y AIR. Los competidores de Flash, como JavaFX y Silverlight, también están mejorando en caracerísticas y performance. Los navegadores están mejorando sus motores JavaScript, el cual se perfila como una plataforma de aplicaciones web. Para hacer las cosas más complicadas, HTML 5 va a incorporar montón de funcionalidad RIA, incluyendo conexión a la base de datos, poniendo así el sello formal de la W3C a AJAX. En el futuro cercano, tener experiencia en RIA va a ser un factor determinante en nuestro currículum.

    3. Desarrollo web
    El desarrollo web no va a desaparecer en el futuro. Muchos desarrolladores hasta ahora estuvieron felices ignorando la web, o sólo quedándose con "lo básico" que les brindaba su framework. Pero las empresas están demandando más y más a quienes realmente conocen cómo trabajar con las tecnologías subyacentes. Así que deberemos mejorar nuestros conocimientos de JavaScript, CSS y HTML para tener éxito en los próximos cinco años.

    4. Servicios web
    ¿REST o SOAP? ¿JSON o XML? Aunque las elecciones y las respuestas dependen del proyecto, cada vez es más dificil ser un desarrollador sin tener que consumir Servicios Web (incluso aunque nuestro desarrollo no sea una aplicación Web). Incluso las área que solían ser terreno de ODBC, COM o RPC ahora están avanzando hacia Servicios Web de algún tipo. Los desarrolladores que no puedan trabajar con Servicios Web van a terminar relegados a tareas de mantenimiento en código legacy.

    5. Habilidades humanas
    Hay una tendencia que viene ocurriendo hace ya un tiempo: la creciente visibilidad de IT dentro y fuera de la organización. Los desarrolladores están participando más y más de reuniones que no son de desarrollo y de procesos para obtener feedback de ellos. Por ejemplo, el CFO no puede cambiar las reglas de contabilidad sin trabajar junto a IT para actualizar el sistema. Y un gerente de operaciones no puede cambiar el proceso de los call caenter sin que IT actualice el workflow del CRM. De la misma forma, los clientes a menudo necesitan trabajar directamente con los equipos de desarrollo para asegurarse que se cumplan sus necesidades. ¿Va a ser necesario que todos los desarrolladores estudien Cómo hacer amigos e influenciar personas? No. Pero los desarrolladores que lo logren van a ser mucho más valiosos para sus empleadores - y serán muy buscados en el mercado.

    6. Un lenguaje de programación dinámico y/o funcional
    Los lenguajes como Ruby, Python, F# y Groovy todavía no son muy populares - pero si lo son las ideas detrás de ellos. Por ejemplo, el sistema LINQ en .NET es un descendiente directo de las técnicas de programación funcional. Tanto Ruby como Python son cada vez más populares en algunos sectores, gracias al framework Rails y Silverlight respectivamente. Aprender uno de estos lenguajes no sólo va a mejorar nuestro currículum, sino también que va a expandir nuestro horizonte. Todos los grandes desarrolladores recomiendan aprender al menos un lenguajes dinámico o funcional para lograr aprender nuevos formas de pensar.

    7. Metodologías ágiles
    A medida que pasa el tiempo, las ideas detras de Ágil se vuelven más definidas y mejor expresadas. Muchas organizaciones están adoptando Ágil o haciendo pruebas de concepto con Ágil. Aunque Ágil no es la bala de plata para evitar fracasar en un proyecto, definitivamente tiene su lugar en muchos proyectos. Los desarrolladores que tengan experiencia en trabajar y comprender los ambientes Ágiles van a ser cada vez más demandados en los próximos cinco años.

    8. Conocimiento de dominio
    De la mano con las metodologías ágiles, los equipos de desarrollo son cada vez más vistos socios en la definición de proyectos. Esto significa que los desarrolladores que comprendan el problema del dominio van a poder contribuir al proyecto de una forma muy visible y valiosa. Con Ágil, un desarrollador puede decir "Desde aquí, podemos agregar esta funcionalidad muy facilmente, y obtendremos mucho valor", o "Hey, este requerimiento no está acorde al patrón de uso que muestran los logs". Por más que muchos desarrolladores resistan la idea de conocer nada sobre el problema de dominio, no puede negarse que cada vez más organizaciones prefieren (si no incluso requieren) a desarrolladores que al menos comprendan lo básico sobre el negocio.

    9. "Higiene" de desarrollo
    Hasta hace pocos años atras, muchas (si no todas) las organizaciones no tenían acceso a sistemas de bug tracking, control de versiones y otras herramientas; todo se resumia a los desarrolladores y su IDE preferido. Pero gracias a la creación de nuevos entornos integrados de desarrollo y la explosión de entornos de software libre de alta calidad, ya casi no existen organizaciones sin estas herramientas. Los desarrolladores tienen que conocer mucho más que sólo hacer un checkout del código. Necesitan tener un hábito riguroso de higiene para asegurarse que están correctamente coordinados con el equipo. Los "programadores solitarios" que guardan todo local, que no documentan los cambios y demás, no van a ser bienvenidos en las organizaciones tradicionales, y van a a quedar directamente fuera de lugar en los entornos Ágiles, en donde se utiliza una coordinación fuerte entre los equipos para operar.

    10. Desarrollo móvil
    Durante los fines de 1990 el desarrollo web creció y ganó adopción general, para así comenzar a desplazar a las aplicaciones tradicionales de escritorio. En 2008, el desarrollo para dispositivos móviles despegó finalmente, y en los próximos cinco años va a crecer de forma constante. Por supuesto, existen varios enfoques al desarrollo móvil: aplicaciones web diseñadas para funcionar en dispositivos móviles, RIAs apuntadas a este mercado, y aplicaciones que se ejecutan directamente en los dispositivos. Sin importar qué camino elijamos, nos va a servir agregar el desarrollo móvil a nuestro grupo de habilidades.

    Fuente: DosIdeas

    Noticias Linux y más

    ¿Cuál será el futuro de Java respecto a Python?

    Java versus pythonJava y Python han dominado el mundo de la programación durante décadas, cada uno con sus propias fortalezas y debilidades. Java, conocido por su robustez y fiabilidad en sistemas empresariales, contrasta con la versatilidad y simplicidad de Python, que lo ha llevado a ser el favorito en campos emergentes como la inteligencia artificial y el aprendizaje automático. Pero ¿cuál será su futuro?

    Leer más...

    ¿Por qué KDE Plasma sigue liderando como la mejor opción de escritorio para Linux?

    KDE Plasma el mejor escritorio para LinuxEn el competitivo mundo de los entornos de escritorio para Linux, KDE Plasma ha mantenido su liderazgo como una de las opciones más completas, personalizables y eficientes. Este entorno, conocido por su equilibrio entre funcionalidad avanzada y rendimiento, sigue siendo una elección destacada tanto para usuarios avanzados como para principiantes.

    Leer más...

    Wine 10: Novedades principales y mejoras para compatibilidad con software de Windows

    Disponible wine 10Descubre las principales características de Wine 10, la última versión de este popular software de código abierto, diseñado para permitir que aplicaciones y juegos de Windows se ejecuten en sistemas operativos basados en Unix, como Linux y macOS. Con innovaciones significativas, esta versión promete una experiencia más completa para los usuarios.

    Leer más...

    Please publish modules in offcanvas position.