Seremos claros desde el principio…
Apoyamos las iniciativas tipo The Hour of Code donde a jóvenes se les enseña al arte y oficio de la programación. También estamos a favor con la enseñanza de la programación como materia básica en las escuelas equiparandola con matemáticas, lenguas, biología y física.
Estas iniciativas de enseñanza masiva de la programación son una herramienta para que los jóvenes:
(1) Se interesen por las ciencias de la computación.
(2) Muchos que no lo sabían se den cuenta que son buenos para las computadoras.
Sí, cualquiera con el conocimiento y el esfuerzo necesario puede aprender a programar. Ahora bien, de ahí a cualquiera pueda convertirse en programador profesional…
¡jamas!
No todo el mundo puede llegar a ser programador profesional.
El programador profesional es aquel que vende su tiempo y talento a cambio de dinero.
El amateur o aficionado es aquel que programa casualmente o por hobby.
No es lo mismo ni es igual programar por hobby que de manera profesional.
La programación como profesión no es un asunto para cualquiera.
La programación profesional es una tarea muy especializada que requiere la combinación de actitudes, conocimientos y un ambiente correcto para poder desarrollarse.
Analicemos el porqué…
[1] Tienes que tener pasión para resolver problemas
La programación es un trabajo hecho 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.
[2] Requiere una inversión considerable de tiempo y esfuerzo dominar este arte
Quien piense que puede convertirse en programador profesional de la noche a mañana, no está pensando correctamente, o peor aún, lo están desinformando deliberadamente.
Llegar a ser un programador eficiente, es decir, escribir código constante y rápido 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.
[3] Se requiere la actitud correcta
La persona que quiere ser programador profesional debe cumplir dos requisitos indispensables:
a) Una actitud positiva
b) Una mente tenaz
El proceso de escribir código que resuelva problemas del mundo real es complejo; envuelve tener pendiente multitudes de detalles técnicos (sintaxis, variables, procesos, bucles, entradas, salidas, etc.).
La naturaleza de la tarea hace que cada paso sea un desafío.
No existen atajos.
No existe un asunto más tedioso y aburrido que debuggear código y luchar contra ese sentimiento de impotencia que surge cuando tenemos un código que parece no compilar nunca; aun cuando el código luce estar perfectamente escrito.
Todos hemos pasado por esto:
Inviertes una cantidad considerable de tiempo buscando el error en tu código y al final te das cuenta que faltaba un punto y coma (;) o cerrar una llave para que el código compilara.
Paul Graham en uno sus ensayos dice que el verdadero programador disfruta el proceso de debuggear. El verdadero programador no ve este proceso como una pérdida de tiempo sino que disfruta cada segundo hasta encontrar la solución.
Creemos que Graham tiene razón.
Si no te gusta debuggear; coger esa pela de durar horas leyendo código buscando donde el maco (bug) que no permite a tu código ejecutarse correctamente, entonces, quizás no sientes pasión por este arte.
[4] Es necesario manejar la frustración
La programación suele ser un oficio que envuelve bastante frustración:
(a) La documentación está incomplementa
(b) El programador anterior escribió un código espagueti
(c) El manager te pide que sigas indicaciones que para ti no tienen sentido
Y la lista continúa…
No todo el mundo tiene la paciencia y el carácter para lidiar con estos asuntos que, en realidad, son el día a día de cualquier trabajo de un programador profesional.
[5] Pensar diferente
El proceso de aprendizaje de la programación requiere el uso constante del pensamiento abstracto.
Sí.
Usted tendrá que pensar en términos de clases, objetivos, funciones, métodos, variables y demás elementos que no existen en el mundo físico, pero sí existen y se relacionan en el mundo virtual.
Para la persona común el pensamiento abstracto no difícil y complicado.
¿Quieres comprobarlo?
Solo ve a la escuela donde estudia tu hijo y averigua cuántos niños tiene dificultades en aprender matemáticas.
En la universidad muchos estudiantes de Ingeniería en Sistemas o Ingeniería de Software tienen dificultades en aprender POO (Programación Orientada a Objetos).
Cuando el profesor explica los términos herencia, polimorfismo, objeto, método, clase, etc., la mayoría de los estudiantes no asimilan los conceptos inmediatamente.
Es como si se les hablase en Mandarín.
La abstracción requiere dos condiciones fundamentales para ser aprendida:
(1) El método correcto de enseñanza
(2) Una mente fértil.
[6] Planificación y diseño, luego ejecución
Escribir código 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 hemos visto fracasar en el intento de convertirse en programadores profesionales 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.
Requiere la combinación de creatividad y estructura mental. Estas condiciones no están separadas, al contrario, coexisten indistintamente.
Resolver problemas computacionales requiere creatividad.
La aplicación de la solución y su implementación en la realidad requiere 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.
[7] Hay que ser curioso
La mayoría de los programadores competentes son personas muy curiosas.
Les gusta aprender constantemente y conocer el porqué de las cosas. De hecho, la mayoría de los programadores profesionales competentes que conocemos son autodidactas; no paran de aprender.
La programación no es una profesión estática. Es campo que evoluciona constantemente. Todos los días hay un nuevo lenguajes, IDE, Frameworks, etc.
Si no eres curioso y dependes de otras personas para aprender, la programación no es para ti.
Conclusión
Estas son nuestras siete razones del porqué la programación no es una carrera para todo el mundo.
Ciertamente, podríamos exponer más razones que avalan nuestra tesis, pero en realidad, a nuestro juicio estas son las que más peso tiene para exponer nuestro punto.
Quisiéramos conocer tu opinión sobre este tema.
Por favor responde la siguientes preguntas en la sección de comentarios.
[a] Si has intentado aprender programación y has fracasado… ¿Cuál crees tú que han sido las causas?
[b] ¿Estás a favor o en contra de nuestras afirmaciones? ¿Por qué?
Tus opiniones son importantes para nosotros. Por favor, deja tu comentario aquí debajo en este post.