Las habilidades más importantes de un programador que no tienen nada que ver con la programación

El programador se ha convertido en una figura básica en la mayoría de las empresas modernas. Incluso en compañías pequeñas y no dedicadas al software, contar con un programador en sus filas que pueda producir producto propio se ha vuelto fundamental.

Mucha gente piensa que los programadores son profesionales muy técnicos, que trabajan de forma aislada sin interactuar con el resto del equipo. No pueden estar más equivocados. Hay una serie de habilidades que los programadores deben tener que les convierte en profesionales muy completos.

annie-spratt-604122-unsplash

Resolución de problemas

Cuando enseño a la gente a programar, veo a mucha más gente “luchando” con la resolución del problema que con el código en sí mismo. La capacidad de dividir un problema en otros más pequeños y luego resolver todos esos problemas ordenadamente requiere mucha práctica. Obtener buenos resultados en la resolución de problemas puede convertirte en un gran programador.

Además, para la mayoría de los problemas, suele haber más de una solución posible. Una gran parte de nuestro trabajo como desarrolladores de software es pensar en esas diferentes soluciones y elegir la mejor. ¿Qué es más rápido de implementar? ¿Cómo funciona más eficientemente? ¿Cómo será menos costoso? Todas estas son preguntas importantes y elegir la respuesta correcta es un gran reto, pero una parte importante del desarrollo de software.

Creatividad

Lo que más me gusta de ser programador es que puedo usar mi energía creativa para construir cosas de las que otras personas puedan beneficiarse. Puedes pensar de forma original para crear cosas realmente geniales.

Tener ideas creativas es importante para crear nuevas funciones, interfaces y aplicaciones. Una vez conseguí que alguien comprara una licencia para un producto que diseñé en gran parte debido a la interfaz creativa.

Además, muchos de los problemas requieren creatividad para resolverse. Hay más de una solución para casi todos los problemas de programación y proponer enfoques creativos para resolverlos a menudo puede llevar a una solución optimizada.

pexels-photo-5775851

Adaptabilidad

La programación sigue siendo un mundo nuevo, y está evolucionando súper rápido. Ser capaz de adaptarse cuando las cosas cambian es fundamental. Cuando sale una nueva biblioteca o un lenguaje nuevo aparece en escena, es importante ser capaz de aprenderlo (dentro de lo razonable, por supuesto). Nuestra industria se vería dramáticamente diferente si todavía estuviéramos escribiendo código en Fortran. Tenemos que ser capaces de evolucionar y adaptarnos cuando las cosas cambian.

Además, los objetivos y las características de los proyectos a menudo cambian, especialmente con el trabajo de los clientes. Cuando eso sucede, tenemos que adaptar e incorporar esas peticiones (de nuevo, dentro de lo razonable).

Colaboración

Es muy probable que tengas que trabajar con otras personas, como otros desarrolladores, clientes, jefes, colaboradores de open source… Incluso si eres un trabajador independiente o autónomo, tendrás que colaborar con otros. Aprender a trabajar bien con otras personas y sus diferentes personalidades es fundamental.

Es muy importante saber que una persona no puede hacer todo, o al menos hacer todo bien. Diferentes personas tienen diferentes habilidades, puntos de vista y experiencias de vida que son más útiles en combinación que de forma aislada.

Pide ayuda a otras personas. No es necesario ser un experto en todo y otras personas pueden ser más expertos que tú en diferentes cosas. Confía en los demás. Si estás atascado en algo, asegúrate de pedir ayuda para que no te bloquees por mucho tiempo.

Cuando alguien te pida ayuda, ayúdale. Puedes aprender mucho explicando bien las cosas y podrás reforzar tus conocimientos sobre el tema.

En la misma línea, no desestimes inmediatamente los puntos de vista de los demás. Probablemente será mucho menos probable que colaboren en el futuro contigo si sus opiniones no son valoradas o tomadas en cuenta.

Escucha activamente cuando la gente comparte sus ideas. En lugar de pensar en la respuesta o en porqué su idea es mejor mientras hablan, trata de pensar porqué su enfoque es también bueno o cómo podría implementarse sus ideas. Luego, dales crédito por su propuesta. Nada me ha hecho menos efectivo como empleado que estar en un equipo donde mis ideas fueron rechazadas, subvaloradas o no acreditadas por el resto de mi equipo.

business-1839876_1280.jpg

Comunicación

Cuando se trabaja con otras personas, ya sean compañeros de trabajo, clientes, personas que utilizan sus productos, gerentes o subordinados, una buena comunicación es crucial. Dales información honesta sobre cómo van las cosas, cuál es la situación actual de los proyectos, y recibe sus opiniones con honestidad y con amabilidad. La gente será menos receptiva a la retroalimentación si eres grosero o no constructivo. Si eres deshonesto o endulzas la verdad, entonces puede que no veas un cambio positivo en los demás. Definitivamente hay una fina línea aquí.

Empatía

Para crear un gran producto de software, debes ponerte en el lugar de sus usuarios:

  • ¿Cómo utilizarán el producto?
  • ¿Qué características serán útiles para ellos?
  • ¿Cómo puede el programa ayudarlos?
  • Y, a la inversa, ¿cómo podría perjudicarlos o afectar negativamente a sus vidas?

