Hay mucho más en la programación profesional que solo escribir código. Desde trabajar con un equipo hasta resolver problemas de versiones, no llegarás a las grandes ligas sin otras herramientas críticas. Te preguntamos, y a otros desarrolladores profesionales, qué habilidades deberías tener, y esto es lo que aprendimos.
Con todo lo que se dice acerca de aprender a escribir código, es fácil pensar que saber un lenguaje de programación es todo lo que se requiere en un desarrollador profesional. Sin embargo, como en otros trabajos, se necesita más de una habilidad para ser genial. No podemos listar todo lo que cada programador necesita, pero aquí nombramos algunas de las habilidades más importantes (además de escribir código) en las que deberías trabajar si quieres ser un buen desarrollador.

Aprende a comunicarte

Mientras algunos medios retratan la programación como un trabajo solitario, la realidad es que requiere de mucha comunicación y trabajo con otros. Si trabajas para una compañía, serás parte de un equipo de desarrollo y esperarán que te comuniques y trabajes bien con otras personas.
Sin embargo, Jeff Bargmann, desarrollador de Fences y Bins, apunta que saber cómo hablar y escribir claramente y convincentemente es aún más importante para el desarrollador independiente:
Nada en la escuela me preparó para la cantidad de comunicación escrita que tenía delante. (Nosotros sólo escribimos código, ¿no?) En tu carrera profesional – si quieres moverte hacia arriba en algún momento– pasarás mucho tiempo comunicándote claramente, concisamente y convincentemente– pensando desde la perspectiva del que recibe el mensaje – en correos a colegas, gerentes, clientes/socios y con suerte algún día con ejecutivos. Y como estás acostumbrado a hacer las cosas al doble de rápido que otros (somos inteligentes, ¿no?) será frustrante, porque te tomará el doble de tiempo hacerlo bien. Como un desarrollador independiente, esta habilidad es indispensable– por necesidad lo aprenderás en el camino.
Jeff también tiene algunos consejos para desarrollar tus habilidades de comunicación:
Para eliminar este obstáculo tendrás que aprender sobre la marcha, querrás práctica en el mundo real (¡Justo como mejoraste tu código!). Publica artículos cortos, lee correos electrónicos en voz alta, enfrenta las críticas y sobre todo, crea una experiencia para ti mismo; justo como lo hiciste con tus proyectos de desarrollo.
Si no tienes la oportunidad de desarrollar c0n un equipo en este momento, considera tomar clases de comunicación, discurso y escritura para aprenderlo de la mejor manera. Lynda ofrece una gran cantidad de cursos de comunicación si estás aprendiendo fuera del salón de clases.

Mejora tus habilidades de resolución de problemas

Muchos desarrolladores afirman que entender un lenguaje de programación es solo una pequeña parte de programar. Saber resolver problemas es otra habilidad importante que muchas veces hace falta en los principiantes. Compara el desarrollo de software con armar un rompecabezas: necesitas descifrar cómo conectar una pieza de tu programa con otra, y no siempre es fácil. Nuestro lector Jsimon lo explica:
He conocido personas que tienen dominio completo de un lenguaje de programación, pero no pueden lograr salir de una bolsa de papel. El mejor ejemplo sucedió en la universidad cuando trabajaba en un proyecto en equipo. Me pidieron que revisara una parte del código de alguien más porque esta persona no podía lograr conectarlo al servidor. Nunca estableció un puerto. Y había estado tratando de resolverlo por una semana. Entonces, existen personas que pueden resolver problemas y simplemente no tienen comprensión del lenguaje.
Sin embargo, resolver problemas es una habilidad difícil de aprender. La práctica es la clave aquí. Toma proyectos pequeños como desarrollar aplicaciones para tomar notas, calculadoras o cualquier cosa que te interese. Cuando lo hagas, enfócate en la lógica detrás del código, aprende a pensar como un computador, en lugar de solo entender el lenguaje.
Aprender cómo funciona un ordenador por adelantado también ayuda. Este consejo viene de nuestro lector Jacobm001:
La resolución de problemas es una gran parte de lo que hacemos. Los computadores son raros, y usualmente necesitarás aprender de nuevo lo que sabes acerca de los problemas. Para ser efectivo, necesitas entender cómo opera un computador y entender cómo el CPU procesa la información. Personalmente, odio ensamblar, pero estoy agradecido de haber tomado un curso enfocado precisamente en eso. Los programadores que saben cómo ensamblar un ordenador tienen una mejor idea de cómo implementar cosas.
Como Jsimon dijo, saber cómo escribir código y resolver problemas para conectar las piezas es clave. Cuando comiences a desarrollar programas reales, toma un enfoque sistemático para resolver los problemas que enfrentarás.

