Para no variar, otro artículo de ZDNet, esta vez de Larry Dignan “10 skills developers will need in the next five years” que me agradó y a su vez salió del blog de Justin James “TechRepublic’s 10 Things blog” aquí lo publico traducido:
Si eres un desarrollador buscando destacar en tu campo, o en algunos casos, simplemente seguir en tu empleo, este no es un momento de ser complaciente.
Con los cambios recientes en la economía, muchos desarrolladores se enfocan en sus prospectos de trabajo a corto plazo. Al mismo tiempo, es importante asegurarse que se logra el mayor impacto con el presupuesto cuando se trata de tomarse el tiempo y la energía para aprender nuevas habilidades. Aquí está nuestra lista de las 10 habilidades que deberías estar aprendiendo justo ahora para asegurarte que tu currículo siga siendo relevante los siguientes cinco años. La lista difícilmente es exhaustiva y hay inmensos huecos que no cubre (desarrolladores de mainframe, por ejemplo). Sin embargo, para el desarrollo promedio convencional, no puedes equivocarte si aprendes al menos siete de estas diez habilidades — no solamente al punto de que puedas hablar convincentemente del tema en una entrevista de trabajo, sino que realmente puedas utilizarlas en el trabajo.
Nota: El artículo original se encuentra disponible como una descarga PDF.
1: Uno de los “Tres Grandes” (.NET, Java, PHP)
A menos que se dé un cambio radical en el mundo del desarrollo (algo así como un asteroide impactando Redmond), la mayoría de los desarrolladores necesitarán conocer al menos uno de los Tres Grandes sistemas de desarrollo — .NET (VB.NET o C#), Java, o PHP —para el futuro cercano. No es suficiente conocer el lenguaje base tampoco. Como los proyectos abarcan más y más funcionalidad diferente, será necesario que conozcas los marcos y librerías asociadas más a fondo.
2: Aplicaciones Ricas de Internet (RIAs)
Lo ames o lo odies, en los últimos años Flash súbitamente se utiliza para más que sólo animaciones o políticos cantando canciones tontas. Flash también ha hecho brotar mayor funcionalidad en la forma de Flex y AIR. Los competidores de Flash, tales como JavaFx y Silverlight, también están subiendo las apuestas en características y rendimiento. Para hacer que las cosas se compliquen más, HTML 5 está incorporando todo tipo de funcionalidad RIA, incluyendo conectividad de bases de datos y poniendo el sello W3C en AJAX. En el futuro cercano, ser un RIA profesional será un diferenciador de currículos.
3: Desarrollo Web
El desarrollo Web no se irá a ningún lado en los siguientes años. Muchos desarrolladores han se han contentado con recostarse e ignorar la Web o simplemente contentarse con “lo básico” que su marco les provee. Pero las compañías han seguido demandando más y más a quien realmente sepa como trabajar a un nivel de “código manual”. Así que a empaparse de JavaScript, CSS, y HTML para tener éxito en los siguientes cinco años.
4: Servicios Web
¿REST o SOAP? ¿JSON o XML? Mientras las opciones y las respuestas dependen del proyecto, se está volviendo incrementalmente más difícil ser un desarrollador (aún uno que no escriba aplicaciones Web) sin consumir o crear un servicio Web. Aún áreas que solían ser ODBC, COM, o dominios RPC ahora están en transición a ser servicios Web de algún tipo. Los desarrolladores que no pueden trabajar con servicios Web se encontrarán a si mismos relegados a sistemas legacy y roles de mantenimiento.
5: Habilidades suaves
Una moda que ya lleva un buen rato es la visibilidad incremental de TI dentro y fuera de la empresa. Los desarrolladores son llevados a más y más juntas y procesos que no son de desarrollo para dar retroalimentación. Por ejemplo, el CFO no puede cambiar las reglas de contabilidad sin trabajar con TI para actualizar los sistemas. Y un gerente de operaciones no puede cambiar un proceso de un call center sin que TI cambie el flujo de trabajo (workflow) del CRM. De la misma forma, los clientes necesitan trabajar seguido de forma directa con los equipos de desarrollo para asegurarse que se cumplan sus necesidades. ¿Necesitará cada desarrollador ir a Toastmasters o estudiar Cómo ganar amigos e influenciar a la gente? No. Pero los desarrolladores que lo hagan serán mucho más valiosos para sus empleadores — y posteriormente muy buscados en el mercado de empleos.
6: Un lenguaje de programación dinámico y/o funcional
Lenguajes como Ruby, Python, F#, y Groovy todavía no son muy convencionales – pero las ideas en ellos si lo son. Por ejemplo, el sistema LINQ en .NET de Microsoft’s es un descendiente directo de técnicas de programación funcional. Ambos Ruby y Python se están volviendo populares en algunos sectores, gracias al marco Rails y a Silverlight, respectivamente. Aprendiendo uno de estos lenguajes no solamente mejorará tu currículo; expandirá tus horizontes. Cada desarrollador de alto vuelo que he conocido recomienda aprender al menos un lenguaje de programación dinámico o funcional para aprender nuevas formas de pensar, y de mi experiencia personal, te puedo decir que funciona.
7: Metodologías Agile
Cuando Agile llegó a la conciencia popular por primera vez, yo era un escéptico, junto con mucha otra gente que conozco. Parecía algún tipo de reacción refleja hacia la tradición, botando los controles y estándares en favor de la anarquía. Pero al paso del tiempo, las ideas detrás de Agile se volvieron mejor definidas y mejor expresadas. Muchas empresas están ya sea adoptando Agile o corriendo experimentos como prueba de concepto con Agile. Mientras Agile no es la panacea maravillosa contra el fallo de proyectos, tiene ciertamente su lugar en muchos proyectos. Desarrolladores con un registro pasado de entender y tener éxito en entornos Agile se encontrarán con una alta demanda en años venideros.
8: Conocimiento del dominio
Mano a mano con las metodologías Agile, los equipos de desarrollo están siendo vistos cada vez más como colaboradores en la definición de proyectos. Esto significa que los desarrolladores que entiendan el dominio del problema serán capaces de contribuir al proyecto en una forma altamente visible y valorable. Con Agile, un desarrollador que pueda decir, “Desde aquí, podemos añadir esta funcionalidad de manera bastante sencilla, y nos añadirá mucho valor,” o “Caray, ese requerimiento realmente no va con los patrones de uso que muestran los logs” será sobresaliente. Mientras muchos desarrolladores se resisten a la idea de tener que saber algo sobre el dominio del problema, es innegable que un número cada vez mayor de organizaciones prefieren (si no es que requieren) que los desarrolladores al menos entiendan lo básico.
9: “Higiene” en el desarrollo
Hace unos pocos años, muchas (si no es que la mayoría) de los equipos de desarrollo no tenía acceso a sistemas de seguimiento de errores, control de versiones, y otras herramientas del tipo; era sólo el desarrollador y su IDE elegida. Pero gracias al desarrollo de nuevas tecnologías integradas, como el Microsoft Visual Studio Team System, y la explosión en la disponibilidad de entornos de código abierto de alta calidad, las organizaciones que no tienen estas herramientas son cada vez menos comunes. Los desarrolladores deben saber más que sólo hacer check in y check out del control de fuentes o cómo utilizar los sistemas de máquinas virtuales para crear entornos de desarrollo. Requieren un hábito riguroso de higiene en su lugar para asegurarse de que se están coordinando de manera apropiada con sus equipos. “Vaqueros del código” que guardan todo en su disco USB personal, no documentan que cambio corresponde a cuál tarea, y demás, no son bienvenidos en los equipos de desarrollo convencionales y aún menos en entornos Agile, que se apoyan en una coordinación muy estrecha entre los miembros del equipo para operar.
10: Desarrollo móvil
El final de los 1990s vio el incremento en desarrollo Web hasta una aceptación convencional y entonces empezó a marginalizar las aplicaciones tradicionales de escritorio en muchas áreas. En 2008, el desarrollo móvil dejó la plataforma de lanzamiento, y en los siguientes cinco años, se va a volver cada vez más importante. Hay, por supuesto, diferentes acercamientos al desarrollo móvil: Aplicaciones Web diseñadas para funcionar en dispositivos móviles, RIAs dirigidos a ese mercado, y aplicaciones que corren directamente en las plataformas móviles. Sin importar cuál de estas rutas elijas, agregar desarrollo móvil a tu conjunto de habilidades asegurará que tengas demanda en el futuro.
Comentarios
Publicar un comentario