Los algoritmos no se vuelven “complejos”, simplemente lo son. Todo un algo es un conjunto de pasos a seguir para que algo suceda. En este sentido, todo lo que cualquiera puede hacer (más allá de las ideas de CS) es en realidad un algoritmo. Abre la puerta de tu refrigerador, ese es un algoritmo, sube a un autobús, ese es otro algoritmo, camina a la tienda de la esquina, lo has adivinado, otro algoritmo.
La mayoría de las cosas ya son muy complejas. Definitivamente, la mayoría de los programas escritos para ejecutarse en computadoras son demasiado para que una sola persona los recuerde y comprenda completamente a la vez. Es por eso que los programadores tienden a dividir los algoritmos en partes más pequeñas. Hacer que cada parte sea más fácil de comprender e implementar.
Esto no es algo “nuevo”. De hecho, desde el principio, esta era una técnica para evitar tener que pensar en todo de una vez. Y también es una técnica para hacer que la traducción al lenguaje de la computadora sea un proceso más simple. Es toda la idea detrás de la programación, los lenguajes son simplemente herramientas utilizadas al hacer estas cosas.
- Cómo abordar y resolver problemas complejos de codificación o algoritmos
- ¿Cuál es la diferencia entre la optimización de llamadas de cola y la optimización de recursión de cola?
- ¿Los números en pi imitan una distribución aleatoria? Si es así, ¿cómo es esto compatible con el uso de algoritmos para generar los números?
- ¿Cómo se puede calcular la mediana de una gran variedad de enteros sin mantener todos los valores en la memoria?
- ¿Cuál sería el mejor enfoque para encontrar la distancia entre dos nodos de un árbol?
¿Para el futuro? En realidad, podría ser “más fácil” a medida que se construyan y compartan más porciones de algoritmos de propósito general. Comienza a ser más una cuestión de buscar uno con el ajuste adecuado para su “problema”, en lugar de diseñarlo desde cero. Y sin embargo, esto tampoco es algo nuevo. Ha sido el principio rector de la reutilización de código.