¿Cuánto tiempo / horas debo pasar todos los días para ser un buen programador de Java para poder resolver estructuras de datos y algoritmos con ese lenguaje en el futuro?

La programación es topología.

Un programador traduce sus soluciones a los problemas desde su representación dentro de sus cabezas a un lenguaje de computadora que luego puede representarse dentro de la cabeza de una computadora.

Si lo hacen correctamente, el programa de computadora funciona.

Si lo hacen principalmente correctamente, el programa de computadora tiene errores.

Si no lo hacen del todo correctamente, el compilador critica su código.


Por lo tanto, afirmaría que, para ser un buen programador, es más importante comprender los algoritmos y las estructuras de datos que comprender un lenguaje de programación dado.

Un lenguaje de programación es simplemente una herramienta.

Sí, es muy importante comprender los peligros y las limitaciones de sus herramientas, si quiere ser muy bueno en algo. Pero es más importante entender lo que está construyendo con la herramienta.

Para usar una analogía de la carpintería: si está construyendo una mesa, es más importante comprender primero los aspectos fundamentales de la “tabla”: un cierto número mínimo de patas, una superficie plana y nivelada, estructuras de soporte internas para evitar que se colapse, resistencia a la tracción de la madera, resistencia al corte, sujetadores que puede y no puede usar con éxito entre los componentes, dónde colocarlos, etc.

Sus herramientas disponibles van a limitar un poco sus opciones.

Pero igualmente …

Si no puede usar sus herramientas correctamente, su mesa se derrumbará bajo su propio peso. O la primera ardilla que aparezca hará que se derrumbe. O cualquier cosa que le pongas se deslizará al suelo y se romperá. Etc ..


Por lo tanto, es importante ser bueno en el uso de sus herramientas, también, es solo que, en el límite, una sierra es una sierra, y si tiene una mesa con tres patas, y son de diferentes longitudes …

Realmente no va a importar que los corte a la longitud incorrecta usando una sierra de mesa frente a una sierra de cinta frente a una sierra de mano frente a una sierra de calar frente a una sierra de calar, ¿verdad?

Porque en el límite, si no has entendido la “tabla”, o no has logrado dominar tus herramientas, incluso si entiendes la “tabla”: lo que has creado no es una tabla, ¿verdad?


Tu elección de herramientas solo se vuelve importante cuando te mueves del reino de “algún idiota con un hacha de mano” al reino de “artesano”.

Por lo tanto, trataría de no obsesionarme con “el mejor evasador de sierra de cinta” (Java?) Y preocuparme más por poder construir lo que quieres construir.

No debería llevar mucho tiempo. Las estructuras de datos en Java fue mi segundo curso de informática en la universidad. Si no tiene experiencia en ciencias de la computación, en un mes o menos de estudio a tiempo completo (8 horas / día) puede estar listo para sumergirse en las estructuras de datos. Si ha programado un poco antes, debería llevar mucho menos tiempo.

La buena noticia es que existen innumerables recursos para aprender estructuras de datos en Java.

No estoy seguro de qué significado tienes en mente.

¿Es ” cuánto tiempo / horas debo pasar todos los días para ser un buen programador de Java y para resolver problemas de estructuras de datos y algoritmos en este lenguaje?” entonces no hay una respuesta posible porque depende de cuán difíciles sean los problemas que desee resolver y qué tan bien entienda un idioma es lo que llama “bueno”.

¿O es ” cuánto tiempo / horas debo dedicar todos los días a aprender Java para ser lo suficientemente bueno como para comenzar a aprender estructuras de datos y algoritmos y resolver problemas de este campo?” En tal caso la respuesta es: muy pocas horas. Puede comenzar a aprender estructuras de datos y algoritmos tan pronto como obtenga los conceptos básicos de la sintaxis del lenguaje. La sintaxis de aprendizaje es una fase muy corta, entonces es todo el tiempo largo en la programación de aprendizaje lo que es simplemente practicar. Para practicar, necesitas escribir programas que resuelvan algunos problemas que elijas. Una buena opción es que pueden ser problemas de algoritmos y estructura de datos, de esta manera aprender A&DS también es aprender a programar, ahorrará tiempo en comparación con si hace ambas cosas por separado. Entonces, diría que 3 días 3 horas cada uno debería ser más que suficiente hasta que pueda comenzar a aprender algoritmos (comenzando por los temas fáciles, por supuesto) y luego mejorar gradualmente tanto en Java como en algoritmos. Comenzar esto rápidamente también tiene sentido debido al hecho de que en algún momento de tu aprendizaje de Java decidirías que estás listo para el siguiente paso, es decir, aprender la programación orientada a objetos, y a partir de este momento ya no puedes usar algoritmos como tus únicos ejercicios. debido a que no le darán una buena comprensión de la POO, a partir de ese momento, esos dos deberán ser caminos separados (que puede hacer paralelamente, pero no como la misma tarea).