← Volver a la lista de posts

¿Por qué es tan difícil aprender a programar?

Muchos dirían que aprender a programar es relativamente fácil. Sin embargo, después de ver a cientos de personas intentarlo, es claro que es un proceso muy frustrante para la mayoría. ¿Qué hace que la programación sea tan difícil de aprender para algunas personas y tan fácil para otras?

Antes de responder esta pregunta, te voy a pedir el favor de ordenar los siguientes números de menor a mayor:

8, 10 y 5

Fácil ¿verdad? Ahora imagina que te pido escribir una serie de pasos que cualquier persona pueda seguir para ordenar cualquier grupo de números de menor a mayor.

En este punto es que se empieza a complicar porque ahora necesitas pensar de forma abstracta. Ya no estamos hablando de los números 5, 8 y 10, estamos hablando de cualquier grupo de números, no sabes cuáles ni cuántos!

De eso se trata la programación. Tomar un problema concreto (ordenar una lista de números) y crear una solución que se pueda generalizar (a cualquier lista de números). Pero esa no es la forma natural en la que pensamos, y de hecho es una de las razones por las que a muchas personas no les gustan las matemáticas!

Una posible forma de ordenar una lista de números es la siguiente:

  1. Busca el número menor de la lista.
  2. Táchalo
  3. Escríbelo debajo.
  4. Repite el proceso hasta que todos los números de la lista original estén tachados.
  5. Al final tendrás la lista ordenada debajo de los números tachados.

A esto se le conoce como un algoritmo: un proceso repetible para solucionar un problema específico.

Pero pensar de forma abstracta no es suficiente. Estamos asumiendo que la persona que repita este algoritmo sabe cómo buscar el número menor de una lista, sabe tacharlo, sabe que significa “escribirlo debajo” y sabe qué significa “repetir el proceso”.

Al computador le debemos decir qué significan cada uno de estos pasos. No sólo eso, primero debemos saber qué sabe el computador. Esta es la parte más fácil de la programación: saber cómo se define una variable, cómo hacer condicional, un ciclo, etc.

Lo difícil es mezclar lo que el computador puede hacer con nuestro pensamiento abstracto para solucionar un problema de forma genérica.

Aunque las matemáticas que se necesitan para programar son mínimas (sumar, restar, multiplicar y dividir son suficientes para muchos problemas), las personas que han estudiado matemáticas se les facilita aprender a programar hasta cierto punto porque están acostumbrados a pensar de forma abstracta, están acostumbradas a trabajar con ecuaciones.

Una ecuación no es más que una forma abstracta de pensar en números. Por ejemplo, la ecuación para sumar dos números es la siguiente:

a + b

a y b se pueden reemplazar por cualquier valor y el resultado es la suma de esos dos valores. Pero el simple hecho de pensar que a y b pueden ser cualquier número es todo un reto para las personas que no están acostumbradas a pensar de forma abstracta.

En programación siempre estamos pensando de forma abstracta. No necesariamente en números, pero sí de forma abstracta.

Un algoritmo es mucho más que una ecuación. Por ejemplo, sería extraño hablar de la ecuación para ordenar un grupo de números, por eso utilizamos un nombre más abstracto: un algoritmo.

Cualquier persona puede aprender a programar

Desarrollar este pensamiento abstracto es lo más difícil de la programación. Sin embargo, he visto a muchas personas desarrollarlo desde cero. No sólo eso, muchas de esas personas ahora tienen un empleo como programadores!

Es sólo que las personas que no están acostumbradas a esta forma de pensamiento abstracto les toma más tiempo que las personas que lo tienen más desarrollado.

Si quieres aprender a programar desde cero debes tener la actitud correcta. La motivación es importante, pero la motivación se agota fácilmente.

Necesitas desarrollar una disciplina mientras adquieres el gusto por la programación. Debes saber que vas a necesitas cientos de horas de aprendizaje para lograr hacer las cosas más básicas. Y debes saber que habrán momentos de mucha frustración.

Esa actitud, el tiempo suficiente y una buena guía es todo lo que necesitas para aprender a programar!

comments powered by Disqus