¿Debo comenzar a aprender algoritmos y estructura de datos si solo tengo algunos conocimientos básicos de programación Java?

Sí, pero no te molestes en aprender la teoría matemática detrás de ellos por adelantado.

Java ya tiene una gran cantidad de algoritmos (por ejemplo, clasificación) y estructuras de datos (por ejemplo, listas) ya preconstruidos. Aprenda a usarlos y lo que hacen. Esa es la habilidad que necesitas para escribir buenos programas.

He escrito docenas de algoritmos de clasificación por diversión. Nunca he escrito una rutina de clasificación para el código de producción. Si quiero ordenar foo, escribo foo.sort (). De alguna manera, el lenguaje sabe cómo hacer esto por mí, y mi código nunca será tan bueno como el que ya viene empaquetado en Java.

Mi conocimiento de los algoritmos de clasificación nunca ha sido el más mínimo uso práctico, a pesar de que he escrito muchos, muchos programas que requieren clases.

Realmente, para donde estás ahora, aprende cómo usar los algoritmos y estructuras de datos existentes de manera adecuada. Si desea saber más adelante “cómo” funcionan, puede intentar construirlos usted mismo. Pero no necesita ese conocimiento para escribir excelentes aplicaciones.

Si solo tiene algunos conocimientos básicos de programación de Java, hay cosas más importantes que aprender que la implementación interna de clases que Java ya proporciona. Si toma un libro de texto y reescribe las clases de Colecciones como ejercicio, no ha aprendido algo que sea de uso inmediato. Sin embargo, si aprende Spring Framework, o cómo funcionan ClassLoaders, o cómo usar ThreadLocal, entonces ha adquirido algo de Java avanzado que es útil y responde a las preguntas más importantes sobre cómo funciona el lenguaje.

Sí, estos son críticos, además de otros aspectos de ingeniería como requisitos, diseño, implementación ágil, implementación, documentación, resolución de problemas, mejoras, etc.

Aprender algoritmos y estructuras de datos es una pérdida de tiempo, ya sea que conozca Java o no.

Es un poco como preguntar si debe memorizar libros y tamaños de papel antes de escribir su propia novela.

Sí definitivamente. Las estructuras de datos fortalecen los fundamentos.

sin aprender la estructura de datos y el algoritmo, no puedes llamarte un programador. Hay una gran diferencia entre un programador y un codificador.