Upload
sidenando
View
225
Download
0
Embed Size (px)
DESCRIPTION
Caracteristicas de los desarrolladores de software.
Citation preview
CARACTERISTICAS DEL DESARROLLADOR DE SOFTWARE DEL FUTURO
Actualmente existe un claro déficit de desarrolladores de software y una necesidad
imperante de recuperar la figura del software developer, un perfil profesional
que aporta gran valor en el desarrollo de los productos y servicios en los que
trabaja. ¿Qué se espera entonces del desarrollador del futuro? ¿Qué competencias
y características técnicas serán las más valoradas? Rubén González, Head of
Architecture for Product Innovation and Research at Telefonica I+D, explica cómo
será el perfil del desarrollador de software del futuro:
SERÁ EMPRENDEDOR Y CREATIVOEl desarrollador de software del futuro debe ser un emprendedor con iniciativa
empresarial y visión de futuro, alguien con capacidad de crear nuevos proyectos
así como de ejecutarlos correctamente. Además, cada vez se asocia más al
desarrollador de software con un creativo de tecnología, incluso se llega a
comparar con un artista, por lo que su faceta artística deberá desarrollarse para
inventar nuevas soluciones para las necesidades que crean a diario las nuevas
tecnologías.
TENDRÁ ALTOS CONOCIMIENTOS TECNOLÓGICOSPara poder entender y dominar todo lo anterior, es bueno partir de una buena base
de Linux y de lenguaje C (la llingua franka de Linux). A partir de ahí se pueden
aprender otros lenguajes como C++, Java, Python, JavaScript, Scala, Go… Además,
es importante que sea experto en iOS, Android, FirefoxOS, Windows Phone, HTML5,
node.js, MongoDB, Openstack, Linux y en diseño de interface de usuario
SERÁ EXPERTO EN ALGORITMOS, PARADIGMAS Y FUNDAMENTOS DEL DESARROLLO DE SOFTWAREEl desarrollador del futuro dominará prácticas de programación, algoritmos,
estructuras de datos, programación funcional, programación orientada a objetos y
arquitecturas cliente servidor, protocolos TCP/IP y HTTP, sin olvidar bases de datos
y nosql.
ADQUIRIRÁ CONOCIMIENTOS FULLSTACKEste perfil profesional debe tener formación sobre hardware, comunicaciones,
protocolos y sistemas operativos hasta nivel de aplicación.
TENDRÁ CAPACIDAD DE SÍNTESIS Y DELIVERY MULTITIEREl desarrollador del futuro será capaz de desarrollar y desplegar desde
aplicaciones para usuario hasta el backend.
DESARROLLARÁ SOFTSKILLSSerá importante que tenga competencias personales bien desarrolladas como
buena capacidad de comunicación, auto-liderazgo, gestión del tiempo y trabajo en
equipo.
TENDRÁ CAPACIDAD PARA DIRIGIR Y GESTIONAR EQUIPOSPara convertirse en un buen manager de desarrolladores, es importante haber
trabajado antes como desarrollador, de forma que se entienda mejor la
idiosincrasia de esta profesión y las necesidades del equipo. Una de las
características indispensables que deberá tener es la eficiencia en la gestión de
personas.
Dominará varios lenguajes y entornos de programación, automatiza tests,
despliegues, y trabaja en entornos
REGLAS PARA SER EL MEJOR PROGRAMADOR Y NO EL MEJOR CODIFICADOR
Existe mucha confusión con respecto a que habilidades a desarrollar para ser
mejor programador. El acto de programar es más bien, organizar, planificar,
estructurar mediante algún tipo de metodología algorítmica, la solución más
óptima a cualquier problema planteado. Y codificar es escribir código en cualquier
lenguaje basado en su idioma, sintaxis y alfabeto, para darle instrucciones a la
computadora, para que ella realice las actividades de manera más rápida.
Cuando decimos, vamos a programar, en realidad lo que estamos diciendo es que
vamos a organizarnos de la mejor manera para buscar la mejor solución, antes de
sentarnos frente a la computadora a escribir código sin tener una base sólida de lo
que queremos que la computadora nos devuelva como resultado satisfactorio.
Puntos importantes para el diseño de un programa.
1º. Analizamos lo que se nos pide, para no hacer más de lo necesario, aunque
siempre es bueno que lo que hagamos tenga valores agregados.
2º. Enfocarse primero en que la solución sea satisfactoria y después de haber
logrado el objetivo primordial, preocuparse por la GUI, ya que antes de perder el
tiempo en que nuestro programa se vea bonito, debemos hacer que funcione. Y el
que funcione no solo implica que no tenga errores de compilación sino que
también que muestre los resultados reales de lo que se espera.
3º. Buscar todas y cada una de las validaciones y/o restricciones que se le puedan
aplicar para que el usuario final no cometa errores que hagan que nuestro
programa tenga fallas fatales como abandono inesperado del sistema o pérdida de
información.
4º. Hacer un algoritmo preciso y detallado de los pasos que dan la solución (utiliza
divide y vencerás).
5º. Hacer un diagrama de flujo que represente todos y cada uno de los pasos
indicados en el algoritmo.
6º. Hacer un pseudocódigo, con base al lenguaje que se utilizará para escribir el
código de la solución al problema planteado.
7º. Utilizar el mejor lenguaje de programación, para escribir el código de la
solución al problema. Tomemos nota, de que el mejor lenguaje de programación,
no es el de la mejor tecnología, no es el más actual, no es el de mejores
propiedades, el mejor lenguaje para un programador, siempre es y seguirá siendo
el que uno como programador mejor domina y trabaja, ya que bajo este simple
concepto, no perderemos mucho tiempo en primero conocer el lenguaje, su
sintaxis y luego aplicarlo.
8º. Recomendación, estén siempre pendientes y al tanto del crecimiento del
programa que realicen, para darle un constante mantenimiento.
9º. Ustedes programadores, pónganse en el plan de usuarios finales y háganle
todas y cada una de las pruebas concernientes al programa antes de entregarlo,
de preferencia si lo ponen a prueba con usuarios finales también, ya que ellos no
conocen lo que el sistema tiene como validación y nos permitirá observar de mejor
manera los problemas que nuestro programa arroje.
10º. En caso de que crean que no pueden encontrar una solución a un problema,
Siempre busquen ayuda, pregunten, consulten, e investiguen en Internet o Libros.
No se quede callado, no crea que puede solucionar todo usted solo, siempre hay
alguien o algo que nos puede ayudar.