viernes, febrero 06, 2015

No cualquiera puede ser programador

Este texto lo tome de un foro de VFP en Español, cortesía del amigo Saul Piña:

No todo el mundo puede llegar a ser programador. La programación no es un asunto para cualquiera. Es una tarea muy especializada que requiere la combinación de actitudes, conocimientos y un ambiente correcto para poder desarrollarse. En este artículo se explica algunas razones. Comencemos por el principio:

Hay que tener pasión para resolver problemas
  • La programación de software es para el individuo que siente pasión por resolver problemas. 
  • La experiencia indica que no todo el mundo le agrada la idea de andar resolviendo problemas. 
  • El proceso de resolver problemas implica tener una mente proactiva, lista para el trabajo duro y constante
  • La mayoría de las personas son perezosas en este sentido.
Toma tiempo dominar este arte
  • El que piense que ser programador es cuestión de un evento, no está pensando correctamente o lo están desinformando deliberadamente.
  • Llegar a ser un programador eficiente es producto de un proceso de aprendizaje que tarda años.
  • La programación es un arte que se aprende en modo "prueba y error", consumiendo años de esfuerzo y energías.
  • En pocas palabras, requiere trabajo duro y constante para llegar al nivel de ser productivo.
Hay que tener la actitud correcta
  • El programador debe tener una actitud positiva, y al mismo tiempo, una mente tenaz.
  • El proceso de escribir un código fuente es complejo,  envuelve tener pendiente multitudes de detalles técnicos (sintaxis, variables, procesos, bucles, entradas, salidas, etc.).
  • La misma naturaleza de la tarea hace que cada paso sea un desafío. Aquí no existen atajos.
No existe un asunto más tedioso y aburrido que "debuggear" y luchar contra ese "sentimiento de impotencia" que surge cuando tenemos un código fuente que no parece compilar nunca, aun cuando el código luce estar perfectamente escrito. Sí, todos hemos pasado por esto, al final sólo faltaba un "punto y coma" o cerrar una llave para que el código compilara. Recientemente, leí en un ensayo de Paul Graham, que el verdadero programador disfruta el proceso de  "debuggear". No lo ve como una pérdida de tiempo sino que disfruta cada segundo hasta encontrar la solución. Yo creo que Graham tiene razón. Si no te gusta "debuggear" quizás no sientes pasión por este arte.

Pensar "outside the box"
  • Para aprender programación es necesario pensar de manera abstracta.
  • El pensamiento abstracto es fácticamente demostrable que no le es atractivo al "Layman" o "Average Joe"
Recuerdo perfectamente en la universidad aprendiendo POO (Programación Orientada a Objetos) cuando el profesor explicaba los términos: herencia, polimorfismo, objeto, método, clase, etc. La mayoría de los estudiantes no captaban los conceptos. Era como si se les hablara en Mandarín. La abstracción requiere dos cosas:
  • (1) el método correcto de enseñanza
  • (2) una mente fértil.
Planificación y diseño, luego ejecución
  • Codificar es una cosa, planificar y diseñar la solución de un problema es otra cosa muy diferente.
  • La mayoría de las personas que he visto fracasar en el intento de convertirse en programadores tienen una característica en común: no tienen una sólida base de conocimientos en matemáticas y algoritmos.
  • Es cierto que la programación es un arte, pero al mismo tiempo también es una ciencia.
  • Es una combinación de creatividad y estructura mental. No están separadas, al contrario, coexisten indistintamente.
  • Para resolver problemas computacionales es necesario pensar "outside of the box", pero para aplicar esa solución creativa, y llevarla a la realidad, es necesario orden y estructura. Es aquí donde muchos fracasan.
  • No es posible llegar a una solución eficiente si no contamos con un algoritmo que aproveche de la mejor forma los recursos computacionales disponibles.
Hay que ser curioso. La mayoría de los programadores competentes son personas muy curiosas. Les gusta aprender constantemente y averiguar el porqué de las cosas. De hecho, la mayoría que conozco son autodidactas y no paran de aprender. La programación no es estática. Es una profesión que viene en constante evolución (nuevos lenguajes, IDE, Frameworks, etc.). Si no eres curioso y dependes de otras personas para aprender, la programación no es para ti.


No hay comentarios: