¿Es una buena idea que un estudiante de algoritmos de primer año implemente algunas de las estructuras de datos (árbol de búsqueda binario, etc.) para comprenderlas mejor?

SI.

[Actualización 1]: Justificación : Hay dos razones principales por las que ayudar a implementar esto.

  1. Aprender haciendo : aprenderá las estructuras de datos clave y también el lenguaje de programación que está utilizando para implementar. He visto a muchas personas que pueden explicar la estructura de los datos, pero les costó saber por qué necesitan codificarlas en su propio idioma.
  2. Las mejores implementaciones posibles para comparar : puede descargar el código fuente para su lenguaje de programación y verificar las implementaciones proporcionadas por un gran programador. Para Java, puede descargar el código fuente y ver cómo se implementan.

En palabras simples, implementar estas estructuras de datos por nuestra cuenta es una de las mejores formas posibles de convertirse en un mejor programador.

Otra forma es, tomar cualquier proyecto de palabra real o un juego, implementarlo por su cuenta.

Espero que esto sea útil.

Si,

  1. Te dirá cómo funcionan realmente las cosas
  2. Le ayudará a desarrollar sus habilidades de depuración mientras lo hace
  3. Le ayudará a descubrir cosas, cómo y cuándo salen mal. Qué sucede cuando su lista vinculada está vacía, qué sucede cuando su lista vinculada tiene un solo elemento, cómo difieren estos casos del caso general. Apreciará esto solo si hace las cosas usted mismo, no leyendo el libro. Le ayudará a ver casos de esquina y anticipar y abordar problemas en el trabajo real de software de oficina
  4. Si se hace bien, puede construir su propio repertorio de estructuras de datos que puede reutilizar libremente. Había creado una sola lista de enlaces por diversión, y ahora la uso cada vez que necesito una lista de enlaces en lugar de escribir desde cero. Construí una representación de gráficos de listas de adyacencia usando esa lista vinculada y ahora uso mi biblioteca de gráficos para cualquier problema que involucre gráficos. Te ayudará a avanzar en problemas más grandes mejor
  5. Le ayudará a apreciar las deficiencias de las estructuras de datos. Traté de hacer la implementación de estructuras de datos elementales por diversión en C, tratando de reutilizar una sola lista vinculada para construir una lista doblemente vinculada, me ayudó a apreciar cómo la herencia de la clase C ++ progresa sobre las estructuras C (no podría usar el mismo nodo sll estructura)
  6. Le ayudará a confiar sinceramente en sus entrevistas de trabajo al decir que conoce las estructuras de datos y los algoritmos.

No solo “sí”, sino que me sorprende que no sea una parte central del curso.

Míralo de esta manera: debido a que el software es esencialmente gratuito, no hay nada que no quieras escribir por ti mismo. Verá las partes internas y tendrá una idea de dónde van a estar las limitaciones. Simplemente no lo pongas en producción.

Casi nunca es una mala idea intentar construir algo usted mismo. ¿Cuál es el peor de los casos? Fracasas e intentas de nuevo, pero lo estás intentando por tu propia voluntad, por lo que estás un poco por delante del juego. Un poco de experiencia práctica nunca duele, sin importar la edad.

Creo que sería una buena idea. Como estudiante de Ciencias de la Computación, hace muchos años, comencé con todas estas estructuras de datos básicos, antes de pasar a estudiar algoritmos, y una muy buena comprensión de estas estructuras de datos básicas fue definitivamente una ventaja para comprender y analizar adecuadamente la complejidad. de varios algoritmos. En teoría, solo leer sobre las estructuras de datos debería ser capaz de proporcionarle la comprensión necesaria, pero tratar de implementarlas usted mismo es una buena prueba, que las ha entendido correctamente y cómo funcionan las diversas operaciones en ellas.

Ciertamente. Las estructuras de datos como Linked List y BST son ubicuas, y para el final de su primer año debería ser bastante fácil implementarlas. Más tarde, podría sumergirse más profundamente en estructuras de datos más avanzadas, como listas de omisión, RST, HashMaps, intentos ternarios, etc.

Si. Para entender cómo se hacen las cosas es hacerlo por su cuenta.

Si.

More Interesting

¿Cuáles son los requisitos previos para unirse a una empresa de análisis de datos como una nueva?

¿Cuál es una mejor opción de jubilación, una anualidad o 401k?

¿Todavía tienes la energía para competir con desarrolladores jóvenes después de los 30 años?

¿Cuáles son los buenos trabajos para las personas autistas?

Soy un estudiante de ingeniería mecánica y me gustaría aumentar las perspectivas de empleo para después de la graduación. ¿Ayudaría pasar el examen FE?

¿Qué puede ayudar a un gerente sin experiencia técnica a tener éxito en los roles de administración de tecnología / TI?

Cómo saber que a alguien que es lo suficientemente competente como para hacer su trabajo realmente no le gusta su profesión

Ahora tengo 20 años, ¿puedo comenzar mi universidad a esta edad?

¿Qué es lo más divertido que has tenido mientras codificabas?

¿Hay algún organismo interesado en hacer carrera en Oracle?

Cómo aumentar mis ingresos como programador

Tengo 22 años y trabajo para una empresa de TI. No me apasiona tanto el trabajo que hago. Amo viajar. Creo que un trabajo que implica viajar mucho me convendría. ¿Cuáles son los trabajos que implican viajes extensos? ¿Cómo hago para hacer el cambio de carrera? ¿Cuáles son las habilidades que debo aprender para el trabajo?

Para hacer una sólida carrera de programador general, ¿qué tipo de conocimiento de programación debemos perseguir?

Estoy en mi último año de un BTech (CS) con 19 atrasos (sin año atrás). No soy tan bueno en cosas técnicas, pero soy bueno para aprender. Debido a una confusión emocional, no pude seguir el ritmo. ¿Qué hago ahora?

Soy (rama mecánica) seleccionado para TCS (en el campus) para el lote 2015. Algunos me dicen que recibieron una carta de adhesión, pero hasta ahora no he escrito ninguna prueba de aspiración. Estoy planeando escribir el próximo mes. ¿Qué hago ahora?