Aprender a programar no es exactamente fácil, pero tampoco es lo más difícil del mundo. La dificultad no tiene tanto que ver con entender la sintaxis de un lenguaje, o los conceptos básicos de la programación en general, sino con aprender a manejar distintos problemas que van a ser encontrados de forma inevitable mientras escribamos código. La sintaxis y los conceptos básicos son cosas muy sencillas y que resultan incluso muy intuitivas, porque en general tienen que ver con la vida cotidiana de cualquier persona que haya aprendido a leer y escribir, sin importar demasiado qué tan bien lea o escriba.
Los problemas más típicos tienen que ver con cómo manejar el código que producimos nosotros mismos y que producen otros programadores, con cómo se relaciona una pieza de código con otra, qué rompe con nuestros esquemas, qué cosas necesitamos crear a medida para que algo que no cumple con ciertos parámetros aún pueda ser integrable con lo que hacemos, qué cosas necesitamos reescribir o descartar por completo, cuándo es necesario dejar de usar algo a lo que le pusimos muchísimo empeño, etc. Tiene que ver tanto con cuestiones técnicas o prácticas como psicológicas o emocionales. Con la manera en que vemos el mundo, con qué tanto pensemos que tenemos que amoldarnos al mundo, o que el mundo tiene que amoldarse a nosotros. Tiene que ver con el tipo de decisiones y perspectivas que tomamos en nuestra vida diaria por fuera de nuestra actividad de programadores. Es un error creer que aprender a programar solamente consiste en aprender un conjunto cerrado de reglas cuya aplicación no varía ni depende de factores externos a la programación misma.
Mucha gente tiene el preconcepto de que la programación es un arte complicado. Quizás porque hay que lidiar con cálculos, condiciones, diferentes tipos de entidades y datos, distintos lenguajes y tecnologías, mensajes de errores que a veces resultan incomprensibles, etc. Todos esos son factores mecánicos, de fácil comprensión, porque son muy parecidos o tienen que ver con cosas que aprendimos durante los primeros años de nuestra educación. Incluso existen casos de gente que aprende a programar mientras aprende a leer, y no son necesariamente genios, sino que crecieron en un contexto en el que la programación era un factor familiar, como quienes aprenden a tocar un instrumento en sus primeros años.
Una vez que aprendemos estos conceptos primordiales, los incorporamos a nuestra vida cotidiana muy rápidamente, e incluso contamos con herramientas que nos lo facilitan si no somos tan memoriosos u ordenados como para retenerlos a perpetuidad. Una vez pasado el preconcepto de que todo es tan difícil y que incorporamos los conceptos básicos es que aparecen los verdaderos problemas, los que pueden resultar terribles o interesantísimos de resolver, y es ahí donde empieza el verdadero trabajo del programador, que no implica problemas muy diferentes de los de la vida cotidiana.