Empieza a aprender control de versiones de inmediato

Si estás en la Universidad, pronto empezarás a trabajar en equipo en tus clases de programación para desarrollar proyectos. WindowsSVN y GitHub son dos ejemplos de herramientas de desarrollo que los equipos utilizan para trabajar juntos al crear y actualizar aplicaciones de código abierto. Estas están disponibles para cualquiera, pero las compañías usan Subversion y Apache SVN, entre otras. Deberías llegar a un trabajo entendiendo lo básico de cómo trabajan estos sistemas para que puedas ejecutarlos con tus compañeros de equipo. El aprendizaje requiere de tiempo y práctica, así que te quedarás atrás si entras a un trabajo sin saber usar por lo menos una de ellas.
La única manera en la que serás experto de esos sistemas es la práctica. Si estás en la universidad, llegará el día en el que trabajarás en un equipo grande con un objetivo en común. Cuando el momento llegue, pide permiso para usar GitHub u otra herramienta aunque no sea necesario. Encuentra un equipo para trabajar si estás aprendiendo en casa, puedes unirte a un proyecto dentro de la plataforma o buscar un grupo de personas con las que querrías comenzar uno nuevo.

Desarrolla destreza para el aprendizaje

La tecnología siempre está evolucionando, y con ella, debería evolucionar la base de conocimientos de un desarrollador. Si quieres seguir siendo relevante en tu área, es importante mantenerte al día con los nuevos lenguajes de programación, software y hardware. El lector Wakers01 lo explica:
... estarás aprendiendo nuevos lenguajes, tecnologías y herramientas con una frecuencia impresionante. Deberás estar dispuesto a examinar nueva tecnología, analizar sus méritos y desventajas, y asimilarlo rápidamente. Nótese que dije "asimilar" y no "aprender". Me refiero a que debes absorber, entender, e integrar esto a tus habilidades, no solo adquirir un nuevo conocimiento acerca de cómo trabaja x cosa. No son solo lenguajes de software y herramientas, también tendrás que aprender como operan los negocios y cómo los usuarios trabajan con un negocio. Mientras puedas mantener la emoción de aprender cosas nuevas, estarás bien.
Existen muchas cosas que puedes hacer para aprender habilidades nuevas rápidamente. Por ejemplo: usarás tu memoria más eficientemente si te tomas el tiempo de aprender cómo funciona primero. Aprender también involucra comprensión, así que además de los consejos de comunicación que te dimos anteriormente, enfócate en mejorar tu comprensión de lectura. Así podrás leer documentos de tecnología y otros recursos con facilidad. Entiende que no serás capaz de memorizarlo todo, así que tener un buen sistema de notas y crear índices para libros son buenas maneras de mantenerte organizado y encontrar la información que necesitas.
Empieza con lo básico: mira el aprendizaje como una habilidad que necesitas dominar. Una vez que lo hagas, serás mejor con la tecnología y te mantendrás delante de la competencia en tu área.
Hay mucho más en la programación que solo sentarse en un escritorio a escribir código. Si entiendes eso desde ahora, tendrás mayor oportunidad de ganar habilidades críticas que los empleadores y clientes necesitan.