No todos pueden programar

Quiero ser claro, decir que no todos pueden programar, no impide que brinde mi apoyo cualquier iniciativa que intente acercar el proceso de creación de software a las masas. Es más, incluso creo que en la enseñanza de la programación como una materia básica en las escuelas equiparándola con matemáticas, lenguas, biología, física, etc.

Ahora bien, de ahí a que todo el mundo aprenda programación; ¡No!

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 voy explicar algunas razones de mi teoría.

HAY QUE TENER PASIÓN PARA RESOLVER PROBLEMAS

La programación es para quien 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

El que piense que ser programador es cuestión de un evento, no está pensando correctamente; es producto de un proceso de aprendizaje que tarda años. 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 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.

REQUIERE SERENIDAD Y PACIENCIA

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 que no parece funcionar nunca, aun cuando el código luce estar perfectamente escrito.

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 “Juanito Pérez”.

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, DISEÑO Y 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, algoritmos y lógica.

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.

Por esto establezco que la programación no es para todo el mundo. Ciertamente, puedo escribir más razones, pero en realidad estas son las que más peso, según mi juicio, tienen para exponer mi punto.

¿TÚ COMO APRENDISTE A PROGRAMAR?

AUTOR: Iván Miranda
@deivanmiranda
Desarrollador PHP Sr.
PengoStores

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>