He estado leyendo este sitio con mucho interés, pero me parece que muchas cosas me pasan por la cabeza. Esto me ha hecho desear aprender mucho más sobre algoritmos y CS en general. Por lo que puedo deducir de mi investigación, hay 2 formas principales de hacerlo.
Puedo por un buen libro grueso y pesado y abrirme paso lentamente pero con seguridad.
Puedo "aprender haciendo" y con un buen libro, pero en lugar de leerlo de principio a fin, pasar a las partes que me interesan y trabajar en la implementación y aplicación de algoritmos que me gustan.
?
Mi pregunta es, ¿cuál de los anteriores usó y recomendaría el mismo enfoque a otra persona?
algorithms
education
Daniel Gratzer
fuente
fuente
Respuestas:
Aprendí sobre algoritmos en un curso universitario hace años. Pero si vas a hacer algoritmos usando un libro, entonces necesitas uno bueno. Dos libros se destacan para mí como la forma de entrar en algoritmos:
El primero es quizás más un manual práctico, mientras que el último es más parecido a la Biblia, pero con pruebas.
La estrategia que podría seguir consistiría en leer, hacer los ejercicios teóricos y luego implementar todo lo que pueda, enfocándose en algoritmos / problemas que encuentre interesantes o desafiantes o ambos. Por lo tanto, intente cubrir todos los aspectos de los algoritmos, no solo implementarlos. Esto incluirá estudiar su complejidad de tiempo y espacio y probar su corrección. El estudio de algoritmos es más que solo implementar algoritmos.
Una vez que haya adquirido suficiente experiencia, comience a especializarse. Si te interesa la Geometría Computacional o los algoritmos sin bloqueo, por ejemplo, entonces comienza a explorar libros y trabajos de investigación en esta área.
La especialización es buena, pero también es bueno probar técnicas de otras áreas, por lo que leer ampliamente sobre algoritmos (e implementar dichos algoritmos) es una buena manera de mantener un amplio conjunto de habilidades.
EDITAR: Después de pasar por los algoritmos introductorios, puede consultar libros como Algoritmos aleatorios de Motwani y Raghavan o Algoritmos de aproximación de Vazirani . Estos libros son una encuesta (y hasta cierto punto, un buen ejercicio de aprendizaje en técnicas matemáticas) en técnicas de diseño de algoritmos más avanzadas. También amplían su conocimiento de muchos otros campos en CS como Gráficos y Redes, Diseño de Estructura de Datos y Optimización.
fuente
Enseñar una clase de algoritmos.
O tal vez incluso mejor:
escribir un libro de texto de algoritmos.
fuente
Intenta resolver problemas basados en un algoritmo tan pronto como lo leas. Además, para comprender los algoritmos e implementarlos mejor, necesita tener una mejor comprensión de las estructuras de datos. Hay un muy buen libro de estructuras de datos escrito por Sahni. Puede usar eso y para algoritmos puede resolver problemas de programación de desafíos. Las preguntas son bastante buenas allí.
fuente
Si no ha aprendido sobre algoritmos en la universidad, le recomiendo que tome una de las clases en línea, puede considerar inscribirse en uno de los cursos en coursera.org o seguir los videos publicados por la Universidad de Stanford.
fuente