viernes, 28 de abril de 2017

10 habilidades que todos los programadores deben tener


Si hay algo que no me deja de fascinar sobre este mundo es lo rápido que avanza el sector del software. La industria del software ha mutado a pasos agigantados desde su nacimiento. En los años 80 el software giraba en torno a las PC de escritorios y Mainframes. En la actualidad la tendencia es hacia soluciones para dispositivos móviles y la web.
Como consecuencia de este avance tan rápido que experimenta la industria del software, he dedicado tiempo en reflexionar sobre las características excenciales que permitan a un programador mantenerse en la industria por un largo periodo de tiempo y al mismo tiempo ser exitoso en su profesión. A continuación explicaré algunas de las características que todo programador debe tener para ser exitoso en el híper competitivo campo de la industria del software.

Curiosidad: Un buen programador siempre está ávido de conocimientos. Hasta que no conoce el problema en profundidad no se detiene de trabajar. Es esta característica la que permite que un programador pueda adquirir el conocimiento y habilidades para entender cualquier tecnología subyacente en la que necesite escribir código. Sé curioso y alimenta tu mente con información útil. Nunca pares de leer.

Pensamiento claro: Un pensamiento claro es un ejercicio de lógica. Por esta razón es que los programadores con excelente bases matemáticas superan en rendimiento en la mayoría de las veces a sus pares que carecen de estos conocimientos. Ejercita tu lógica a través de las matemáticas.

Leer y comprender rápido: La rapidez en la lectura y compresión de la información es vital para la productividad de cualquier programador. Un programador NO sólo escribe código, parte de su trabajo incluye la lectura de código, documentación y especificaciones de proyectos. Los programadores que leen de manera lenta son improductivos pero los que no tiene buena lectura comprensiva son peligrosos.

Atención a los detalles: He notado que la característica de atención a los detalles está estrechamente relacionada con la curiosidad. Un programador que no presta atención a los detalles principalmente en el proceso de escritura de código es altamente improductivo. La falta de esta habilidad se refleja en aquellos que escriben código desordenado, sin comentarios y no implementan las medidas de seguridad adecuadas para garantizar la integridad del software.

Aprender rápido temas fuera de la programación: Exceptuando que seas un programador trabajando dentro de una compañía de software desarrollando herramientas únicamente para programadores, es necesario que estés en comunicación con otras personas fuera del mundo del código binario. Esto incluye conversar con contadores, abogados, financieros, etc. Por lo tanto, un programador debe adquirir conocimientos en las áreas con la que se relaciona en el trabajo. Así como un periodista debe poseer el conocimiento mínimo necesario para escribir un artículo sobre economía, de esta misma forma un programador debe tener conocimientos mínimos de finanzas para poder ayudar a un director financiero a resolver un problema de software.

Autodidacta: El programador que depende que su empleador para que financie los entrenamientos está condenando al fracaso. La realidad es que en las empresas casi nunca hay presupuesto para entrenamientos en el área de tecnología. Un excelente programador es autodidacta. La habilidad de aprender por sí mismo paga en el largo plazo. El mundo del desarrollo de software es muy amplio y no se detiene, el programador actual debe estar en constante evolución aprendiendo nuevas herramientas y lenguajes. Un programador que dure dos años sin capacitación está desfasado.

Pasión: Existen programadores de 9-5. Estos son aquellos que escriben código de forma rutinaria en su trabajo. Fuera de su trabajo no existe el código. Esto no está mal pero es un reflejo de falta de pasión. Los mejores programadores respiran código las 24 horas. Esta “pasión” es la que permite aplicar trucos y buscar soluciones creativas al momento de enfrentar problemas complejos.
Adaptabilidad: Es muy difícil que un proyecto de software termine con las mismas especificaciones que se delinearon al comienzo del proyecto. Las cosas cambian y los grandes proyectos también. Un programador debe saber cómo adaptarse a los cambios. Los programadores que no se adaptan fracasan.

Comunicación efectiva: Comunicación efectiva no es sinónimo que hables perfectamente tu idioma; es más que eso. Es necesario que un programador tenga la capacidad de comunicar las ideas de forma clara y precisa. Los programadores que NO logran que sus ideas sean comprendidas principalmente por aquellas personas no técnicas, tienden a tener dificultades en sus carreras. Una persona que no comunique efectivamente NO puede escalar a posiciones gerenciales en una empresa.

Explora código: Un forma rápida y eficiente de incrementar tus habilidades en programación es a través de la exploración de código escrito por otros. Algunos de los mejores programadores del mundo colaboran en proyectos Open Source. Involúcrate y aprender de los gurúes.