¿Cuál es la mejor manera de aprender la estructura de datos y el algoritmo para un programador promedio?

No estoy seguro de por qué la otra respuesta se derrumbó, pero la práctica es su objetivo final.

Si tiene problemas con esas preguntas de desafío, algo que encuentro útil es ir a Wikipedia y revisar toda su lista de estructuras de datos. Muchas veces, los problemas se vuelven mucho más fáciles cuando se sabe qué estructura usar, por ejemplo, una pregunta requiere conocer el valor mínimo de una lista en o (1), es probable que un minheap pueda ser útil.

A continuación, revise algunos algoritmos comunes e impleméntelos. Cosas como la búsqueda binaria son muy comunes. Recomiendo obtener el libro de la entrevista de Cracking the Coding para esto, tienen una gran lista de ejemplos y algoritmos para trabajar.

Una vez que sepa esto, encuentre un idioma que le guste y comprenda cómo implementarlo en ese idioma. Por ejemplo, si usa python, debe conocer el módulo bisect que le ahorra la implementación de la búsqueda binaria.

En este punto, estás listo para practicar problemas en Code Wars, Hacker Rank, etc. Si solo quieres ser bueno en las entrevistas, no hagas los problemas de tipo rompecabezas, busca el algoritmo general desafiado que parece preguntas de entrevista. Asegúrese de comprender sus códigos en grande y, después de enviarlos, busque las soluciones de otras personas. Definitivamente aprenderá de las soluciones de otras personas, ya que utilizarán algoritmos y estructuras más avanzadas. Una vez que descubra eso, comenzará a ser dueño de esas entrevistas e impresionará a todos sus entrevistadores.

Comience desde lo más básico.

Comience con matrices, pilas, lista vinculada, cola.
Comprenda los conceptos y piense dónde se utilizarían estas estructuras de datos en problemas del mundo real por qué elegiría una estructura de datos en particular.

Por ejemplo, si tiene que almacenar y acceder a una lista de números o cadenas, ¿qué estructura de datos usaría? una matriz o una lista vinculada? Piénsalo.

cuando usarías una cola o una pila?

Luego intente implementar estas estructuras de datos usted mismo, elija un libro que solo tenga los algoritmos de implementación de diferentes estructuras de datos y no el código real del algoritmo.
Escriba código de trabajo para cola, pila, implementación de lista vinculada.

Cuando comencé a aprender DS, estudié a D Samantha. Es un libro muy bueno y lo mejor es que solo tiene algoritmos y no las soluciones.

Una vez que se sienta cómodo escribiendo código para colas, pilas, listas enlazadas, intente resolver los problemas relacionados con estas estructuras de datos.

Por ejemplo: escriba el código para revertir una lista vinculada, escriba el código para buscar si hay un bucle en la lista vinculada.
Vaya a cualquier sitio web de preparación de entrevistas (por ejemplo, geeksforgeeks) e intente resolver problemas.

Cuando se sienta cómodo con estas estructuras de datos relativamente fáciles, mueva los Árboles, Gráficos, Trie, etc.

Mira mis respuestas a preguntas similares, espero que te ayuden.

La respuesta de Nagaraju Budigam a ¿Qué materia debo saber para aprender algoritmos?

La respuesta de Nagaraju Budigam a ¿Cuáles son los mejores recursos disponibles para aprender la estructura de datos y el algoritmo para las entrevistas de Microsoft y Google?

La respuesta de Nagaraju Budigam a ¿Qué libro recomendarías para Algorithms & Data Structures?

en mi opinión, la práctica es la única forma de mejorar y mantenerte alerta, por ejemplo, puedes ingresar al rango de Hacker y jugar, también leer libros sobre los fundamentos