Estudio ” Introducción a los algoritmos ” por Cormen, Leiserson, Rivest y Stein, famoso como CLRS . Comience desde el primer capítulo, que trata sobre la clasificación, luego aprenda las estructuras de datos básicas, desde listas vinculadas hasta árboles rojo-negros. Opcionalmente, puedes estudiar “Aumentar estructuras de datos”. Puede omitir temas como los montones de Fibonacci por ahora. Luego continúe con la sección de algoritmos de Teoría de grafos y estudie los algoritmos MST de DFS, BFS, Prim y Kruskal, algoritmos de ruta más corta como los de Dijkstra, Bellman-Ford, Floyd-Warshall. Intenta implementar cada uno de ellos en tu lenguaje de programación favorito. Resuelve algunos ejercicios simples.
Primero necesitas conocer bien las matemáticas discretas. Estudie la prueba de cada algoritmo para que cuando necesite modificarlo, sepa qué funciona y qué no.
Aparte de eso, le sugiero que comience con la ” programación competitiva”. Este no solo lo ayuda a aprender varias estructuras de datos y algoritmos de una manera divertida, sino que también lo ayuda a resolver preguntas algorítmicas en entrevistas tecnológicas (como efecto secundario). Si decides ir lejos, incluso terminas aprendiendo muchas estructuras de datos y algoritmos avanzados que no se enseñan en una clase introductoria.
Para una programación competitiva, puede comenzar por registrarse en Hackerrank, Codechef o SPOJ. Sugiero la primera, porque los editoriales son buenos, los problemas se etiquetan adecuadamente de acuerdo con los conceptos requeridos y la dificultad.
- ¿Tienes algún consejo sobre cómo factorizar polinomios?
- ¿Cuáles son las características, consejos, trucos y atajos más ocultos que otros nunca pensaron que existían en el iPhone?
- ¿Cuáles son algunos consejos para evitar el aprendizaje de tecnología que eventualmente morirá?
- ¿Cuáles son los 5 consejos ganadores para las subastas?
- ¿Cuáles son algunos hacks psicológicos que te han ayudado?
Aparte de eso, puede consultar algunos de los recursos disponibles en línea.
- Algoritmos, Parte I – Universidad de Princeton | Coursera
- Algoritmos, Parte II – Universidad de Princeton | Coursera
- Algoritmos | Coursera – de la Universidad de Stanford
- GeeksforGeeks | Un portal informático para geeks: esto ayuda si se está preparando para una entrevista tecnológica.
Lea también la siguiente respuesta: Respuesta del usuario de Quora a ¿Cómo puedo mejorar mi pensamiento algorítmico para la programación competitiva en poco tiempo? ¿Cuáles son algunos recursos?