En nuestra introducción, establecimos que programar consiste en dar instrucciones a un ordenador. Ahora, profundizaremos en la parte más crucial del proceso: ¿Cómo diseñamos esas instrucciones antes de escribir una sola línea de código? La respuesta está en un concepto fundamental: el algoritmo.
Dominar el arte de crear algoritmos es lo que diferencia a un simple codificador de un verdadero programador.
¿Qué es un algoritmo? 📜
Un algoritmo es una secuencia de pasos finitos, bien definidos y no ambiguos, diseñados para resolver un problema específico.
Esta definición puede sonar muy técnica, pero la realidad es que usamos algoritmos constantemente en nuestra vida diaria. Una receta de cocina es un algoritmo perfecto. Piénsalo: tienes un objetivo (cocinar una tortilla de patatas), unos datos de entrada (patatas, huevos, aceite, sal) y una secuencia de pasos para conseguirlo.
- Paso 1: Pelar y cortar las patatas.
 - Paso 2: Freír las patatas en aceite a fuego medio.
 - Paso 3: Batir los huevos en un bol.
 - Paso 4: Mezclar las patatas con el huevo batido.
 - Paso 5: Cuajar la mezcla en la sartén.
 
Si los pasos están claros y en el orden correcto, el resultado será una tortilla comestible. Si un paso es ambiguo o falta, el resultado será impredecible. En programación ocurre exactamente lo mismo.
Las tres características de un buen algoritmo ✅
Para que un conjunto de instrucciones pueda ser considerado un algoritmo válido, debe cumplir tres propiedades esenciales:
- Preciso: Cada paso debe estar descrito de forma clara y sin dejar lugar a la interpretación. En nuestra receta, la instrucción «echa un poco de sal» es ambigua. Un algoritmo informático necesitaría algo como «añade 5 gramos de sal». La máquina no puede suponer nada.
 - Determinista: Si se sigue el algoritmo varias veces con los mismos datos de entrada, el resultado debe ser siempre el mismo. Si nuestra receta de tortilla, con los mismos ingredientes y pasos, produjera un día una tortilla y al siguiente una paella, no sería un algoritmo determinista.
 - Finito: El algoritmo debe tener un final. Debe terminar después de un número concreto de pasos. Una instrucción como «batir los huevos indefinidamente» rompería esta regla. Un programa debe siempre llegar a una conclusión, ya sea mostrando un resultado o finalizando su ejecución.
 
¿Por qué es tan importante pensar en algoritmos? 🧠
En la entrada anterior distinguimos entre programar (diseñar la solución) y codificar (escribir el código). El diseño de algoritmos es el corazón de la fase de programación.
Dedicar tiempo a definir un buen algoritmo antes de empezar a codificar nos aporta enormes ventajas:
- Aporta claridad: Te obliga a entender el problema en profundidad y a dividirlo en partes más pequeñas y manejables.
 - Aumenta la eficiencia: Para un mismo problema pueden existir múltiples algoritmos. Pensar en la solución te permite encontrar la más eficiente (la que resuelve el problema más rápido o usando menos recursos).
 - Es independiente del lenguaje: Un algoritmo es una idea, una lógica. El mismo algoritmo para ordenar una lista de números se puede implementar (codificar) en Java, Python o cualquier otro lenguaje. La lógica es universal.
 
Un programador invierte la mayor parte de su tiempo pensando en la mejor manera de resolver un problema, no simplemente tecleando. El código es solo la herramienta para materializar esa solución.
Conclusión
Ya has interiorizado el concepto más importante del pensamiento computacional. Un algoritmo no es más que el plan, la receta o el mapa que diseñamos para que un ordenador llegue a la solución de un problema.
Recuerda sus tres reglas de oro: debe ser preciso, definido y finito.
Ahora que ya sabemos cómo estructurar nuestras ideas en forma de algoritmo, el siguiente paso lógico es aprender a representar esas ideas de una forma estandarizada. De eso hablaremos en la próxima entrada, cuando exploremos el pseudocódigo.
¡Nos vemos en el próximo post!


Deja una respuesta