Programadores del futuro

La programación ha pasado de ser un oficio de futuro para convertirse en una profesión del presente

Programadores del futuro

La programación ha pasado de ser un oficio de futuro para convertirse en una profesión del presente, pero, ¿hasta cuando?. Personalmente creo que quedan muchos años aún de auge para este gremio, pero mucho mas especializado. Así tal vez la frase de “tengo un amigo informático que puede arreglarte el PC” caiga en desuso o bien cambie por: “conozco un perfil de sistemas que puede hacerlo”, quien sabe…

Programadores del futuro

Como aún quedan muchos años donde la figura del programador va a ser primordial y quedan muchas hornadas de los mal llamados “informáticos” estaría bien desglosar los puntos o las habilidades que harán a cualquier programador del futuro destacar sobre el resto. Tal y como ha evolucionado la tecnología, la lógica nos dice que las capacidades o skills que debe tener el programador del futuro son:

– Manejar al menos uno de los grandes lenguajes de programación: Java, .NET o PHP. Nos gusten o no, son los lenguajes de alto nivel mas utilizados. Y seguirán siéndolo a no ser que surja una hipotética e improbable tormenta solar que tumbe todo y haya que reinventar la rueda.

– Aprendizaje y uso de Frameworks; La tipica frase de no es necesario reinventar la rueda, la hemos estado oyendo muchos años. Si bien es cierto que hay que tener algunos conocimientos de como funcionan esas “cajas negras” que llamamos frameworks o librerías, no es necesario desarrollarlas íntegramente. Por lo tanto antes de comenzar cualquier proyecto o modulo, hay que dedicar un tiempo a investigar si existe algún framework que simplifique el desarrollo y lo haga mas eficiente y robustamente. Yo diría que todos los días hay que dedicar un tiempo a investigar nuevas herramientas que pueden optimizar las tareas que desarrollamos.

– Desarrollo Web; Aunque por parte de los programadores siempre ha sido el patito feo de la tecnología, hoy en día la programación Web es bastante mas compleja que entonces e incluso se la puede denominar programación xD. Todo programador que se digne ha de tener nociones básicas de frameworks, tecnologías como HTML5, CSS, etc.. Parecía que la Web iba a desaparecer pero ni mucho menos! Aun le queda un largo futuro a la Web, ya que forma parte de casi todos los proyectos informáticos y de sistemas.

– Servicios Web, son fundamentales para cualquier sistema hoy en día, paso la época del famoso Cliente/Servidor pero pocas han cambiado desde entonces. Se siguen y seguirán consumiendo servicios Web de distintas tecnologías: REST, SOAP, WSDL, JSON, XML.. Algunos más otros menos, pero en general las aplicaciones de todo tipo usan datos dinámicos para enriquecerse, ya que como la Web la informática en general tiende a ser social y global.

– Sentido común y habilidades sociales; Los programadores informáticos ya no se esconden en cuevas, trabajan por la noche ni salen exclusivamente a jugar a rol. Hoy en día están involucrados en todas las fases de desarrollo, trabajan en equipos y han de tener cierta inteligencia emocional y social para poder trabajar en grandes grupos de desarrollo y poder hablar con clientes en un lenguaje natural y común.

– Conocimiento de los distintos paradigmas de la programación. No limitarse a la metodología orientada a objetos, hay que conocer la programación funcional y dinámica. Estos paradigmas amplían el horizonte de los programadores y les permiten pensar de distintas formas para alcanzar soluciones a los problemas. Dejar de pensar en clases y entidades para pensar en un pseudocódigo mas cercano al lenguaje natural. Interesante sería manejar Python y lenguajes SQL no relacionase como MongoDB o Redis, por ejemplo.

– Implicación y conocimiento del dominio; Por mucho que los programadores necesiten abstraerse del problema que los atañe para desarrollar, la realidad es que los programadores más demandados son los que se implican en el dominio del proyecto. No se puede pretender que los clientes o jefes de proyecto sean capaces de traducirlo todo a requisitos y funcionalidades, ha de ser el programador quien haga esta función.

– Estándares e higiene de código; Cuando un desarrollador se incorpora a un proyecto de largo alcance temporal, ha de estar dispuesto a integrarse en un equipo de desarrollo con otros programadores como el. Para que su código sea aceptado en el branch ha de cumplir unos estándares básicos y una limpieza de código aceptable. La expresión de “picar código” puede que valga para un proyecto unipersonal pero no para un gran proyecto. Las variables, clases, métodos han de encajar con el resto del proyecto siendo de utilidad, muchas veces los más veteranos del proyecto pasan mas tiempo refactorizando código ajeno que programando, algo que es improductivo.

– Desarrollo móvil, todo apunta a que el desarrollo para aplicaciones móviles va para largo, da igual de que dispositivo hablemos y de que sistema operativo, Android, iOS, Windows Phone, Ubuntu.. No sabemos cual será el entorno más demandado en el futuro, lo que si sabemos es que seguirá manteniendo la misma o más importancia. El quid de la cuestión son las limitaciones y especializaciones que tiene el desarrollo para un dispositivo hardware determinado, es decir, nativo. Por experiencia, lo más importante es conocer el entorno donde se desplegará el software, las limitaciones y procedimientos de estos. Por ejemplo conocer el ciclo de vida de las apps en dispositivos móviles es fundamental, saber como actúan en background, el manejo de threads o concurrencia, etc..

Comentarios

No hay comentarios

Escribe el primer comentario.

Deja un comentario

Nombre. Email. Mensaje.