Esta es una especie de manía mía, así que perdóname si la respuesta es abrasiva.
Si desea ser un desarrollador de software profesional, especialmente un arquitecto, debe capacitarse para implementar SOLUCIONES. No algoritmos, son solo herramientas, no estructuras de datos, solo herramientas. pero soluciones Me refiero a un problema real en el que comienzas desde un lienzo en blanco y te acercas al problema y completas la solución. No importa cuán difícil o fácil sea el problema.
Mi razonamiento para decir esto es simple, puedes tener todas las herramientas del mundo, pero si no sabes cómo resolver un problema, entonces saber qué herramientas tienes no solo lo hará más fácil, sino que también es más difícil, porque no vas a COMENZAR a resolver el problema, te vas a atascar al usar esta herramienta, o esa herramienta. Las herramientas no importan, lo siento, todos ustedes algoritmos geeks y DS geeks que están discutiendo árboles rojos y negros sobre montones o colas de prioridad. Creo que es genial que puedas tener esa conversación, pero hasta que puedas RESOLVER el problema y visualizar la solución, sin cometer demasiados errores, no me importa que tengas una llave dinamométrica cromada micrométrica, porque no estás cambiando mis llantas
- ¿Cuáles son los tiempos de ejecución para insertar un elemento en un LinkedList en la cabeza, el final y en algún lugar en el medio?
- ¿Qué técnica general siguen los autores al escribir libros técnicos en LaTeX?
- ¿Debo conocer algoritmos y estructuras de datos si quiero ser un desarrollador de pila completa?
- ¿Qué algoritmos de aprendizaje automático se usan hoy en medicina?
- ¿Cuál es la mejor prueba de primalidad que garantiza un resultado 100% exacto pero que se puede hacer en un tiempo polinómico?
Las soluciones son la parte más difícil sobre el desarrollo de software, y nunca, nunca las conseguirás completamente correctas, solo te acercarás cada vez más a hacerlas bien la primera vez. Puedes aprender sobre las herramientas en el camino. Cuanto antes comience a aprender a implementar soluciones a problemas reales, mejor será.