Fui bastante bueno con algoritmos y estructuras de datos una vez, hace mucho, mucho tiempo. Desde entonces, programé profesionalmente, y luego fui a administrar un pequeño equipo, que disparó totalmente mis habilidades tecnológicas en este campo.
Decidí que quiero volver a ser desarrollador y trabajar para Google. La cuestión es que estoy tan fuera de práctica, que si me entrevistaran en este momento seguramente me caería en 10 minutos.
¿Qué programa de entrenamiento me recomendarías para volver a estar en forma? Ya comencé este fin de semana volviendo a los conceptos básicos absolutos e implementando algunos algoritmos de clasificación, una lista vinculada y una tabla hash. A continuación, creo que leeré todo el material del curso sobre otras estructuras de datos básicos y algoritmos gráficos. Quiero encontrar un conjunto enfocado de ejercicios prácticos que pueda hacer en un tiempo relativamente corto, para hacer malabarismos con las viejas células cerebrales. Sé esto, solo necesito recordarme que lo sé.
Respuestas:
Hay 4 cosas que quisiera decirte, y he enumerado el orden que necesito decirte:
¡La mejor de las suertes!
fuente
Sugeriría elegir una estructura de datos real o un formato de archivo que la gente esté usando en este momento, y hacer algo genial con eso. El formato de archivo Git está bastante bien documentado, por ejemplo:
http://book.git-scm.com/1_the_git_object_model.html
Hacer algo interesante con un formato que la gente usa y ser riguroso al respecto, enseña lecciones y le brinda algo en lo que la gente estará interesada.
O al menos, haga algo con un ángulo único. Cuando estaba en una posición similar a la suya, escribí una respuesta a una pregunta de una entrevista en línea sobre cómo hacer un gráfico no dirigido que pudiera detectar la inserción de ciclos. Hubiera sido un problema fácil si no hubiera agregado restricciones adicionales ... pero decidí exigir que pudiera hacer inserciones en O (1). El resultado fue NoCycle:
http://hostilefork.com/nocycle/
fuente
Esto depende exactamente de cuál es su objetivo: por ejemplo, ¿está allí el diseño y análisis de algoritmos, o se apega a las estructuras y algoritmos estándar? Pero me parece que ya estás haciendo lo que tienes que hacer.
Si todavía tiene un antiguo libro de texto favorito de "hace mucho, mucho tiempo", le sugiero que vuelva a visitarlo. Más allá de eso, es el consejo estándar de volver a visitar cualquier cosa. Hágase preguntas específicas, busque las respuestas, cuando se quede sin preguntas, hojee y explore rápidamente todo lo que pueda encontrar hasta que pueda encontrar algunas preguntas más específicas.
Algoritmos y estructuras de datos (Niklaus Wirth) es un libro relativamente conciso sobre algoritmos básicos y estructuras de datos sin todo el diseño y análisis de algoritmos. Sin embargo, es muy básico: listas, varios árboles, montones, pero no recuerdo sobre los dígrafos, por ejemplo. Una ventaja es que hay una descarga gratuita de la versión de Oberon - http://www.inf.ethz.ch/personal/wirth/ - busque el enlace PDF cerca del final de la lista de libros. Wikipedia es un recurso obvio, pero tiene tanto que es una buena idea decidir qué quiere y qué no quiere antes de ir allí.
fuente
Cuando solías ser bastante bueno con algoritmos y estructuras de datos, ¿a qué recursos accedías?
¿Qué tan corto es el "tiempo relativamente corto" que necesita para repasar sus conocimientos?
No creo que el conocimiento que se obtiene con dedicación se desvanezca. Solo se desvanecerá un poco, y USTED es el mejor juez de las áreas en las que necesita trabajar para recuperar su antigua destreza con los temas que una vez amó.
fuente