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.

Advertisement

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.

Advertisement

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.

Advertisement

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

Advertisement

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.

Advertisement

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.

Advertisement

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.

Advertisement

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

Advertisement

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.

Advertisement

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.

Im√°genes por Allan Ajifo, Sebastiaan ter Burg, Liza, Lachlan Hardy.

***

Psst! también puedes seguirnos en Twitter, Facebook o Google+ :)