8 de abril de 2009

12 habilidades que los Desarrolladores de Software necesitarán en los próximos 5 años

Este ultimo mes, varios colegas o amig@s, me han contactado por el messenger o me han llamado, preguntándome que deberian aprender para mantenerse a flote en el competitivo mundo laboral que engloban la Informática y las Ciencias de La Computación. Humildemente, y segun mi experiencia o lo que veo en el medio, les contesto a los que me contactaron... y a los que se preguntan esto mismo, con esta entrada de Blog.

¡Bien!, si eres un Desarrollador o Desarrolladora de Software y quieres mantenerte en la punta de lanza de tu campo (o en algunos casos, mantenerte empleado o empleada :P ) estas son las 12 habilidades que deberias trabajar para maximizar tus prospectos de trabajo en el futuro cercano. Ademas no hay que "dormirse en los laureles" de lo que usas en tu trabajo del dia a dia, para mejorar tu situacion deberas estar continuamente aprendiendo.


1. Escoge uno o más de "los 3 grandes" (.NET, Java o PHP) y ¡dale con todo!

A menos que haya un cambio super radical en el mundo... (digamos, caiga un meteorito sobre las oficinas de Microsoft en USA, o que de repente los políticos sean tan sensatos como los Cientistas de la Computación) la mayoría de nosotros deberá manejar al menos uno de los tres grandes "sistemas" de desarrollo, MS .NET (C# o VB.NET), JAVA o PHP.

Ahora... no es suficiente con saber estos lenguajes, ya que los proyectos asociados cada vez incluyen mas funcionalidades locas, necesitaras saber un par de frameworks y librerias o APIs adicionales para complementar.


2. Aplicaciones Ricas de Internet o RIA´s (Rich Internet Applications)

Bien, todos sabemos que Flash parece virus ya cavando su lugar en cada vez mas sitios... y no solo para animaciones, Adobe Flex es todo un "framework" para hacer aplicaciones Web, que se parecen cada vez mas a las de escritorio a este se le agregan JavaFX de Sun Microsystems, Silverlight de MS y una muy interesante opcion Open Source OpenLaszlo. Sin duda, las aplicaciones Web mas dinamicas con estos "frameworks" tendran un buen mercado. Incluso el HTML5 esta incluyendo capacidades RIA, con conectividad a datos y poniendo a AJAX en los estandares de la W3C, esto sera un buen "plus" para tu CV.


3. Desarrollo Web

El desarrollo Web no se ira a ninguna parte... no bajara... por el contrario seguira esa increible curva exponencial creciente. Trabajar "a pie" con cosas como HTML, Javascript y CSS es obigado si quieres tener exito en este ambito. Asi que a desempolvar esas habilidades de debugging de js y a usar Dreamweaver, Eclipse y Firebug con ganas.


4. Web Services

Seas un desarrollador o desarrolladora para el Escritorio o la Web, es muy probable que SOAP, REST, JSON o XML suenen o halla sonado en tu trabajo recientemente. Ya el viejo RPC, COM u ODBC que siempre te servia para conectarte a ese AS400 o sistema "legacy" (a menos que te quieras quedar a darle mantenimiento o conectividad a estos, casi dinosaurios...) ira cambiando a Web Services... entonces no seria malo practicar algo con esos estandares mencionados, todo lenguaje de programacion decente te permitira invocar un WS en estos dias.


5. La Nube

Cada vez mas se ira poniendo de moda en todas partes, el termino "Cloud Computing" o la famosa "Nube". ¿Y que es la Nube?

Bueno, es muchas cosas... entre ellas depender cada vez menos de medios de almacenamiento en tus manos o tu mochila, como discos duros o memorias USB, porque puedes subir tus archivos a discos "online", Google Docs es un buen ejemplo y que almenos ya se usa mucho... para tener acceso a tus cartas, cuadros de excel o ppt´s en cualquier lado.

Tambien tu musica, contactos, emails, etc... como con MobileMe de Apple, todo tiende a estar en la Nube y hay aplicaciones corporativas que tambien tenderan a estar ahi o ya estan ahi, como los CRM, como buenos desarrolladores nos tocara lidiar con la Nube, ya sea por cuestiones de interoperabilidad, o seguridad.

¿Y tu... ya tienes algo en la Nube?


6. Lenguajes de Programación Dinámicos o Funcionales

Ruby, Phyton, Grails, Groovy... aceptemoslo, estan ganando terreno y no seria malo agregarlo a tus habilidades. Estos inclusive te hacen pensar de forma diferente al desarrollar, no solo del pensamiento con Orientacion a Objetos vive el hombre.


7. Desarrollo Movil

Ok, la Web esta aqui y vino a quedarse... siempre necesitaras tu PC o Mac para desarrollar decentemente, pero... ¿que hay de lo demas? revisar y enviar email, twittear, escribir documentos, ver los KPI´s en vivo de tu empresa, entretenerse, comprar, todo tiende, si, a esta r en la Web, ¡pero tambien en la WEB EN TU MOVIL!

iPhone y Android son para mi en lo personal la punta de lanza del nuevo BOOM de la indrustria, la movilidad... todos desesperadamente, y esto incluye a MS, NOKIA, Palm, LG, etc... trantan de imitar el iPhone o Android y estaran lanzandonos Apps para estos masivamente, por lo que aprender XCode para hacer iPhone Apps o usar Java en el muy particular metodo en que lo usa Android para hacer Apps de todo tipo, Productividad, Juegos, Multimedia, Marketing, etc... sera obligado.


8. Orden e Higiene al Desarrollar

No solo hacer commit a tu SVN se ha vuelto una necesidad para la industria ahora... el bug-tracking, documentacion a tiempo en algun wiki, unit-testing, prueba de tu sistemita en una Maquina Virtual o VM seran vitales.


9. Conocimiento del Problema o del Negocio

Todos los desarrolladores nos negamos a conocer sobre "el problema", ya que eso le coresponde a los Analistas, pero cada vez mas, es comun que se involucre al desarrollador de software en las (aburridas) reuniones para discutir el "problema a resolver" con el software. Bueno, no es del todo malo desarrollar apertura en este aspecto no te hace daño y te convierte en un desarrollador o desarrolladora mas valioso o valiosa.


10. Metodologia Agile para desarrollo

Al salir las metodologias AGILE, yo era uno de los escepticos, pero ser tradicionalista ya no funciona mas. Varias empresas del sector Software estan o estaran tomando a AGILE ya sea para probar en nuevos proyectos o ya para usarlo del todo. Las personas que puedan probar que han tenido exito entendiendo esta metodologia y trabajando con ella o alguna otra metodologia ordenada seran muy bienvenidos en los proximos años en muchas empresas. Ser el viejo "Cowboy Coder" y no seguir ninguna metodologia, no es recomendable e inclusive es prohibitivo en estos tiempos de crisis, donde los resultados se quieren ver o "son para ayer".


11. LINUX
LINUX toma fuerza dia con dia, Ubuntu como uno de los principales abanderados gana terreno... paso a paso, botando paradigmas y dogmas, el buen Pinguino llego para quedarse y podria imponerse a MS Windows en los proximos dias... asi que entre tus habilidades seria bueno contar con el manejo de Open Office en LINUX, tener un par de comandos de Terminal en tu haber y saber como configurar tu Hardware de video o audio con tutoriales en la Web.

Ya no se diga montar un LAMP para tu sitio web.


12. CMS y Redes Sociales

Manejar e instalar Drupal, Joomla, LifeRay, WordPress son ahora un requerimiento real... la ultima moda es la Red Social, ya sea interna a las empresas o externa... si eres Web Master o inclusive un Desarrollador, no seria raro que te toque integrar algo o deasarrollar un plugin o interfasear con la base de datos al menos de un CMS.


FELIZ VACACIÓN DE SEMANA SANTA a todos los que la celebran religiosamente, o la usan para descansar del código (al menos del código del trabajo diario).
;)

1 comentario:

  1. Hey que buenos tips, concuerdo con muchos de las 12 habilidades.

    ResponderEliminar