La empatía es esencial para un programador. Si el producto no es seguro, entonces la información del usuario podría ser utilizada negativamente por un tercero. Si no es accesible, entonces se estará limitando el número de personas que puedan usarlo. Si se ejecuta lentamente o necesita grandes cantidades de ancho de banda, entonces los usuarios se irán y las personas que se encuentren en áreas con Internet lento o los usuarios móviles no podrán usarlos.

Además, la empatía es útil para trabajar en equipo o ser un buen mentor. Ponte en el lugar de tu jefe o de otro desarrollador. ¿Por qué están tomando sus decisiones? ¿Qué puedes hacer para ayudarlos? Tener empatía definitivamente mejorará tu trabajo.

Ten paciencia con los otros programadores, especialmente con aquellos que están aprendiendo cosas nuevas. Ser grosero con ellos, disminuir su progreso o ser pedante sólo será dañino y hará que el proceso sea más difícil para todos. Tus palabras y acciones tienen consecuencias reales. Puedes usarlas para realizar un cambio positivo o para herir a alguien. Depende de ti decidir cómo actuar, y cómo disculparte si le haces daño a alguien para deshacer algo de ese daño.

laptop-work-1148958_1280.jpg

Inclusividad

Solemos dejar a las personas “fuera del círculo” y las excluimos con base en ciertas características que están fuera de su control. Pero si los dejamos volver al círculo y les permitimos contribuir, entonces nuestros productos se basarán en experiencias más diversas y resultarán mejores.

Hay mucha investigación que demuestra que equipos más diversos funcionan mejor.

Además, lo más probable es que muchos de los usuarios de tus programas sean personas que tradicionalmente se han quedado fuera del círculo de la tecnología. Esto también se relaciona con la empatía. Asegúrate de que estás haciendo un programas para una amplia variedad de usuarios y no sólo para expertos o gente muy cercana. Podrás llegar a más usuarios.

Paciencia

La primera persona con la que necesitas tener paciencia cuando estás programando es contigo mismo. La programación es difícil y a veces tendrá errores o problemas difíciles de superar. Si siempre fuese fácil, entonces no te estarías desafiando a ti mismo y no estarías creciendo como programador.

Ten la tenacidad de seguir trabajando en un problema y no darte por vencido cuando se pone difícil. Pero, también, puedes tomarte un descanso y volver al problema en un rato. Esto a veces ayuda a resolver el problema más eficientemente o a ver el problema de manera diferente.

Ten paciencia con otras personas. La gente no es perfecta. Cometer errores y fallar pueden ser algunas de las experiencias más importantes en el proceso de aprendizaje, así que fomenta un ambiente donde sea seguro tomar riesgos y crecer. Entiende que las cosas diferentes encajan más fácilmente para personas diferentes.

Humildad

Puedes aprender mucho de otros programadores. Una persona no puede saber todo en el mundo de la programación. Sé receptivo a la crítica constructiva y evita estar a la defensiva. Puedes mejorar tu código y a ti mismo a partir de la retroalimentación. No siempre tienes razón y debes ser receptivo a las ideas de los demás.

code-2558220_1280.jpg

Confianza

Por otro lado, también hay que tener confianza. Creer en ti mismo y tener confianza en tus habilidades es realmente importante.

En primer lugar, ten confianza en que puedes asumir proyectos o tareas. No te relegues a retos más fáciles ni dudes de ti mismo cuando se te asigne algo difícil. Trata de resolver todo lo que puedas, y luego pide ayuda para resolver las partes más difíciles.

No vayas directamente a investigar todo como primer recurso. Confía en ti mismo para probar un par de cosas antes de buscar la respuesta en Google. Lo ideal es probar un par de cosas en el código y ver si funcionan. Te puedes sorprender de lo mucho que aprende a la larga con este enfoque.

Otra cosa que hago es llevar un registro de mis “victorias”. Tengo un documento en mi PC con cosas geniales que he hecho, o cosas muy bonitas que la gente ha dicho de mí. Cuando estoy teniendo un día difícil o dudando de mí mismo, vuelvo a ello y por lo general me siento más seguro de lo que estoy haciendo.

Participación de la comunidad

La comunidad es tan importante para la programación – conferencias, blogs, medios sociales y reuniones son importantes para el aprendizaje y el crecimiento. Además, el software de código abierto y las comunidades que los rodean son el alma de esta industria. Ser capaz de establecer contactos y hacer conexiones con la gente es muy importante para la educación, para relacionar sus experiencias y para encontrar nuevas oportunidades.

Incluso si eres introvertido o no te gusta socializar en persona, hay un montón de comunidades en línea increíbles de las que puedes aprender mucho. Y, incluso dentro de las empresas, tener un equipo con un fuerte vínculo ayudará a la gente a trabajar mejor juntos.

Conclusión

A las habilidades anteriores se las engloba a menudo en las llamadas “habilidades blandas” o “soft skills”, pero eso es reducir mucho su importancia. Estas habilidades te ayudarán tanto a escribir código como a ser un buen compañero de trabajo. Son mucho más importantes que conocer un idioma o un lenguaje nuevo y van mucho más allá de la tecnología.

Todas estas habilidades son muy importantes para trabajar como programadores y como personas. Dicho esto, nadie es perfecto y todo el mundo tiene espacio para crecer. Así que sigue creciendo, y trata de dar pequeños pasos para ser mejor en estas habilidades.

Fuente: Freecodecamp

Un comentario en “Las habilidades más importantes de un programador que no tienen nada que ver con la programación

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s