Wikipedia define un “algoritmo” como “una secuencia autónoma de acciones a realizar. ”
Entonces, en ese sentido, sí, porque todo lo que escribe, cada función, incluso el cuerpo de una declaración “si” o “mientras”, es un “algoritmo”.
Pero cuando usamos el término “algoritmo” usualmente estamos pensando en cosas como las mejores técnicas de clasificación (clasificación de montón a menos que tenga una buena razón para usar otra), el método para encontrar la raíz cuadrada de un número arbitrario (use el método Newton- Método Raphson), una búsqueda binaria, etc.
- ¿Las estructuras de datos y los algoritmos son universales en todos los idiomas?
- Cómo traducir mis pensamientos en código
- ¿Cuáles son las aplicaciones de las tablas hash?
- ¿Cuáles son algunos ejemplos del mundo real de máquinas simples?
- ¿Qué tan sofisticados son los algoritmos involucrados en el control de crucero en los automóviles?
También hay muchos algoritmos en cosas como IA, reconocimiento de patrones, cosas que hacen que los autos autónomos funcionen, etc.
Mi consejo es que se lo dejen a los informáticos. Hay personas que hacen ese tipo de pensamiento profundo. Y sus resultados son, en su mayor parte, ya están claramente vinculados en bibliotecas (por ejemplo, las bibliotecas de plantillas estándar de C ++ y las clases en java.util).
Cuando crea una interfaz de usuario, va a pensar en “¿qué quiere hacer el usuario? ¿Cómo le presento eso? (*) ”Tiende a ser muy ad hoc y no se basa mucho en algoritmos empaquetados. En la medida en que use los algoritmos empaquetados, estarán bien envueltos en las clases de MFC, varias bibliotecas de JavaScript (si presenta su interfaz de usuario en un navegador web), etc.
Lo difícil de la interfaz de usuario es (a) descubrir lo que el usuario realmente quiere, a menudo diferente de lo que dice que quiere, (b) presentar las opciones y acciones de una manera que tenga sentido para el usuario, (c) las interacciones ( +) entre las piezas de la interfaz de usuario.
(*) botones? listas ordenables? ¿Listas deplegables? líneas de texto o áreas? etc.
(+) El usuario hace algo, por lo que cambia otros campos de la IU visible para reflejar eso. Pero muchas IU integradas tratarán el cambio que su programa realizó _exactamente_ igual que si el usuario hubiera cambiado ese campo. Para que pueda obtener una cascada de “eventos”, y si no tiene cuidado, se encontrará en un bucle interminable respondiendo a ellos. Diseñar alrededor de eso es, en mi experiencia, la segunda parte más difícil de la interfaz de usuario. (La parte más difícil es obtener (a) y (b) arriba a la derecha, o al menos lo suficientemente bien como para que el usuario no rechace todo.)