Más allá de poseer formación y contar con experiencia,

es importante señalar las cualidades que apalancan el éxito de quien decide dedicarse a la programación:

  Curiosidad:   un buen desarrollador siempre está ávido de conocimientos y debe contar con ese plus de llegar a la raíz, hasta que no conozca el problema en profundidad no debe detener su trabajo.

Pensamiento claro: esto es un ejercicio de lógica. Por esto, los profesionales con excelente bases matemáticas superan en rendimiento en la mayoría de sus pares que carecen de dichos conocimientos.

Leer y comprender rápido: esto es vital para la productividad de cualquier desarrollador. No sólo escribir códigos; parte fundamental de su trabajo incluye la lectura de códigos, documentación y especificaciones de proyectos.

Atención a los detalles: un programador que no presta atención a los detalles principalmente en el proceso de escritura de código, es altamente improductivo.

Aprender temas fuera de la programación. Es necesario estar en comunicación con personas fuera del mundo del código binario: contadores, abogados, financieros, entre otros.

Autodidacta:   no debe depender que sus empleadores le financien entrenamientos; debe contar con la habilidad de aprender por sí mismo.

Pasión: los desarrolladores más exitosos respiran códigos las 24 horas; sólo así pueden aplicar trucos y buscar soluciones creativas al momento de enfrentar problemas complejos.

Comunicación efectiva: esto enfocado en la capacidad de comunicar sus ideas de forma clara y precisa.

Explorar códigos: los mejores programadores del mundo colaboran en proyectos Open Source, por ejemplo.

Entre los conceptos que debe manejar un desarrollador, destaca:

Programación orientada a objetos

Esta sigue siendo la manera de desarrollar la mayoría de aplicaciones.

El lenguaje no es tan importante, (Java, C#, C++, entre otros), como el hecho de tener claros los conceptos; lo que es una clase, un objeto, un interfaz, una clase abstracta, un método estático, de instancia, herencia, composición, etc. Es especialmente útil conocer los patrones de diseño, porque ayudan a establecer un lenguaje común para comunicarse con otros desarrolladores, y la forma de implementarlos es un buen ejemplo de cómo aplicar técnicas de diseño orientado a objetos.

Programación funcional

Cada vez es más frecuente, e incluso los lenguajes tradicionalmente orientados a objetos que evolucionan más lento como Java o C++, empiezan a incluir características funcionales. Así como Ruby, Python o Javascript o el empuje de lenguajes funcionales como Clojure, F# o Haskell.

Bases de datos

Prácticamente toda aplicación necesita, de una u otra forma, almacenar información; y ésta suele terminar en una base de datos. Es imposible pretender dominarlas todas durante el periodo de formación, pero es prudente tener conocimiento de su utilidad.

Hardware y redes

Hay quienes piensan que por dedicarse a programar no necesitan saber nada del hardware que ejecuta sus programas; pero la realidad es muy distinta. Es fundamental conocer las características básicas del hardware que se utiliza para ser más exitoso en la toma de decisiones.

Sistemas de Control de Versiones

Es muy útil aprender a manejar un sistema de control de versiones, incluso a través de opciones online gratuitas.

Esto deja de ser un problema cuando se utilizan plataformas de nube elástica como la que ofrece Facilcloud.com ya que este tipo de tecnologías tiene soporte de aplicaciones nuevas y sistemas legados, lo que facilita el despliegue de aplicaciones sin importar la versión en que fueron programadas.

+Info facilcloud.com