Mucha gente, cuando comienza a aprender a programar o está introduciéndose en el mundo de la programación, piensa que debe aprender ciertos lenguajes o frameworks y que para ser bueno en este sector su objetivo principal es dominar una tecnología concreta.
Es cierto que son puntos relevantes, pero no es realmente lo más importante.
¿Qué es REALMENTE la programación?
La programación se basa en un concepto muy sencillo (pero a la misma vez muy olvidado) al cuál no se le da la importancia que debería: la programación es resolver problemas utilizando la tecnología.
Un buen programador no es el que escribe el mejor código, o el que escribe código de forma más eficiente, o diseña y desarrolla las interfaces visuales más bonitas. Un buen programador es el que consigue entender el problema y resolverlo adaptándose al contexto o la situación concreta.
¿Qué NO es un buen programador?
Muy a menudo se piensa que dominar un cierto lenguaje de programación o framework es todo lo que se necesita para ser un buen programador. Es cierto que es una parte muy importante, y es cierto que tener esa habilidad hará que puedas resolver ciertos problemas específicos rápidamente, pero en la mayoría de los casos, en cuanto aparezca un problema que no se pueda resolver con esa herramienta, no podrás resolverlo, o quizás peor aún, intentarás resolverlo con la herramienta incorrecta.
Un buen programador piensa las soluciones antes de escribir una sola línea de código. Cuando está seguro que no va a gastar tiempo en escribir código que se va a eliminar porque no tenía el enfoque o la dirección correcta, entonces escribe líneas de código.
Por lo tanto, la programación es más pensar que teclear. Y para hacer esto, hay que aprender a pensar y analizar con mentalidad de programador.
Concepto de algoritmo
Se suele decir que en el mundo de la programación debemos aprender a pensar por pasos. Crear algoritmos. Un algoritmo sólo es una secuencia de tareas que se realizan una detrás de otra, para conseguir un objetivo final.
Algoritmo. Se dice algoritmo. No logaritmo. Son cosas diferentes.
Para explicar lo que es un algoritmo, generalmente se suele explicar el algoritmo de cambiar la rueda de un coche o hacer una receta de cocina. Para no hacer el mismo ejemplo, vamos a explicar el algoritmo de Invitar a una persona a ver una película:
- 1️⃣ Buscar la película que vas a ver
- 2️⃣ Llamar por teléfono e invitar a ver la película
- 3️⃣ Darte una ducha
- 4️⃣ Vestirte para estar presentable
- 5️⃣ Preparar popcorn
- 6️⃣ Atender la visita
- 7️⃣ Ver la película
El orden de estos pasos es importante. Por ejemplo, hay que hacer el paso 1️⃣ antes del 2️⃣, para comunicar la película que vamos a ver o anticiparnos y tener otras pensadas en el caso que la otra persona ya la haya visto. O por ejemplo, el paso 4️⃣ y el 6️⃣. No es lo mismo vestirte y recibir la visita, que recibir la visita y luego vestirte con el invitado mirando.
Además, también se podría entrar en detalles de planificación, como por ejemplo, realizar cuanto antes la llamada de teléfono, par dar tiempo a la persona a llegar a casa si vive muy lejos. Si la llamamos cuando hayamos preparado todo, en el punto 6️⃣, tardaría mucho en llegar, o se enfriarían los aperitivos.
Mentalidad de programación
Probablemente, el punto más importante de la programación se basa en estos detalles. Idear una buena estrategia para resolver el problema, adaptándose a los criterios o situaciones particulares y minimizando el tiempo y coste para llevarlo a cabo. Y para esto, fundamentalmente hace falta conocimientos y práctica.
Además, si tienes estos conceptos claros, da igual el lenguaje o framework en el que lo realices porque los pasos son los mismos (o al menos, muy similares).
El código es solo la herramienta final para comunicarle a la máquina cómo resolver ese problema, pero la programación se basa en cómo piensas, no solo en como escribes.