¿Hay algún beneficio en comprender sus herramientas, en lugar de simplemente saber que existen?
Sí, por supuesto que sí. Tomando un ejemplo trivial, ¿no crees que hay un beneficio en saber cuál es la diferencia List (o la implementación de matriz dinámica equivalente de tu idioma) y LinkedList (o el equivalente de tu idioma)? Es muy importante saber que uno tiene un tiempo de acceso aleatorio constante, mientras que el otro es lineal. Y uno requiere N copias si inserta un valor en el medio de la secuencia, mientras que el otro puede hacerlo en tiempo constante.
¿No cree que es una ventaja entender que el mismo algoritmo de clasificación no siempre es óptimo? Eso para datos casi ordenados, quicksort apesta, por ejemplo? Simplemente llamando a Sort() y esperando lo mejor puede volverse ridículamente caro si no entiendes lo que sucede bajo el capó.
Por supuesto, hay muchos algoritmos que probablemente no necesite, pero aún así, el solo hecho de entender cómo funcionan puede hacer que le resulte más fácil encontrar algoritmos eficientes para resolver otros problemas no relacionados.
Aprender esos algoritmos le hace a su cerebro lo que hace el gimnasio para sus músculos. – givanse
Donde el uso práctico de esos músculos será ... mover la casa quizás. Algo que no haces a menudo, pero desearía tener los músculos cuando realmente se trata de eso. – whatnick