¿Te has preguntado cómo un programador entiende el lenguaje de las computadoras?
¿Cómo aprenden esos montones de caracteres que las computadoras traducen mágicamente para presentarte una página web o una nueva aplicación para tu teléfono?
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 a los principiantes.
Compara el desarrollo de un software con armar un rompecabezas: necesitas descifrar cómo conectar una pieza de tu programa con otra, y no siempre es fácil.
Te sorprenderías de la cantidad de desarrolladores que aprendieron a programar por su cuenta.
Es el caso de Linus Torvalds, creador de Linux, o de Daved Heinemeier Hansson, creador de Rails Framework.
Por supuesto, están quienes se prepararon en la universidad. Tal es el caso de Guido Van Rossum, creador del lenguaje Python, y Bjarne Stroustrup (creador de C++).
Sin duda alguna, la universidad te empuja a aprender cosas, pero en mi opinión, puedes enseñarle a alguien las herramientas, comandos y sintaxis para realizar un programa sencillo, pero eso no da la lógica o el ingenio, por lo que creo que hay cualidades muy importantes que todo programador debe tener y te los mencionaré.
1. Lógica e ingenio
Peter Norvig, director de Investigación en Google y autor de varios libros importantes de inteligencia artificial, siempre sintió que aprendió más por su cuenta aún cuando hizo cursos en la secundaria y en la universidad.
Por supuesto, otros programadores pueden tener una opinión distinta sobre una cualidad que se deba tener. Para mí son básicamente esas: Lógica e Ingenio.
Siempre recuerdo un profesor en la universidad que decía:
“La lógica no se aprende, se desarrolla.”
De hecho, Peter Norvig no cree que sea una sola habilidad, pero de escoger una él diría: Concentración.
2. Pensar con claridad
Bjarne Stroustrup, agregaría la habilidad de pensar con claridad, pues opina que un programador tiene que comprender los problemas y expresar soluciones.
3. Capacidad para transmitir ideas
Una de las opiniones que me pareció más interesante fue la de Steve Yegge, quien alega que no se puede llegar muy lejos como programador si no puede transmitir las ideas a otras personas de manera efectiva.
Así que para él, son las habilidades para comunicarse en forma escrita y verbal.
Su argumento me hizo reflexionar, ya que en mi universidad los estudiantes de otras carreras tenían algunos prejuicios hacia los de Informática. Generalmente, un estudiante de este campo se la pasa pegado a una computadora más que socializando entre los pasillos.
Por lo que sé que no todos los programadores cuentan con esa habilidad de comunicación.
Volviendo a la opinión de Steve Yegge, sí considero que esa habilidad de comunicación es importante cuando se está explicando lo que hace un programa, para qué sirve, por qué deberías tener esta aplicación, qué beneficios te proporciona.
Puede estar muy bien programado, pero si el cliente o usuario no entiende para qué usarlo, pierde potencial.
La comunicación es importante cuando se trabaja en equipo, también a la hora de compartir ideas y pedir apoyo cuando se está estancado.
Pero aunque es importante, no la elijo como fundamental para un programador, como sí lo hace Steve Yegge.
4. Imaginación y ganas de aprender
Le pregunté a mis compañeros desarrolladores: ¿Cuál es la cualidad o habilidad más importante que debería tener un programador?
Para nuestro Desarrollador Web, Jahiezer Indriago, es la Imaginación.
José Carrero, Desarrollador Full-Stack, cree que todo programador debe tener la capacidad de «entender que no sabes nada» y ganas de leer manuales.
En el caso de Daniela Ruiz, Desarrolladora Back-End, sería que le guste aprender.
Y en palabras de nuestro CEO, Juziel Indriago:
“La mejor cualidad es buscar hacer las cosas de la mejor manera posible; que eso te lleve a investigar y descubrir nuevos patrones de diseño o formas de hacer las cosas. No tener miedo a probar cosas, hay que ser valiente”.
Diferentes enfoques, ¿no creen?
Si hay algo en común en todas las respuestas, es que hay mucho más en la programación profesional que solo escribir código.
Para concluir, les dejo la reflexión de Dave Thomas, autor de El programador pragmático, Programación en Ruby y otros grandes libros de programación:
«¿Cómo aprendí a programar? La respuesta real es que todavía estoy aprendiendo a programar».
De acuerdo con Thomas, cualquier buen desarrollador sigue aprendiendo durante toda su carrera.
Un programador debe estar al día
Coincido con Thomas. Cada vez que tomamos una nueva tecnología aprendemos un nuevo lenguaje, usamos una herramienta nueva para programar, en fin… estamos aprendiendo.
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.
Además, como he comprobado aquí en Apok, los buenos programadores también refinan sus técnicas y prácticas durante los años.
Por último, si quieres leer la entrevista completa a los programadores nombrados en este artículo puedes visitar Arandasoft.
¿Y tú que piensas? ¿Estás de acuerdo con algunas de estas opiniones?