Veo muchos más beneficios en el aprendizaje de patrones de diseño y anti-patrones,
que se utilizan mucho.
Desde su punto de vista, esto es ciertamente cierto y muchas aplicaciones no son realmente pesadas en algoritmos. Pero una gran cantidad de aplicaciones requieren un buen conocimiento sobre algoritmos y estructuras de datos, por ejemplo, juegos o aplicaciones logísticas. Esas aplicaciones a menudo requieren su propio algoritmo para encontrar una ruta más corta o llenar una mochila, no puedes usar una genérica.
Sé que la web está llena de artículos que indican profundamente que "el código
es un algoritmo ", pero ¿cuándo fue la última vez que alguien escribió quicksort
algoritmo en tal aplicación?
Ese no es el punto. La mayoría de la gente no va a volver a implementar quicksort de nuevo. Pero quicksort demuestra algunos de los conceptos más fundamentales del diseño de algoritmos. Si entiende Quicksort, puede aplicar este tipo de conocimiento a otros problemas. Como se indicó anteriormente, no todos los algoritmos se pueden usar de forma genérica. En el mundo real, a menudo tiene que crear algoritmos personalizados para sus problemas, que se crean con las mismas técnicas que, por ejemplo, las de uso rápido.
Y esto solo puede hacerse con un conocimiento fundamental sobre esas técnicas de algoritmo y estructuras de datos.
El día en que te topes con un problema de este tipo o con un cuello de botella en el rendimiento en alguna rutina, podrás resolverlo. Y tarde o temprano habrá uno. He visto desarrolladores de CRUD que luego simplemente dijeron "No es posible", cuando, de hecho, fue bastante fácil de resolver.